disParity » General Discussion

drive bender & long file names

(13 posts)
  1. ge
    Member

    I've installed disparity to add a parity drive to a drive bender array. It was at this point I discovered that disparity skips long file names. This is a problem because drive bender adds a GUID to the directory structure, making many file names long.

    the only solution I found after reading the forum was to use a net share to alias the guid to something shorter. this seems to solve the problem with skipped files, but I got a network IO error in a square box using 0.41 after a couple of hours of initial load. I didn't map the shares to drives, I just added the net shares to disparity, as I didn't want to tie up more drive letters.

    Is there a better solution to this problem? thanks,

    Posted 9 months ago #
  2. ge
    Member

    Here is the log entry:

    1/10/2015 6:54:02 PM Fatal error on initial update: An unexpected network error occurred.

    1/10/2015 6:54:02 PM at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    at System.IO.FileStream.get_Length()
    at disParity.DataDrive.GetNextBlock(Byte[] buf)
    at disParity.ParitySet.Create()

    I'm rerunning with 0.39 to see if the problem reoccurs.

    Posted 9 months ago #
  3. ge
    Member

    Failed on V0.39 as well:

    1/11/2015 3:44:01 AM Fatal error on initial update: An unexpected network error occurred.

    1/11/2015 3:44:01 AM at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    at System.IO.FileStream.get_Length()
    at disParity.DataDrive.GetNextBlock(Byte[] buf)
    at disParity.ParitySet.Create()

    Posted 9 months ago #
  4. Roland
    Roland

    I haven't used Drive Bender myself, and I haven't tried the trick of using a net share to alias the drive but I don't see why that would cause a problem. Bottom line, my best guess is that one of your drives either has a corrupted file on it or is going bad outright, and Windows is reporting a "network error" when it tries to read the file because of the fact that the drive is being accessed as a net share.

    You'll have to try to figure out which drive and file are causing the problem first. Since this particular error message unfortunately doesn't include the name of the file that caused the problem, this could be tricky. The log should list the name of each file as it is first opened, though. So, it should be one of the files that is listed in the log right before the error occurs.

    Posted 9 months ago #
  5. ge
    Member

    Thanks Roland. None of the disks show any errors when scanned.

    Is it possible that this is a permissions issue? Perhaps disParity can see the file in the directory listing, but cannot read the filelength due to a permissions issue, so fails reporting a network error. From the log this would appear to be the failing call:

    System.IO.FileStream.get_Length()

    Posted 9 months ago #
  6. Roland
    Roland

    It's possible it could be a permissions issue, but there's really no way to know for sure because whatever the underlying problem is, Windows is just calling it an "unexpected network error", which is not very helpful.

    The actual length of the file itself was already determined during the initial scan, and that apparently didn't fail or there would have been an error much earlier in the process. This particular call is actually querying the length of the stream that was opened to read the file in (the .NET FileStream class's Length property) By the time it gets here, it has actually already read some of the data out of the file. So it is very odd that this call it would fail. In fact I don't know why the Length property of the FileStream class would be doing any I/O at all.

    So to summarize, this is what appears to be happening:

    1. The file's attributes (including length) have already been queried, during the initial scan.
    2. The file has been successfully opened, via the .NET FileStream class.
    3. At least one block of data has already been read from the file (via FileStream.Read())
    4. When the code checks the current FileStream.Position against FileStream.Length (to see if it has reached the end of the file) the Length property blows up with a "unexpected network error."

    I'm stumped. Something very strange is going on here. I'm curious to know if this error happens on the same file every time.

    Posted 9 months ago #
  7. ge
    Member

    the the problem is happening on a win 8.1 machine. I'm also running on win 7, what should be identical data, and so far win 7 machine has not failed, but neither has yet completed initial load. 12TB on each system. 7 data disks, 1 parity disk on each machine.

    It wouldn't be much of an issue but initial load does all disks at once, but a restart after failure updates 1 disk at a time and looks like it will take days to complete, so I've been deleting parity and restarting initial load from scratch.

    If it fails this time I'll let it go 1 disk at a time on restart and continue the update without an initial load. At least that way we should be able to determine the failing file to see if the failure is consistent.

    Posted 9 months ago #
  8. Roland
    Roland

    Yes, because of how the initial update is done, it's not possible to resume the update if it is interrupted by an error. You have to start over.

    If it fails again, and you want to try one disk at a time instead, be sure to reset your backup first. I wouldn't try to keep going from a failed initial update. Start out with an empty backup with no drives, add a single drive, then do an update and let it finish. Then, add a second disk, and do an update. Keep going with each additional disk. This approach will take much longer, but if there is a failure when you do it this way, you won't have to start over from scratch.

    Posted 9 months ago #
  9. ge
    Member

    blem signature:
    Problem Event Name: APPCRASH
    Application Name: disParityUI.exe
    Application Version: 0.41.0.0
    Application Timestamp: 54567ed6
    Fault Module Name: clr.dll
    Fault Module Version: 4.0.30319.36213
    Fault Module Timestamp: 53489df4
    Exception Code: c00000fd
    Exception Offset: 0000000000125ef0
    OS Version: 6.3.9600.2.0.0.256.4
    Locale ID: 1033
    Additional Information 1: 6447
    Additional Information 2: 6447b46b981ad35aab4d03636c3483a6
    Additional Information 3: 19be
    Additional Information 4: 19beb2a3db07dcc5a0b1fb2106580b44

    Posted 9 months ago #
  10. Roland
    Roland

    Unfortunately those kinds of details, which show an access violation inside the .NET runtime itself, are of little help. Something at a low level is bringing down .NET itself. This kind of crash is pretty rare in managed applications and usually indicates that something unusual is going wrong in the larger system environment. Wish I could say more.

    Posted 9 months ago #
  11. ge
    Member

    thanks Roland, things seem to have settled down. I cleaned up permissions and any long file names and touch wood all has been going smoothly.

    drive bender integrates quite well with disparity. there is an an advanced option in drivebender to create mount points for all the drives, so you can create shares for these mount points and not have to assign drives.

    I numbered the shares 1,2,3..7 to match the arrays, and since my server names are very short s1,s2 there is very little overhead as compared to drive letters.

    for example, share 1 =
    C:\Program Files\Division-M\Drive Bender\System\Mounts\{93611396-2FC8-11E3-89BA-806E6F6E6963}\{CCE2AB08-E576-47B6-94DD-6F18FD86A511}

    share 2 =
    C:\Program Files\Division-M\Drive Bender\System\Mounts\{75A8712A-4B7C-4D88-B004-DC784FE5B550}\{CCE2AB08-E576-47B6-94DD-6F18FD86A511}

    etc.
    you then add the drives to disparity as \\s1\1, \\s1\2, ... etc, which allows you to add the entire array without using any extra drive letter, while maintaining short path names.

    it actually looks like a single parity drive could actually protect 2 systems, but you would need them to both be up at the same time.

    Posted 9 months ago #
  12. ge
    Member

    Roland, you might what to talk with the folks at drivebender. they have bundled a 3rd party S.M.A.R.T. reporter into their product. disparity might be a nice add on for them as well. someone to piggy back your product to market?

    Posted 9 months ago #
  13. Roland
    Roland

    Glad to hear you got it all working. And thanks for the suggestion about Drivebender. I'm not really trying to bring disParity "to market" but if more people found about it and found it useful, that wouldn't be a bad thing.

    Posted 9 months ago #

RSS feed for this topic

Reply

You must log in to post.