fangfufu / httpdirfs

A filesystem which allows you to mount HTTP directory listings or a single file, with a permanent cache. Now with Airsonic / Subsonic support!
Other
778 stars 59 forks source link

Cache_free: could not destroy w_lock! #174

Open trixprod opened 23 hours ago

trixprod commented 23 hours ago

Hello,

This error occurs quite randomly, often after a few minutes of use when I open a new file. After that the process just crash and i have to relaunch.

**Fatal:src/cache.c:509:Cache_free: could not destroy w_lock!**

Oops! HTTPDirFS crashed! :(
backtrace() returned the following 11 addresses:
httpdirfs(exit_failure+0x34)[0x558a3e0c6904]
httpdirfs(log_printf+0x19d)[0x558a3e0c6dbd]
httpdirfs(+0x1b24e)[0x558a3e0cf24e]
httpdirfs(+0x1bc05)[0x558a3e0cfc05]
/lib/x86_64-linux-gnu/libfuse.so.2(+0xc902)[0x7fa9966a0902]
/lib/x86_64-linux-gnu/libfuse.so.2(+0xfa2a)[0x7fa9966a3a2a]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x16c2d)[0x7fa9966aac2d]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x17353)[0x7fa9966ab353]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x142e8)[0x7fa9966a82e8]
/lib/x86_64-linux-gnu/libc.so.6(+0x8f6ba)[0x7fa99568f6ba]
/lib/x86_64-linux-gnu/libc.so.6(+0x11e120)[0x7fa99571e120]
fangfufu commented 13 hours ago

Which distro are you using, and which version of that distro are you using? Could I potentially access the server you are using?

fangfufu commented 12 hours ago

Possibly related to: https://github.com/fangfufu/httpdirfs/issues/91 https://github.com/fangfufu/httpdirfs/issues/126

This is going to a fun one...

trixprod commented 5 hours ago

Hello,

Unfortunately, the server contains private documents, so I cannot share it. The server is running Ubuntu 23.04, Kernel 6.2.0-39-generic. However, I can test the issue on an Arch or Debian system if needed.

Additionally, I’m open to recompiling the code with debug traces if that would be helpful. For context, the cache is written to an XFS filesystem (though I’m not sure if that detail is relevant).

I’ve reviewed #91 and #126. It’s certainly not fun, but would it be possible to handle these errors as non-fatal for the application? Specifically, I’m wondering if it’s necessary to crash the entire process due to a failure in handling a cache file.