jetwhiz / encfs4win

Windows port of EncFS
https://encfs.win
Other
402 stars 41 forks source link

Paperport dismount drive #49

Closed luisforra closed 7 years ago

luisforra commented 8 years ago

Win10 x64 1.10.1-RC7

When using Paperport 14.5.15168.1450 if I navigate to a drive mounted with encfs the drive dismounts without warning.

What is the best way to debug the problem ?

Thank you

jetwhiz commented 8 years ago

Hi @Analitico -- can you check the logs after the drive dismounts -- they should be located in your TEMP folder. If you do not see any errors come up in encfs4win, then try running in verbose mode ("-v" flag).

luisforra commented 8 years ago

Hi @jetwhiz last messages, after that encfs crashes

016-07-20 20:48:10,149 VER [RawFileIO.cpp:89] encfs_open for D:\usr\btsync\backup\bc.bc/DyEKWV5,ls3qSzS0GdI5UtISd9lH, flags 0open call, requestWrite = 0 2016-07-20 20:48:10,149 VER [encfs.cpp:248] encfs_open for D:\usr\btsync\backup\bc.bc/DyEKWV5,ls3qSzS0GdI5UtISd9lH, flags 0open call, requestWrite = 0readdir on D:\usr\btsync\backup\bc.bc/cwyyG3WkAe0hFr2 2016-07-20 20:48:10,165 VER [RawFileIO.cpp:89] open call, requestWrite = 0 2016-07-20 20:48:10,181 VER [RawFileIO.cpp:95] using existing file descriptor 2016-07-20 20:48:10,165 VER [RawFileIO.cpp:95] using existing file descriptor 2016-07-20 20:48:10,181 VER [DirNode.cpp:700] unlink DyEKWV5,ls3qSzS0GdI5UtISd9lH 2016-07-20 20:48:10,198 VER [RawFileIO.cpp:89] open call, requestWrite = 1 2016-07-20 20:48:10,202 VER [RawFileIO.cpp:110] open file with flags 2, result = 4 2016-07-20 20:48:10,202 VER [encfs.cpp:610] encfs_open for D:\usr\btsync\backup\bc.bc/cwyyG3WkAe0hFr2/AEk8A5p,XCIuDF32HipiX1, flags 2 2016-07-20 20:48:10,202 VER [compatwin.cpp:553] encfs_open for D:\usr\btsync\backup\bc.bc/cwyyG3WkAe0hFr2/AEk8A5p,XCIuDF32HipiX1, flags 2NOTIFY -- unix::unlink 2016-07-20 20:48:10,218 VER [CipherFileIO.cpp:332] streamRead(data, 1255, IV) 2016-07-20 20:48:10,218 VER [encfs.cpp:209] lock on D:\usr\btsync\backup\bc.bc/cwyyG3WkAe0hFr2/AEk8A5p,XCIuDF32HipiX1

jetwhiz commented 8 years ago

Could you try this with 1.10.1-RC6 and see if it works without locking functionality?

luisforra commented 8 years ago

@jetwhiz

With 1.10.1-RC6 I can access the drive and see the files, but when I do a new scan in the foreground encfs crashes and in the background creates a corrupt file, log in background mode:

encAA13.zip

jetwhiz commented 8 years ago

@Analitico -- It looks like these remaining issues might be due to using Block file encoding instead of Block32. Windows is not case-sensitive, and so you must use Block32 encoding to avoid problems. Can you try creating a new filesystem with Block32 and see if these problems still remain (using 1.10.1-RC6)?

Also, have you mounted your filesystem to a drive letter (e.g., "Z:") or a mount point (e.g., "C:\folder\mount")?

luisforra commented 8 years ago

@jetwhiz I have the same problem of corrupt file with Block32, I'm using drive letter, log:

encF0F4.zip

jetwhiz commented 8 years ago

Hi @Analitico -- It looks like you mounted the encfs filesystem to "D:\tmp\c2" (and not directly to a drive letter, like "D:"). Can you try to run this with the encfs filesystem mounted to "Z:", for instance (or some available drive letter).

luisforra commented 8 years ago

@jetwhiz

d:\tmp\c2 is where the encrypted files are, they are mounted in drive L:, ie: @echo xxxxxxx| encfs "D:\tmp\c2" l: -S -v -- -o volname=btsync

jetwhiz commented 8 years ago

That's very strange behavior when you're mounted directly to a drive letter. Does everything work normally when you manually write and read files directly to the encrypted filesystem? The problem only exists with Paperport? Does the problem go away if you don't set a volname?

When you switched to Block32, did you start fresh in both Paperport and encfs? For encfs, did you just switch the config file to Block32 instead of Block (or did you create a new encrypted partition)?

luisforra commented 8 years ago

@jetwhiz

That problem only exists in paperport, I tried to create with encfs but had multiple crashes trying to mount, so I changed the config file, but allways in a empty folder, it seams that paperport stops writing the file, if encfs is in the foreground encfs crashes

jetwhiz commented 8 years ago

I tried to create with encfs but had multiple crashes trying to mount

Can you check task manager to see if there are any instances of encfs still running? It shouldn't be crashing when you try to mount the filesystem. Or maybe try mounting to a different drive letter

luisforra commented 8 years ago

@jetwhiz

After reboot I mounted a new encfs volume without volname and with block32 now encfs crashes with paperport, the log show some assertion failures, log and .encfs6.xml:

t.zip

jetwhiz commented 8 years ago

@Analitico -- The crash there is occurring because Paperport is trying to access a file that does not exist (but probably exists in another filename case -- e.g., "file.txt" vs. "FILE.TXT"). We can fix that problem easily on our end (so it just outputs an error instead of killing the program), but the main question is why Paperport keeps requesting non-existent files.

Did you add the files to the encrypted container yourself, or through the Paperport software? Maybe Paperport is performing requests in the short filename (8.3) format or changing the case of the filename somehow?

luisforra commented 8 years ago

@jetwhiz The last test is in a empty folder, was added through paperport, paperport creates some files in the folders that manages, maybe is assuming that some files exists, and only in case of error tries to create again.

jetwhiz commented 8 years ago

@Analitico -- there's one way to check for sure if this is what the problem is, but it will result in a lot of log data that will contain your plaintext filenames in it. You can search the logs on your end to see if it is true or not, though.

Run encfs with the Dokan debug data (appending " -- -d" to the end). In your case it would probably be:

encfs "D:\tmp\c2" l: -S -v -- -o volname=btsync -d

Search the logs for something that looks similar to this, for example:

FileMatch? : .. (Cygwin.ico,0,0)
FileMatch? : bin (Cygwin.ico,0,0)
FileMatch? : Cygwin-Terminal.ico (Cygwin.ico,0,0)
FileMatch? : Cygwin.bat (Cygwin.ico,0,0)
FileMatch? : Cygwin.ico (Cygwin.ico,0,0)

See if you find any instances where the filename on the right is in the incorrect case, like this:

FileMatch? : apropos (BUNZIP2.EXE,0,0)
FileMatch? : arch.exe (BUNZIP2.EXE,0,0)
FileMatch? : ash.exe (BUNZIP2.EXE,0,0)
FileMatch? : awk (BUNZIP2.EXE,0,0)
FileMatch? : base32.exe (BUNZIP2.EXE,0,0)
FileMatch? : base64.exe (BUNZIP2.EXE,0,0)
FileMatch? : basename.exe (BUNZIP2.EXE,0,0)
FileMatch? : bash.exe (BUNZIP2.EXE,0,0)
FileMatch? : bashbug (BUNZIP2.EXE,0,0)
FileMatch? : bunzip2.exe (BUNZIP2.EXE,0,0)

Here, the OS is requesting the file as "BUNZIP2.EXE", even though it appears as "bunzip2.exe" in Explorer (it is using the short 8.3 filename).

luisforra commented 8 years ago

@jetwhiz

I dont see any incorrect cases, log of a new empty volume that encfs crashes with paperport (block32, RC6).

enc19BD.zip

jetwhiz commented 8 years ago

@Analitico -- can you test this out with 1.9.0-RC4 and see if the problem exists?

luisforra commented 8 years ago

@jetwhiz, tested, same problem, last part of the log, after that encfs crashes:


###SetFileInfo 0064  13
13:24:26 (encfs.cpp:137) flush D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL
DeleteFile \Eugene.abc
13:24:26 (RawFileIO.cpp:87) open call for read only file
13:24:26 (encfs.cpp:137) getattr D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL
CreateFile status = c0000034 - lastError = 2
13:24:26 (RawFileIO.cpp:93) using existing file descriptor
###Create 0068
13:24:26 (compatwin.cpp:558) NOTIFY -- unix::stat
CreateFile : \paperport\teste3\teste2.pdf
13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
        DesiredAccess: FILE_READ_ATTRIBUTES
        ShareAccess: FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ
        Disposition: FILE_OPEN (1)
        Attributes: 0 (0x0)
        Options: 2097152 (0x200000)
  dispositionInfo->DeleteFile = 1
13:24:26 (DirNode.cpp:681) created FileNode for D:\tmp\c3/ZH7H7AD4T7X36KJP2LRGZCOPIQAAE/KJ2SPTRROK5UNGCXT6SYCGQF6PVZE/JBXMNUQGTX4LWDN7JSTTQKY4CYMGN
###Create 0069
13:24:26 (encfs.cpp:137) getattr D:\tmp\c3/ZH7H7AD4T7X36KJP2LRGZCOPIQAAE/KJ2SPTRROK5UNGCXT6SYCGQF6PVZE/JBXMNUQGTX4LWDN7JSTTQKY4CYMGN
13:24:26 (compatwin.cpp:558) NOTIFY -- unix::stat
CreateFile : \Eugene.abc
        DesiredAccess: FILE_READ_ATTRIBUTES
        ShareAccess: 13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
FILE_SHARE_DELETE|FILE_SHARE_WRITE13:24:26 (RawFileIO.cpp:136) getAttr error on D:\tmp\c3/ZH7H7AD4T7X36KJP2LRGZCOPIQAAE/KJ2SPTRROK5UNGCXT6SYCGQF6PVZE/JBXMNUQGTX4LWDN7JSTTQKY4CYMGN: No such file or directory
|FILE_SHARE_READ13:24:26 (encfs.cpp:148) getattr error: No such file or directory

        Disposition: FILE_OPEN (1)
        Attributes: 0 (0x0)
        Options: 2097152 (0x200000)
CreateFile status = c0000034 - lastError = 2
13:24:26 (encfs.cpp:137) getattr D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL
###Cleanup 0064
13:24:26 (compatwin.cpp:558) NOTIFY -- unix::stat
Cleanup: \Eugene.abc

###Create 0070
13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
13:24:26 (encfs.cpp:137) flush D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL
CreateFile : \NewPP\Document (1).pdf
        DesiredAccess: FILE_READ_ATTRIBUTES13:24:26 (RawFileIO.cpp:87) open call for read only file
13:24:26 (encfs.cpp:137) getattr D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL

13:24:26 (RawFileIO.cpp:93) using existing file descriptor
        ShareAccess: FILE_SHARE_DELETE13:24:26 (DirNode.cpp:719) unlink G7CUQ2OA5TIEZEKANVXPC4M74AIOL
13:24:26 (compatwin.cpp:558) NOTIFY -- unix::stat
|FILE_SHARE_WRITE|FILE_SHARE_READ
        Disposition: FILE_OPEN (1)
13:24:26 (compatwin.cpp:538) NOTIFY -- unix::unlink
        Attributes: 0 (0x0)
13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
        Options: 2097152 (0x200000)
13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
13:24:26 (DirNode.cpp:741) unlink error: Permission denied
13:24:26 (DirNode.cpp:681) created FileNode for D:\tmp\c3/MHPUG554SFMAHTZ7K7MRCZHS63ISA/A3SOQPEEOCHIMX5YXQQW5XFEQYCB4NKG7P7R3YIZ663HGKJXGUO7ZRC
###Close 0064
13:24:26 (encfs.cpp:137) getattr D:\tmp\c3/MHPUG554SFMAHTZ7K7MRCZHS63ISA/A3SOQPEEOCHIMX5YXQQW5XFEQYCB4NKG7P7R3YIZ663HGKJXGUO7ZRC
Close: \Eugene.abc

13:24:26 (compatwin.cpp:558) NOTIFY -- unix::stat
13:24:26 (DirNode.cpp:681) created FileNode for D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL
###Create 0071
CreateFile : \PP11Thumbs.ptn
13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
        DesiredAccess: 13:24:26 (RawFileIO.cpp:136) getAttr error on D:\tmp\c3/MHPUG554SFMAHTZ7K7MRCZHS63ISA/A3SOQPEEOCHIMX5YXQQW5XFEQYCB4NKG7P7R3YIZ663HGKJXGUO7ZRC: No such file or directory
FILE_GENERIC_WRITE|FILE_GENERIC_READ13:24:26 (encfs.cpp:148) getattr error: No such file or directory
13:24:26 (compatwin.cpp:558) NOTIFY -- unix::stat

13:24:26 (compatwin.cpp:688) NOTIFY -- utf8_to_wfn
        ShareAccess: 0x013:24:26 (RawFileIO.cpp:136) getAttr error on D:\tmp\c3/G7CUQ2OA5TIEZEKANVXPC4M74AIOL: No such file or directory

13:24:26 (encfs.cpp:535) Assert failed: res == 0
        Disposition: FILE_CREATE (2)
        Attributes: 2 (0x2)
jetwhiz commented 8 years ago

@Analitico -- OK, at least it isn't related to moving away from the Boost library. I'll build the next release candidate against the latest Dokan version, so we can test out Paperpoint then and see if this will make a difference.

luisforra commented 8 years ago

@jetwhiz ok, I will give feedback after the release

jetwhiz commented 8 years ago

Hi @Analitico -- can you test out our latest release (1.10.1-RC8) to see if this is any better?

luisforra commented 8 years ago

@jetwhiz

I have the same problem with paperport, it crashes encfs RC8

@echo 1234| encfs "D:\tmp\c3" I: -S -v -- -o volname=teste -d

log:

enc2CCE.zip

jetwhiz commented 8 years ago

@Analitico -- this appears to be similar (or at least partially related) to a known Dokany issue (#264). This might help to explain all the "No such file or directory" errors in your logs ...

luisforra commented 7 years ago

v1.10.1-RC10 resolved the problems with paperport, thank you

jetwhiz commented 7 years ago

Great! Thanks for the update @Analitico !