Add syslog and fatal signal handler feature
authorBernd Schubert <bschubert@ddn.com>
Wed, 10 Jul 2024 21:04:46 +0000 (23:04 +0200)
committerBernd Schubert <bernd.schubert@fastmail.fm>
Sun, 14 Jul 2024 12:28:44 +0000 (14:28 +0200)
commitdae1184302834b52cff438fbf5322cd1c9c79c06
tree3c71a7f60f442d460f5968e239ab0ed2a0defe27
parent67ce439e2d73e73426b68695288729c6ffd63e5b
Add syslog and fatal signal handler feature

I see random ENOTCONN failures in xfstest generic/013 and generic/014
in my branch, but earliest on the 2nd run - takes ~12hours to get
the issue, but then there are no further information logged.
ENOTCONN points to a daemon crash - I need backtraces and a core dump.

This adds optional handling of fatal signals to print a core dump
and optional syslog logging with these new public functions:

fuse_set_fail_signal_handlers()
    In addition to the existing fuse_set_signal_handlers(). This is not
    enabled together with fuse_set_signal_handlers(), as it is change
    in behavior and file systems might already have their own fatal
    handlers.

fuse_log_enable_syslog
    Print logs to syslog instead of stderr

fuse_log_close_syslog
    Close syslog (for now just does closelog())

Code in fuse_signals.c is also updated, to be an array of signals,
and setting signal handlers is now down with a for-loop instead
of one hand coded set_one_signal_handler() per signal.
ChangeLog.rst
example/passthrough_hp.cc
include/fuse_common.h
include/fuse_log.h
lib/fuse_log.c
lib/fuse_signals.c
lib/fuse_versionscript