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.

Reply via email to