On Dec 28 2020, Nikolaus Rath <[email protected]> wrote: > Hi Ivan, > > Please do not Cc me, I am reading the list. > > > On Dec 28 2020, Ivan Shapovalov <[email protected]> wrote: >> Finally, exchook() from mount.py:setup_exchook() gets called and sends >> SIGTERM to the mount process (mount.py:687). >> >> Does that sound plausible? > > Ah, I completely forgot about this, good find! > > When S3QL was using llfuse rather than pyfuse3, sending SIGTERM to > itself was the way to signal to libfuse to exit the main event loop. The > signal handler is installed by llfuse, not S3QL, so that's not obvious > from the code. > > I suspect that this part needed a change when switching from llfuse to > pyfuse3 but was forgotten. I will try to take a look at it.
Ok, turns out we needed some extra building blocks in pyfuse3 for this. I have just committed https://github.com/libfuse/pyfuse3/commit/3b9c7dfd7f68b1dbac17b325deeb7d66a66a2b05 which adds a new pyfuse3.terminate() function that S3QL should use instead of sending SIGTERM to itself. As a first order solution this replacement should make things better. However, we should keep track that we terminated due to an unhandled exception and re-raise this after the main loop has terminated. I filed https://github.com/s3ql/s3ql/issues/227 to track this. Best, -Nikolaus -- GPG Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F »Time flies like an arrow, fruit flies like a Banana.« -- You received this message because you are subscribed to the Google Groups "s3ql" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/s3ql/87zh1yexsz.fsf%40vostro.rath.org.
