Thank you.
My understanding is that the crash is caused by an inode with an invalid "mtime" or "ctime", basically with a year out of range... In this case, in the following piece of code, localtime_r() will return NULL and strftime() will segfault:

            val = ATTR(&p_op->fs_attrs, last_mod);
            strftime(mt, 128, "%Y/%m/%d %T", localtime_r(&val, &t));
            val = ATTR_FSorDB(p_op, creation_time);
            strftime(ct, 128, "%Y/%m/%d %T", localtime_r(&val, &t));

A fix must be made in robinhood code to prevent crashes in case of such a corrupted inode.

However, this part of the code is only executed for detecting "faked" mtime.

You can avoid the crash just by disabling it in the configuration:

EntryProcessor {
    detect_fake_mtime = no;
}

Regards,
Thomas.



On 09/26/14 14:05, Yann Sagon wrote:
Hello Thomas, sorry I don't know a lot about debugging a core dump file.

Here is the information:

gdb /usr/sbin/robinhood /home/core.135783
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/robinhood...(no debugging symbols found)...done.
[New Thread 135788]
[New Thread 135791]
[New Thread 135794]
[New Thread 135795]
[New Thread 135799]
[New Thread 135792]
[New Thread 135787]
[New Thread 135785]
[New Thread 135783]
[New Thread 135790]
[New Thread 135793]
[New Thread 135789]
[New Thread 135797]
Reading symbols from /usr/lib64/mysql/libmysqlclient_r.so.16...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/mysql/libmysqlclient_r.so.16
Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /lib64/libcrypt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /lib64/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /usr/lib64/libssl.so.10...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libssl.so.10
Reading symbols from /usr/lib64/libcrypto.so.10...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libcrypto.so.10
Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/libfreebl3.so...(no debugging symbols found)...done.
Loaded symbols for /lib64/libfreebl3.so
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libgssapi_krb5.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libgssapi_krb5.so.2
Reading symbols from /lib64/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkrb5.so.3
Reading symbols from /lib64/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libcom_err.so.2
Reading symbols from /lib64/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib64/libk5crypto.so.3
Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkrb5support.so.0
Reading symbols from /lib64/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkeyutils.so.1
Reading symbols from /lib64/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libresolv.so.2
Reading symbols from /lib64/libselinux.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libselinux.so.1
Reading symbols from /lib64/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libnss_files.so.2
Core was generated by `/usr/sbin/robinhood -d -f /etc/robinhood.d/tmpfs/daily.conf -p /var/run/rbh.dai'.
Program terminated with signal 11, Segmentation fault.
#0  0x00002b1326bd2b75 in __strftime_internal () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install robinhood-tmpfs-2.5.3-1.el6.x86_64
(gdb) where
#0  0x00002b1326bd2b75 in __strftime_internal () from /lib64/libc.so.6
#1  0x00002b1326bd4b96 in strftime_l () from /lib64/libc.so.6
#2  0x000000000041d601 in EntryProc_get_info_fs ()
#3  0x000000000041aa1a in entry_proc_worker_thr ()
#4  0x00002b13262cc9d1 in start_thread () from /lib64/libpthread.so.0
#5  0x00002b1326c17b5d in clone () from /lib64/libc.so.6

2014-09-26 13:58 GMT+02:00 LEIBOVICI Thomas <[email protected] <mailto:[email protected]>>:

    Hi Yann,

    It is not convenient to analyse this coredump as is because I need
    the exact version of robinhood binary that generated the coredump.
    Could you please extract the crash location from the core dump file:

    gdb /usr/sbin/robinhood core-file
    then type "where"

    Thanks
    Thomas



    On 09/22/14 12:09, Yann Sagon wrote:
    Hello, I did that and it produced a core dump.

    If a developer wants to have a look, here is the file (360Mb)

    http://baobabmaster.unige.ch/download/core.135783

    Thanks

    2014-09-17 13:55 GMT+02:00 DEGREMONT Aurelien
    <[email protected] <mailto:[email protected]>>:



        >  It's kind of hard to run gstack on the daemon as it crash only
        > several hours after it's launch.
        Start robinhood in order to it takes a core dump when it crashes.
        See "ulimit -c"



        Aurélien




-- Yann SAGON
    Ingénieur système HPC
    24 Rue du Général-Dufour
    1211 Genève 4 - Suisse
    Tél. : +41 (0)22 379 7737 <tel:%2B41%20%280%2922%20379%207737>
    [email protected] <mailto:[email protected]> - www.unige.ch
    <http://www.unige.ch>



    
------------------------------------------------------------------------------
    Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
    Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
    Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
    Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
    http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk


    _______________________________________________
    robinhood-support mailing list
    [email protected]  
<mailto:[email protected]>
    https://lists.sourceforge.net/lists/listinfo/robinhood-support




--
Yann SAGON
Ingénieur système HPC
24 Rue du Général-Dufour
1211 Genève 4 - Suisse
Tél. : +41 (0)22 379 7737
[email protected] <mailto:[email protected]> - www.unige.ch <http://www.unige.ch>


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
robinhood-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/robinhood-support

Reply via email to