[irrtoolset]IRRToolset 4.8.2 - segfaults on SuSE9 under certain conditions
Dear all, I have managed to compile Irrtoolset on SuSE 9, using the compiler that comes with the dist. It compiles fine, but if I try to run: @RtConfig printSuperPrefixes "%p%l\n" filter AS-ROMANIA trough RtConfig it will segfault. The segfault occurs in malloc, called from src/irr/rawhoisclient.cc, on line 304 (there is a prev = strdup(buffer)). It will not segfault if I change the AS-set or if I use a certain AS (eg. @RtConfig printSuperPrefixes "%p%l\n" filter AS5606 works fine). Does anyone managed to get this beast to run without problems on Linux (compiled from the sources)? The only thing that works is a 4.7.3 binary that I've got from ftp.ripe.net, and only on Redhat 7.3. A 4.7.3 compiled from the source will not work. A 4.8.2 for Fedora downloaded from ftp.ripe.net, behaves the same. Best regards, Sandu Mihai GTS Telecom NOC Engineer
:-> "Sandu" == Sandu Mihai <mihai.sandu@gtstelecom.ro> writes: > @RtConfig printSuperPrefixes "%p%l\n" filter AS-ROMANIA does not segfault here, if I use printSuperPrefixRanges (that command you mentioned doesn't seem to exist). Debian Linux, sparc64, gcc version 3.3.4 (Debian) Pf -- ------------------------------------------------------------------------------- Pierfrancesco Caci | Network & System Administrator - INOC-DBA: 6762*PFC p.caci@seabone.net | Telecom Italia Sparkle - http://etabeta.noc.seabone.net/ Linux paperino 2.4.20 #1 Mon Dec 2 17:02:14 CET 2002 i686 GNU/Linux
Pierfrancesco Caci wrote:
:-> "Sandu" == Sandu Mihai <mihai.sandu@gtstelecom.ro> writes:
@RtConfig printSuperPrefixes "%p%l\n" filter AS-ROMANIA
does not segfault here, if I use printSuperPrefixRanges (that command you mentioned doesn't seem to exist).
Debian Linux, sparc64, gcc version 3.3.4 (Debian)
Pf
First, please accept my apologies for my typo. The command used to cause the segfault is: @RtConfig printSuperPrefixRanges "%p/%l\n" filter AS-ROMANIA I have tried it on: Redhat 7.3 - glibc-2.2.5-42 SuSE 9 - glibc-2.3.2-88 On both, the compiled binary will segfault. The binary for Fedora (IRRToolset 4.8.2) will also segfault. The binary for Redhat7.3 + compat libs will work on Redhat7.3 (I have managed to make a RPM out of it :) ) without a problem. I did inserted a cerr << "Blah" << buffer << "Blah" before the place where it segfaults, and for AS-ROMANIA it segfaults right after spitting out the 4th route object: *_route_*: 192.162.16.0/24 _origin_: AS3233 <http://www.ripe.net/perl/whois?searchtext=AS3233&form_type=simple> I suspect that probably there is something wrong with AS-ROMANIA that triggers the segfault. I can eventually send the output of a bt in gdb. Best regards, Sandu Mihai GTS Telecom NOC Engineer
The command used to cause the segfault is:
@RtConfig printSuperPrefixRanges "%p/%l\n" filter AS-ROMANIA
I see this problem on NetBSD-2.0_BETA as well. The symptom is that if I run this interactively, it will process the command, spit out all the prefixes, return with a prompt, and when that prompt is given EOF, it crashes. I tried running ut under gdb, and have a stack trace, but I suspect that the debugging info is somehow faulty (I don't understand why the code points to the line it does). For what it's worth, here it is: RtConfig> ^D Program received signal SIGSEGV, Segmentation fault. 0x08099d79 in Object::~Object() (this=0x8137300) at ../../Core/util/List.hh:97 97 forw->back = back; (gdb) where #0 0x08099d79 in Object::~Object() (this=0x8137300) at ../../Core/util/List.hh:97 #1 0x0809c94a in AttrClass::~AttrClass() (this=0x812eb80) at rpsl_attr.cc:379 #2 0x080a2241 in Schema::~Schema() (this=0x8107040) at schema.cc:70 #3 0x080c1eaa in __static_initialization_and_destruction_0(int, int) ( __initialize_p=0, __priority=65535) at schema_rpsl.cc:670 #4 0x080c38de in _GLOBAL__D__ZN6Schema15dictionary_textE () at /usr/include/g++/bits/locale_facets.h:214 #5 0x0804baf5 in __dtors () #6 0x0804bbba in __do_global_dtors_aux () #7 0x080d1535 in fini_fallthru () #8 0x4821912f in __cxa_finalize () from /usr/lib/libc.so.12 #9 0x48218ee0 in exit () from /usr/lib/libc.so.12 #10 0x0804b902 in ___start () (gdb) p forw $1 = (ListNode *) 0x8137304 (gdb) p *$ $2 = {forw = 0x8137304, back = 0x8137304} (gdb) p back $3 = (ListNode *) 0x8137304 (gdb) p *$ $4 = {forw = 0x8137304, back = 0x8137304} (gdb) Regards, - Havard
participants (3)
-
Havard Eidnes -
Pierfrancesco Caci -
Sandu Mihai