[ovs-dev] [PATCHv2] fatal-signal: Log backtrace when no monitor daemon.

Ilya Maximets i.maximets at ovn.org
Mon Mar 23 17:42:08 UTC 2020


On 3/23/20 4:48 PM, William Tu wrote:
> Currently the backtrace logging is only available when monitor
> daemon is running.  This patch enables backtrace logging when
> no monitor daemon exists.  At signal handling context, it detects
> whether monitor daemon exists.  If not, write directly the backtrace
> to the vlog fd.  Note that using VLOG_* macro doesn't work due to
> it's buffer I/O, so this patch directly issue write() syscall to
> the file descriptor.
> 
> For some system we stop using monitor daemon and use systemd to
> monitor ovs-vswitchd, thus need this patch. Example of
> ovs-vswitchd.log (note that there is no timestamp printed):
>   2020-03-23T14:42:12.949Z|00049|memory|INFO|175332 kB peak resident
>   2020-03-23T14:42:12.949Z|00050|memory|INFO|handlers:2 ports:3 reva
>   SIGSEGV detected, backtrace:
>   0x0000000000486969 <fatal_signal_handler+0x49>
>   0x00007f7f5e57f4b0 <killpg+0x40>
>   0x000000000047daa8 <pmd_thread_main+0x238>
>   0x0000000000504edd <ovsthread_wrapper+0x7d>
>   0x00007f7f5f0476ba <start_thread+0xca>
>   0x00007f7f5e65141d <clone+0x6d>
>   0x0000000000000000 <+0x0>
> 
> Signed-off-by: William Tu <u9012063 at gmail.com>
> ---

Hi, William and Ben.
This patch broke clang build:

lib/vlog.c:618:12: error: reading variable 'log_fd' requires holding mutex
      'log_file_mutex' [-Werror,-Wthread-safety-analysis]
    return log_fd;
           ^

https://travis-ci.org/github/openvswitch/ovs/builds/665956070

Best regards, Ilya Maximets.


More information about the dev mailing list