Read-write ordering - causality casualty :)

hello,
{color:lightgray}my name is gnat and I am threadaholic{color}
I'm trying to figure if particular reordering of reads and writes is possible or not. The code snippet looks about as follows:
class Test {
    private static final int ORIGINAL = 0, UPDATED = 1;
    private int data1 = ORIGINAL, data2 = ORIGINAL;
    private void write() {
        data1 = UPDATED; // first write
        data2 = UPDATED; // second write
    private void read() {
        int secondWritten = data2; // first read
        int firstWritten = data1; // second read
        if (firstWritten == UPDATED)
            return; // first is already written
        if (secondWritten == ORIGINAL)
            return; // second is not yet written
        // we get to this point if:
        //   - first is not yet written and...
        //   - ...and second is already written
        System.out.println("new order");
        System.exit(0); // end of test
    public void execute() {
        Thread writerThread = new Thread() { public void run() { write(); } };
        Thread readerThread = new Thread() { public void run() { read(); } };
        writerThread.start();
        readerThread.start();
        try { writerThread.join(); }
        catch (InterruptedException ie) {/*swallow*/}
        try { readerThread.join(); }
        catch (InterruptedException ie) {/*swallow*/}
    public static void main(String[] args) {
        System.out.println("test started");
        while (true) { new Test().execute(); }
}At first, I felt like the reordering operations in write() method above is possible and that it will be quite easy to demonstrate in the execution of above code - with +"new order"+ in the output.
To my surprise, it turned out a bit more complicated. Execution never ended with +"new order"+ (I tried it with java 1.6.0_13 on XP/Pentium and Vista/AMD mashines). I tried some modifications of the code - it didn't help either.
At about that point, I decided to dive into JLS and other docs to find out if there's some guidance to find out whether reordering here is possible or not. I think I found the solution but I'm not quite sure - please help me to figure that.
Here is what I've got so far:
{color:purple}- "new order" can appear in the output if assignments in write are reordered and thread switch occurs in between these operations.
- Such a reordering is possible because it is (1) allowed per volatile specification and (2) does not violate causality requirements in [JLS 17.4.8|http://java.sun.com/docs/books/jls/third_edition/html/memory.html#62065|'...Causality Requirements'].
(1) In The [JSR-133 Cookbook for Compiler Writers|http://g.oswego.edu/dl/jmm/cookbook.html|'unofficial guide to implementing JMM'], "Can Reorder" table shows that Volatile Store can be reordered with Normal Store, which is the case in question code.
(2) Reordering in question code is conformant with causality requirements ([explained here|http://jeremymanson.blogspot.com/2007/08/causality-and-java-memory-model.html|'Causality and the JMM']) because read does not modify class fileds that are being assigned only within write.{color}
Is above reasoning correct?
I feel especially shaky about part (2) - causality. JLS 17.4.8 is quite complicated and I haven't grokked it yet.

...i think the write of data2 is allowed to happen before the write of data1 without violating volatile constraints. however, i suspect that this is highly unlikely in reality. i would imagine that most jit implementation will treat volatile interactions as barriers such that no reordering will occur around them, even if some is allowed.a-ha... that moves my puzzle closer to completion.
Indeed, it looks quite possible (and perfectly legal) for jit to be implemented that way.
And in case of such jit, write reordering will never happen - not because it's forbidden by JLS but because jit just does not use it - right?
Hm I suspected something like that. And, you know, that bumped me into causality stuff. I mean, assuming that err experimental investigation can be blocked by particular jit specifics, I decided to proceed with spec analysis. Here, I found that for my case there are volatile and causality requirements. So...
...I checked volatile spec - it was OK on reordering. Then, I proceeded into causality... and got kinda stuck there.
>
(2) Reordering in question code is conformant with causality requirements (explained here) because read does not modify class fileds that are being assigned only within write.Again, i don't quite agree with this. modifications by "read" would not affect the interactions between the "read" and "write" threads. the writes in the "write" thread could be reordered because volatile writes require all previous writes to happen, but do not have any requirements on subsequent writes. the reads in the "read" thread could be reordered because volatile reads require all subsequent reads to get fresh data but do not haave any requirements on previous reads.I think I understand. Your reasoning for allowed reordering in read makes sense.
But (probably my explanation in (2) is not clear on that) thing is, order within read doesn't really matter for my purpose. To get to "new order" output, something like this should occur:
-- (side note) code:sql tag makes suitable formatting for stuff like that :)
  0. initialization: data1 = ORIGINAL, data2 = ORIGINAL
  1. writerThread: data2 = UPDATED;
-- thread switch --
  2 (or 3). reader thread: secondWritten = data2; (reads UPDATED - "new order" needs this)
  3 (or 2). reader thread: firstWritten = data1; (reads ORIGINAL - "new order" needs this)
-- at this point, I don't care anymore since "new order" is achieved
-- thread switch --
  4. writerThread: data2 = UPDATED; (doesn't matter for "new order")
{code}
You see - reads at steps 2 and 3 above are interchangeable without affecting desired result. That's why I didn't worry about any ordering within read. Does that make sense?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • I am trying to change the order of one of my audiobooks (media kind: audiobook), but the ID tags are greyed out.  I can't change tags for almost all my audiobooks.  Music files OK. Files are all read/write. Repaired disc perms. OS 10.9.4. ITunes11.4

    I am trying to change the order of one of my audiobooks (media kind: audiobook), but the ID tags are greyed out.  I can't change tags for almost all my audiobooks.  Music files OK. Files are all read/write. Repaired disc perms. OS 10.9.4. ITunes 11.4  I don't have iTunes Match.

    Select all the songs and then Advanced -> Convert ID3 tags.
    http://docs.info.apple.com/article.html?path=iTunesWin/6.0/en/655win.html

  • Sharing Mac iTunes library with Windows PC (I want to be able to read/write)

    Greetings from a new Mac user. I recently purchased a 27" iMAC running OS X 10.7.3. This iMac is now connected to my home network/workgroup.
    - I want to build a new iTunes Library on my 1TB internal Mac HD.
    - I want my 3 non Mac Machines (1 XP Prof and 2 Windows 7 Home) to be able to view the contents of my new (not yet built) iTunes Library resident on my iMac and of course be able to
    - play that content.
    - have play counts from my Windows-based be saved back to my iTunes Library.
    - be able to rate a song from any computer (Mac or Windows) within this iTunes Library and have that rating saved back to this iTunes Library.
    I don't want to have to rely on iTunes "Shared Library" function. In other words I want all PCs to be able to read/write to the same iTunes Library file.
    Before I purchased my iMac, my iTunes Library existed on one of my Windows-file system external drives. The pre-requisites for allowing multiple Windows PCs to access/share/write to the same iTunes Library was to:
    - share the Windows folder on the external drive in which the iTunes Library file was stored (allowing network users to be able to change the files), and
    - make sure all Windows-based PCs ran the same iTunes software version.
    Assume: I don't want to change the version of Windows iTunes software from the currently installed 10.5.0 version.
    Question 1: Can my Windows PCs access and utilize the same iTunes library file that I plan to build on my iMac hard drive?
    Question 2: What older version of Mac iTunes software should I install on my iMac in order to allow the Windows PCs to access and use the iMacs iTunes library file?
    Any help would be appreciated. Thanks.

    Hmmm...  thanks for the reply.  This of course, yields another question.  When you say 'you could format to FAT32 which both can use'; do you mean format the iTunes Hard drive on which my iTunes music now resides?  If so, this would mean I would need to copy the music off the internal iMac hard drive, then format the drive to FAT32, then copy the music back.
    Is this what you meant?

  • How to create files with read/write privileges for everyone?

    I have two iMacs 7,1 (one with Snow Leopard and the other with Mountain Lion) in a local area wireless network.
    I have shared the "documents" folder in the Snow Leopard iMac in order to have files available to the other iMac. The folder has read/write privileges for everyone.
    When I create a new file in the shared "Documents" folder (for example a new Open office document, or a Keynote presentation) this file is by default "read/write" for the Administrator but only "read" for all the other users, so when I try to open it from the other iMac, I am informed that the file is "read only".
    I can obviously change the privileges of the file in the information window, but I have to do on a file per file basis and this takes too long.
    Is it possible to change settings in order to create files which are always "read/write" for everyone?
    And, secondly, since I have several existing files whose privileges I should manually change one by one, is it possible to make global changes of their privileges?
    Thanks in advance
    Best regards

    couple of different changes - 1st, if you want to share folders, doing your whole documents folder is not the best way.  Since both your computers can handle AidDrop, that's what I would recommend - http://osxdaily.com/2011/11/14/how-to-use-airdrop-in-mac-os-x/ - as it create an instant Ad-Hoc network between the two computers and then let's it done. 
    A second possibility that may not be what you're looking for, is to use google drive or some similay cloud sharing app to sync the documents back and forth.  both of these solutions will transfer the files well, but the airdrop may be simplest

  • Urgent!!! Need help in file read/write data to a serial port

    Hi,
    I really need someone's help in order for me to complete my project. I have attached a vi which I have taken from an example and integrate to my project. In the vi, I have managed to get the encoder counts using Ni 9411. I need to read/write that data from ni9411 to ni9870 without using any serial port as they are connected to a NI 9104 chasis. May I know whether I am correct in writing the data to my ni9870 port using the vi I have attached? Does anyone know how i can convert the number of counts to a 8-bit data/byte so that I can send the data through the RS232 port? I really need someone's help as I need to finished in 2 weeks time.
    I have also attached an vi on controlling the epos2 controller using instrument driver. Does anyone know how can i integrate this vi to the fpga vi (the one which I need to read/write data to 9870) as I need to send those data to control my epos2 controller.
    Please help me!!!
    Attachments:
    Encoder Position & Velocity (FPGA).vi ‏23 KB
    SINGLEMOTORMODIFIED.vi ‏17 KB

    Afai,
    As I allready suggested you here, call your local NI Office and ask for assistance!
    You really need assistence in a higher level that we can provide via the forums. Otherwise I don't see a chance for you to finish your project in time.
    1. Convert I32 to U8 to write it to the 9870 could be done like this:
    2. The vi to control the epos2.
    There is NO way ( absolutely NO way) to port this vi to FPGA. It's based on VISA calls, uses an event-structure, both are not available at the FPGA.
    The only thing you could do is to analyze the VI, the instruction set and design an FPGA vi which handles the specific instructions you would need.
    I have no experience with epos2 and I'm not 100% sure if this would work as you would like to use it. And doing this needs deep knowledge of LabVIEW, VISA, Instrument Drivers, the epos hardware, FPGA programming, and so on... 
    Christian

  • Being able to 'Read & Write' on an external hard drive on the Mac

    Hi there,
    I can't seem to be able to add things to my external hard drives on my MacBook Pro. I can with my USB stick but not with the larger external hard drives. Could someone help me change the permission settings to allow me to 'Read & Write' rather than just 'Read Only'.
    Thanks
    Nadia

    How is this drive formatted? If it is NTFS then it is read-only. In order to use it on the Mac you will have to repartition and reformat the drive. On the other hand if it is properly partitioned and formatted for the Mac and the drive has become read-only then there is a different solution.
    For the first alternative:
    Drive Preparation
    1. Open Disk Utility in your Utilities folder.
    2. After DU loads select your hard drive (this is the entry with the mfgr.'s ID and size) from the left side list. Click on the Partition tab in the DU main window.
    3. Under the Volume Scheme heading set the number of partitions from the drop down menu to one. Set the format type to Mac OS Extended (Journaled.) Click on the Options button, set the partition scheme to GUID (for Intel Macs) or APM (for PPC Macs) then click on the OK button. Click on the Partition button and wait until the process has completed.
    4. Select the volume you just created (this is the sub-entry under the drive entry) from the left side list. Click on the Erase tab in the DU main window.
    5. Set the format type to Mac OS Extended (Journaled.) Click on the Options button, check the button for Zero Data and click on OK to return to the Erase window.
    6. Click on the Erase button. The format process can take up to several hours depending upon the drive size.
    For the second alternative:
    Fix No Access Permissions on HD.

  • How to read Sales order Item Text of item node?

    Hi Sap Guru's,
    I have urgent requirement, i want to read Sales order item text of item node.
    can anybody give detail code.
    Thanks in Advance,
    Venkat

    hi venkat,
    take a look at this code
    data:
      git_line type standard table of tline.
    data:
      gwa_head type thead,
      gwa_line type tline.
    data:
      v_first type c.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
      CLIENT                        = SY-MANDT
        id                            = '0002'
        language                      = sy-langu
        name                          = '1000000122000010'
        object                        = 'VBBP'
      IMPORTING
        HEADER                        = gwa_head
      tables
        lines                         = git_line
    EXCEPTIONS
       ID                            = 1
       LANGUAGE                      = 2
       NAME                          = 3
       NOT_FOUND                     = 4
       OBJECT                        = 5
       REFERENCE_CHECK               = 6
       WRONG_ACCESS_TO_ARCHIVE       = 7
       OTHERS                        = 8.
    loop at git_line into gwa_line.
      at first.
        move 'X' to v_first.
      endat.
      if v_first eq 'X'.
        write: / gwa_line-tdline+10.
        clear v_first.
      else.
        write: / gwa_line-tdline.
      endif.
    endloop.

  • Why doesn't Photoshop support read/write of .mpo files?

    I am actually blown away that I cannot find a single Photoshop plugin that reads and/or saves .mpo files. Does somebody know why? And why isn't anyone talking about this format? I find it hard to believe that no one in the entire Photoshop Windows forum has ever wondered about Photoshop's complete lack of or interest in support for .mpo files.
    If nobody knows how to read/write .mpo files directly through Photoshop, perhaps someone could point me to some documentation for writing a plugin for it. It's a really really simple file format--there's no reason that a plugin shouldn't be available already.
    Thanks in advance for your support.
    Jase

    Well wave of the future or not. its beening pushed hard. That is in a way good for us the consumers.. choice is always good.
    3d tv's and monitors require at least 120hz in order to function. what does that mean for people who spend all their time in front of a monitor?
    Bringing about the availablilty of 120hz and beyond flat panels.
    Many are people are prone to getting migrains due to refresh rates 60 hz or less, Most people getting migrains from sitting at work in front of a 60 hz monitor all day long, and do not even realize it.
    I happen to be one of those people who get migrains, especially if I am doing artwork for 8 - 10 hours.
    I just picked up a 120 hz monitor like 2 weeks ago cause I am a techno junky and love my toys, it is the asus one that comes with the Nvidia glasses.
    There is nothing wrong with my other monitor, a 24 inch HP monitor. Its a 1920 x 1200 5ms responce time 60hz monitor.
    I didn't think i would really even notice the difference between a 120 hz and 60 hz monitor.
    Boy ohh boy was I ever mistaken about not Noticing. sitting side by side, to me the picture difference is amaizing. Now i have not had an oppertunity to do a real weekend artwork fest but that will come with time.
    The 3d features with the glasses on, I think are very cool in games its extreemly noticable since you have more control over what it is you are looking at. I am not sure i would play a game end to end for hours and hours in 3d. i think that would likely make my head explode but we'll see about that too and if not my be running into walls when i am done since you tend to loose perseption. not to mention 3d glassses make it so you see each picture at 60 hz in one eye 60 hz in the other putting you back to a 60 hz refresh and migrains.
    anyway way off subject, but to sum it up.
    Some good things can come from flavor of the day fads. Grant it some bad some times does too.. i mean look at bell bottoms....

  • LK6.5 Modbus read/write to many addresses at once

    LK6.5 Modbus read/write to many addresses at once. What happens as example; I have address 100 to 150 and 180-200. Addresses in between doesn't exist. Not all are connected. The modbus (Ethernet master) driver reads in a single command (in order to optimize) address 100-190.
    That is a nice feature, but the result is a reply like "not existing" because between 150-180 are not existing. No error is shown in lookout (communication works OK).
    I know I can do a workaround by setting maximum value per message to 1 or 2, but the project has 140 modbus objects with a total of around 4000 connections. I would like to use a big range in one command, but no addresses that are not existing. Beside of that, it looks like this is a problem that let the driver and/or lookout crash.
    Any one knows a fast solution? Is there another updated modbus driver?

    more inputs:
    The response from Modbus device actually doesn't specify which address has the problem if you read a range.
    When you read a range, and a certain address in this range doesn't exist, do you get no data in lookout?
    It depends on the Modbus device whether lookout gets error response or the good response. I don't see detailed definition in the Modbus specification. So, if a certain address in a range doesn't exist, the device may either return error or good response. But the problem is that the error reponse is just an error code. Lookout doesn't know which address has the problem. It may be a problem that you don't see alarm in Lookout.
    I don't see a way on lookout side to get a better behaviour. Maybe you can consult the device provider for any advice, such as what should the modbus master do, is the range read expected?
    Ryan Shi
    National Instruments

  • Data Doubler - Format for both OSX and Windows 7 to read/write?

    Hello! I have a Mid-2012 MacBook Pro 13" and I've ordered the OWC Data Doubler with a 1.5TB HDD to put into the optical bay. I have a couple of questions.
    1. What format should I use for the HDD to allow both my OSX and Windows 7 sides read and write to it? I have a Bootcamp partition, but if it's possible I'd like for both OSX and W7 to be able to read and write to this drive. That way, when I'm in OSX I can view iTunes and media, but if I'm in W7 I can still have the same access. That way, I don't have to worry about "Oh, I downloaded this on the windows side ... I have to figure out how to get it over to the mac side" (or vice versa). Essentially allowing the 1.5TB HDD to be a "go between" for the two.
    2. This is a minor question, but will the eject button do something to the HDD if it gets pressed when the optical drive is out and the HDD/Data Doubler is in? I don't plan on pressing it, but I was wondering if I need to dig into terminal (or somewhere else) to "disable" the button or maybe just reassign it so that instead of ejecting it does some other function?
    I have heard of "MacDrives" for Windows, but I haven't used it. If this is a better option (to put the HDD into Mac OS Extended Journaled and use an application to allow W7 to read/write) that's fine.
    I am putting in the 1.5TB HDD. The end goal, if possible, is to allow the Windows 7 side to read/write to it. As long as it's not a "hacked together" method, I do not mind what way it's done.
    Any thoughts? I appreciate it!

    Use Winclone for the Windows partition and CCC for the OSX partition.

  • Check read/write acces to a certain folder without throwing exceptions

    Hello
    Can somebody help me in finding a method for getting the read/write acces status to a certain location?
    I need to have a function wich return me true when I have acces to read inside a folder for instance.
    Thanks in advance, Ciprian LUPU

    It appears as if you are somehow attempting to retrieve access control for a folder on a website (http://www.schaeffler.com/brasov/DATA/SP-ISB-F/F) using the below line. Is that correct?
     I would recommend reading the
    TOS of that site before proceeding any further.
    schaeffler.com\brasov\DATA\SP-ISB-F\F
    I'm not certain the code you are attempting to use could possibly do that. I tried accessing that link using http and ftp from a browser but nothing was found or returned.
    It's more than likely you would have to use some sort of webrequest of ftp capability to attempt to get that information if that folder exists. And I would suppose an account would have to be logged onto or something in order to access that location as I
    can not do it with a webbrowser nor am I asked to logon to access that location.
    Are you certain that location exists on that website?
    This is the error I received attempting to access that location with the code you used.
    System.InvalidOperationException: Method failed with unexpected error code 3.
    at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
    at System.Security.AccessControl.NativeObjectSecurity..ctor(Boolean isContainer, ResourceType resourceType, String name, AccessControlSections includeSections, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
    at System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
    at System.IO.FileInfo.GetAccessControl()
    at WindowsApplication1.Form1.CanReadFolder(String DirectoryName) in C:\Users\John\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb:line 20
    Method failed with unexpected error code 3.
    at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
    at System.Security.AccessControl.NativeObjectSecurity..ctor(Boolean isContainer, ResourceType resourceType, String name, AccessControlSections includeSections, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
    at System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
    at System.IO.FileInfo.GetAccessControl()
    at WindowsApplication1.Form1.CanReadFolder(String DirectoryName) in C:\Users\John\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb:line 20
    La vida loca

  • Read & Write all folders and files

    How do I allow another account user read & write privileges to all my files and folders? I have set the other user as an administrator however each file and folder that i've copied into their documents folder still need to be changed individually (through the Get Info window) in order to save changes or add new files to them. This is very time consuming, so is there an easier way?

    Not exactly what you are looking for but maybe some useful information:
    http://www.computerworld.com.au/article/197922/useraccounts_file_sharing_leopard_whatnew?pp=1&fp=2&fpid=2

  • While syncing it says that it can't read/write to the iPod. I've reset to factory settings and it still won't work.

    Every time I connect it to sync it says it's been sync'd with another library and do I want to erase and sync w/ the current itune library.....it has never been sync'd with another itunes library....just this one on my mac.  When it starts to sync and says that it can't read/write to the ipod. I've restarted it, reset it and made sure my itune is the most recent.  HELP.

    When you still have the problem after restoring to factory defaults/new iPod then you very likely have a hardware problem and an appointment a th Genius Bar of an Apple store is in order.

  • Avi read write example : playback missing chunk of data at regular intervals

    Hi,
    I am writing a waveform data into avi write in order to read back (with has data input on) as in example avi read write with data shipping example but the graph played back is missing some amount of data at regular intervals and hence the waveform read back is choppy. 
    I am writing the same data into tdms also. when i read back it with tdms file viewer, it shows that it has entire data.
    note: i am writing the waveform data and avi in two seperate loops and using the porperty node value of the waveform data in the video loop in order to insert data into avi write (has data input on) and have the (wait ms multiple) input =10 in both loops
    i would like to post the video but it is 50 MB, is it possible to upload that much.
    can any one help me how/why this is happening..
    Thanks,

    Can you post a VI(s) as I have trouble understanding what you are doing
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • Mounting UDF formatted DVD+RW in read-write mode

    Hi folks,
    I'm having trouble getting Leopard to mount a freshly formatted UDF DVD+RW in read-write mode. It always seems to come up mounted read-only regardless of the options I give mount or mount_udf. I've tried default and 2.5 versions of UDF, specifying fix-packet when creating the volume, specifying -w on mount_udf, specifying -o w on mount, etc.
    The disc seems to be created okay, and shows free space..Just can't figure out how to use it. Any thoughts/working recipes? Example transcript follows..
    Thanks in advance,
    - Zanthrox
    scutter:~ doucej$ newfs_udf -v "Backup" /dev/disk1
    write to block device: /dev/disk1 last written block address: 2295103
    scutter:~ doucej$ mkdir /Volumes/Backup
    scutter:~ doucej$ sudo mount_udf -w /dev/disk1 /Volumes/Backup
    scutter:~ doucej$ df
    Filesystem 512-blocks Used Available Capacity Mounted on
    /dev/disk0s2 454819840 320448088 133859752 71% /
    devfs 213 213 0 100% /dev
    fdesc 2 2 0 100% /dev
    map -hosts 0 0 0 100% /net
    map auto_home 0 0 0 100% /home
    /dev/disk0s3 32905496 32284360 621136 99% /Volumes/Untitled
    /dev/disk1 9178360 572 9177788 1% /Volumes/Backup
    Looks good so far -- the volume was created fine, is readable, mountable, and shows free space..
    scutter:~ doucej$ mount
    /dev/disk0s2 on / (hfs, local, journaled)
    devfs on /dev (devfs, local)
    fdesc on /dev (fdesc, union)
    map -hosts on /net (autofs, automounted)
    map auto_home on /home (autofs, automounted)
    /dev/disk0s3 on /Volumes/Untitled (ntfs, local, read-only, noowners)
    /dev/disk1 on /Volumes/Backup (udf, local, read-only)
    scutter:~ doucej$
    ....but it still won't come up read-write, so I can't actually use it.

    If LVM has dropped write permissions on a volume or group then its probably for a good reason. You might want to look at the root cause for the failure and check /var/log/messages for any information.
    If you don't care about the data, you might be able to to bring back write access using
    <pre>
    lvchange --ignorelockingfailure -p w VolGroup00-LogVol14
    </pre>
    But like I said, there is probably a good reason why the volume is write protected in order to prevent further damage, or because of a underlying hardware issue.

Maybe you are looking for