libfuse/lib/fuse_versionscript
Bernd Schubert dae1184302 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.
2024-07-14 14:28:44 +02:00

209 lines
3.9 KiB
Plaintext

FUSE_3.0 {
global:
fuse_destroy;
fuse_exit;
fuse_loop;
fuse_loop_mt;
fuse_reply_attr;
fuse_reply_buf;
fuse_reply_entry;
fuse_reply_err;
fuse_reply_none;
fuse_reply_readlink;
fuse_reply_write;
fuse_reply_xattr;
fuse_req_userdata;
fuse_session_destroy;
fuse_session_exit;
fuse_session_exited;
fuse_session_loop;
fuse_session_loop_mt;
fuse_session_reset;
fuse_session_fd;
fuse_opt_parse;
fuse_opt_add_opt;
fuse_opt_add_arg;
fuse_opt_free_args;
fuse_opt_match;
fuse_parse_cmdline;
fuse_remove_signal_handlers;
fuse_reply_create;
fuse_reply_open;
fuse_reply_statfs;
fuse_set_signal_handlers;
fuse_add_direntry;
fuse_add_direntry_plus;
fuse_daemonize;
fuse_get_session;
fuse_interrupted;
fuse_session_new;
fuse_main_real;
fuse_mount;
fuse_session_custom_io;
fuse_session_mount;
fuse_new;
fuse_opt_insert_arg;
fuse_reply_lock;
fuse_req_interrupt_func;
fuse_req_interrupted;
fuse_unmount;
fuse_session_unmount;
fuse_fs_access;
fuse_fs_bmap;
fuse_fs_chmod;
fuse_fs_chown;
fuse_fs_create;
fuse_fs_destroy;
fuse_fs_flush;
fuse_fs_fsync;
fuse_fs_fsyncdir;
fuse_fs_getattr;
fuse_fs_getxattr;
fuse_fs_init;
fuse_fs_link;
fuse_fs_listxattr;
fuse_fs_lock;
fuse_fs_mkdir;
fuse_fs_mknod;
fuse_fs_new;
fuse_fs_open;
fuse_fs_opendir;
fuse_fs_read;
fuse_fs_readdir;
fuse_fs_readlink;
fuse_fs_release;
fuse_fs_releasedir;
fuse_fs_removexattr;
fuse_fs_rename;
fuse_fs_rmdir;
fuse_fs_setxattr;
fuse_fs_statfs;
fuse_fs_symlink;
fuse_fs_truncate;
fuse_fs_unlink;
fuse_fs_utimens;
fuse_fs_write;
fuse_reply_iov;
fuse_version;
fuse_pkgversion;
fuse_reply_bmap;
cuse_lowlevel_new;
cuse_lowlevel_main;
cuse_lowlevel_setup;
cuse_lowlevel_teardown;
fuse_fs_ioctl;
fuse_fs_poll;
fuse_get_context;
fuse_getgroups;
fuse_lowlevel_notify_inval_entry;
fuse_lowlevel_notify_inval_inode;
fuse_lowlevel_notify_poll;
fuse_notify_poll;
fuse_opt_add_opt_escaped;
fuse_pollhandle_destroy;
fuse_reply_ioctl;
fuse_reply_ioctl_iov;
fuse_reply_ioctl_retry;
fuse_reply_poll;
fuse_req_ctx;
fuse_req_getgroups;
fuse_buf_copy;
fuse_buf_size;
fuse_fs_read_buf;
fuse_fs_write_buf;
fuse_lowlevel_notify_retrieve;
fuse_lowlevel_notify_store;
fuse_reply_data;
fuse_session_process_buf;
fuse_session_receive_buf;
fuse_start_cleanup_thread;
fuse_stop_cleanup_thread;
fuse_clean_cache;
fuse_lowlevel_notify_delete;
fuse_fs_flock;
fuse_fs_fallocate;
fuse_lowlevel_help;
fuse_lowlevel_version;
fuse_cmdline_help;
fuse_apply_conn_info_opts;
fuse_parse_conn_info_opts;
fuse_fs_lseek;
fuse_reply_lseek;
local:
*;
};
FUSE_3.1 {
global:
fuse_lib_help;
fuse_invalidate_path;
fuse_new_30;
fuse_new_31;
fuse_new;
} FUSE_3.0;
FUSE_3.2 {
global:
fuse_session_loop_mt;
fuse_session_loop_mt_31;
fuse_session_loop_mt_32;
fuse_loop_mt;
fuse_loop_mt_31;
} FUSE_3.1;
FUSE_3.3 {
global:
fuse_open_channel;
} FUSE_3.2;
FUSE_3.4 {
global:
fuse_fs_copy_file_range;
} FUSE_3.3;
FUSE_3.7 {
global:
fuse_set_log_func;
fuse_log;
} FUSE_3.4;
FUSE_3.12 {
global:
fuse_session_loop_mt;
fuse_session_loop_mt_312;
fuse_loop_mt;
fuse_loop_mt_32;
fuse_loop_mt_312;
fuse_loop_cfg_create;
fuse_loop_cfg_destroy;
fuse_loop_cfg_set_idle_threads;
fuse_loop_cfg_set_max_threads;
fuse_loop_cfg_set_clone_fd;
fuse_loop_cfg_convert;
fuse_parse_cmdline;
fuse_parse_cmdline_30;
fuse_parse_cmdline_312;
fuse_lowlevel_notify_expire_entry;
} FUSE_3.4;
FUSE_3.17 {
global:
_fuse_session_new_317;
_fuse_new;
_fuse_new_30;
_fuse_new_317;
fuse_main_real_317;
fuse_passthrough_open;
fuse_passthrough_close;
fuse_session_custom_io_30;
fuse_session_custom_io_317;
fuse_set_fail_signal_handlers;
fuse_log_enable_syslog;
fuse_log_close_syslog;
} FUSE_3.12;
# Local Variables:
# indent-tabs-mode: t
# End: