Steve
the bug is in RRD that uses non-reentrant calls. Now as I want to release 
ntopng I don't want to waste a lot of time to handle that so I have decided to 
create a small module for RRD, put a lock and as soon as we have time use their 
_r API that is supposed to be reentrant.

Please resync the code and let me know if it works better now.

Cheers Luca


On Jun 14, 2013, at 12:52 PM, Steve Clark <[email protected]> wrote:

> Hi Luca,
> 
> This is new crash r6405 - I still am in gdb if there is anything else let me 
> know ASAP.
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xb27feb70 (LWP 11097)]
> 0x006795d1 in __strlen_ia32 () from /lib/libc.so.6
> Missing separate debuginfos, use: debuginfo-install 
> glibc-2.12-1.47.el6_2.12.i686 libgcc-4.4.7-3.el6.i686 
> libpcap-1.0.0-6.20091201git117cb5.el6.i686 libstdc++-4.4.7-3.el6.i686 
> libxml2-2.7.6-12.el6_4.1.i686 zlib-1.2.3-27.el6.i686
> (gdb) bt
> #0  0x006795d1 in __strlen_ia32 () from /lib/libc.so.6
> #1  0x006c20e3 in _getopt_internal_r () from /lib/libc.so.6
> #2  0x006c2b5e in _getopt_internal () from /lib/libc.so.6
> #3  0x006c2da9 in getopt_long () from /lib/libc.so.6
> #4  0x081410df in rrd_create (argc=12, argv=0xb32082a0) at rrd_create.c:59
> #5  0x08064cdf in rrd_common_call (L=0xb63c51c0, cmd=0x81740b0 "create", 
> rrd_function=0x8140fa0 <rrd_create>)
>     at third-party/rrdtool-1.4.7/bindings/lua/rrdlua.c:92
> #6  0x08064f2f in lua_rrd_create (L=0xb63c51c0) at 
> third-party/rrdtool-1.4.7/bindings/lua/rrdlua.c:155
> #7  0x080d2d1f in lj_BC_FUNCC ()
> #8  0x080b8b08 in lua_pcall (L=0xb63c51c0, nargs=0, nresults=-1, errfunc=0) 
> at lj_api.c:1052
> #9  0x08067e02 in Lua::run_script (this=0xb3206100, script_path=0xb27fe24c 
> "./scripts/callbacks/minute.lua")
>     at Lua.cpp:972
> #10 0x0806d8fa in PeriodicActivities::runScript (this=0x819f248, 
> path=0xb27fe24c "./scripts/callbacks/minute.lua")
>     at PeriodicActivities.cpp:69
> #11 0x0806da65 in PeriodicActivities::minuteActivitiesLoop (this=0x819f248) 
> at PeriodicActivities.cpp:98
> #12 0x0806d786 in minuteStartLoop (ptr=0x819f248) at PeriodicActivities.cpp:44
> #13 0x007cda09 in start_thread () from /lib/libpthread.so.0
> #14 0x006df43e in clone () from /lib/libc.so.6
> (gdb) f 4
> #4  0x081410df in rrd_create (argc=12, argv=0xb32082a0) at rrd_create.c:59
> 59              opt = getopt_long(argc, argv, "Ob:s:", long_options, 
> &option_index);
> 
> (gdb) p argv[0]
> $4 = 0x81740b0 "create"
> (gdb) p argv[1]
> $5 = 0xae6cce38 "/var/tmp/rrd/10.254.220.242/icmp.rrd"
> (gdb) p argv[2]
> $6 = 0xb63cdd88 "--start"
> (gdb) p argv[3]
> $7 = 0xb63cdda8 "now"
> (gdb) p argv[4]
> $8 = 0xb63cddc0 "--step"
> (gdb) p argv[5]
> $9 = 0xb63cdde0 "300"
> (gdb) p argv[6]
> $10 = 0xb63cddf8 "DS:sent:DERIVE:600:U:U"
> (gdb) p argv[7]
> $11 = 0xb63cde28 "DS:rcvd:DERIVE:600:U:U"
> (gdb) p argv[8]
> $12 = 0xb63cde58 "RRA:AVERAGE:0.5:1:50400"
> (gdb) p argv[9]
> $13 = 0xb63cde88 "RRA:AVERAGE:0.5:12:2400"
> (gdb) p argv[10]
> $14 = 0xb63cdeb8 "RRA:AVERAGE:0.5:288:365"
> (gdb) p argv[11]
> $15 = 0xb63cdf30 "RRA:HWPREDICT:1440:0.1:0.0035:20"
> (gdb) p argv[12]
> $16 = 0x0
> (gdb) l
> 54
> 55          optind = 0;
> 56          opterr = 0;         /* initialize getopt */
> 57
> 58          while (1) {
> 59              opt = getopt_long(argc, argv, "Ob:s:", long_options, 
> &option_index);
> 60
> 61              if (opt == EOF)
> 62                  break;
> 63
> (gdb) info locals
> long_options = {{name = 0x8180b0f "start", has_arg = 1, flag = 0x0, val = 
> 98}, {name = 0x817f6ce "step", has_arg = 1, 
>     flag = 0x0, val = 115}, {name = 0x8180b15 "no-overwrite", has_arg = 0, 
> flag = 0x0, val = 79}, {name = 0x0, 
>     has_arg = 0, flag = 0x0, val = 0}}
> option_index = 0
> opt = <value optimized out>
> last_up = 1371153606
> pdp_step = 300
> last_up_tv = {type = 52, offset = 8200657, tm = {tm_sec = 135908324, tm_min = 
> -1237560632, tm_hour = -1300242312, 
>     tm_mday = 135560669, tm_mon = 0, tm_year = 135560912, tm_wday = 
> -1355148872, tm_yday = 134630445, 
>     tm_isdst = 135908324, tm_gmtoff = -1237560632, 
>     tm_zone = 0xb27fe088 
> "\253\017\024\b\370\\<\266\310R<\266\016O\006\b\310\340\177\262\337L\006\b\f"}}
> parsetime_error = <value optimized out>
> long_tmp = 0
> rc = <value optimized out>
> (gdb) 
> 
> 
> On 06/14/2013 12:32 AM, Luca Deri wrote:
>> Steve
>> can you please print 
>> 
>>> #4  0x081410df in rrd_create (argc=12, argv=0xb260a230) at rrd_create.c:59
>> 
>> the value for the 12 arguments of argv?
>> 
>> Thanks Luca
>> 
>> On Jun 13, 2013, at 9:18 PM, Steve Clark <[email protected]> wrote:
>> 
>>> Hi,
>>> 
>>> I removed my rrd directory before this run to make sure
>>> I didn't have any corrupted files.
>>> 
>>> Program received signal SIGSEGV, Segmentation fault.
>>> [Switching to Thread 0xb25ffb70 (LWP 29880)]
>>> 0x006795d1 in __strlen_ia32 () from /lib/libc.so.6
>>> Missing separate debuginfos, use: debuginfo-install 
>>> glibc-2.12-1.47.el6_2.12.i686 libgcc-4.4.7-3.el6.i686 
>>> libpcap-1.0.0-6.20091201git117cb5.el6.i686 libstdc++-4.4.7-3.el6.i686 
>>> libxml2-2.7.6-12.el6_4.1.i686 zlib-1.2.3-27.el6.i686
>>> (gdb) bt
>>> #0  0x006795d1 in __strlen_ia32 () from /lib/libc.so.6
>>> #1  0x006c20e3 in _getopt_internal_r () from /lib/libc.so.6
>>> #2  0x006c2b5e in _getopt_internal () from /lib/libc.so.6
>>> #3  0x006c2da9 in getopt_long () from /lib/libc.so.6
>>> #4  0x081410df in rrd_create (argc=12, argv=0xb260a230) at rrd_create.c:59
>>> #5  0x08064cdf in rrd_common_call (L=0xb63c51c0, cmd=0x81740b0 "create", 
>>> rrd_function=0x8140fa0 <rrd_create>)
>>>     at third-party/rrdtool-1.4.7/bindings/lua/rrdlua.c:92
>>> #6  0x08064f2f in lua_rrd_create (L=0xb63c51c0) at 
>>> third-party/rrdtool-1.4.7/bindings/lua/rrdlua.c:155
>>> #7  0x080d2d1f in lj_BC_FUNCC ()
>>> #8  0x080b8b08 in lua_pcall (L=0xb63c51c0, nargs=0, nresults=-1, errfunc=0) 
>>> at lj_api.c:1052
>>> #9  0x08067e02 in Lua::run_script (this=0xb2604710, script_path=0xb25ff24c 
>>> "./scripts/callbacks/minute.lua")
>>>     at Lua.cpp:972
>>> #10 0x0806d8fa in PeriodicActivities::runScript (this=0x819f248, 
>>> path=0xb25ff24c "./scripts/callbacks/minute.lua")
>>>     at PeriodicActivities.cpp:69
>>> #11 0x0806da65 in PeriodicActivities::minuteActivitiesLoop (this=0x819f248) 
>>> at PeriodicActivities.cpp:98
>>> #12 0x0806d786 in minuteStartLoop (ptr=0x819f248) at 
>>> PeriodicActivities.cpp:44
>>> #13 0x007cda09 in start_thread () from /lib/libpthread.so.0
>>> #14 0x006df43e in clone () from /lib/libc.so.6
>>> (gdb) 
>>> 
>>> -- 
>>> Stephen Clark
>>> NetWolves
>>> Director of Technology
>>> Phone: 813-579-3200
>>> Fax: 813-882-0209
>>> Email: [email protected]
>>> http://www.netwolves.com
>>> _______________________________________________
>>> Ntop-dev mailing list
>>> [email protected]
>>> http://listgateway.unipi.it/mailman/listinfo/ntop-dev
>> 
>> 
>> 
>> _______________________________________________
>> Ntop-dev mailing list
>> [email protected]
>> http://listgateway.unipi.it/mailman/listinfo/ntop-dev
> 
> 
> -- 
> Stephen Clark
> NetWolves
> Director of Technology
> Phone: 813-579-3200
> Fax: 813-882-0209
> Email: [email protected]
> http://www.netwolves.com
> _______________________________________________
> Ntop-dev mailing list
> [email protected]
> http://listgateway.unipi.it/mailman/listinfo/ntop-dev

_______________________________________________
Ntop-dev mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-dev

Reply via email to