[Olsr-dev] Bug? "Unknown type: 0, size 1428, from a.b.c.d", OLSR hangs w/ 90% CPU load

Bernd Petrovitsch (spam-protected)
Mon Jan 21 10:58:20 CET 2008


On Mon, 2008-01-21 at 09:03 +0100, Roar Bjørgum Rotvik wrote: 
> Jo-Philipp Wich wrote:
[....] 
> > I haven't managed it to produce a gcore dump (I think you meant the
> > gcore command in gdb). After attaching gdbserver to the running olsrd
> > process the "gcore" command on the gdb client produced the message
> > "Cannot create a core file" and I don't know how to fix this problem.
> 
> To make a crashing application create a core-file in linux/unix, you must first make sure 
> that the environment is set for creating core-file.
> 
> Run "ulimit -c". On my machine this gives "0". This means that the max allowed core file 
> size is 0 bytes, i.e. no core file is allowed to be created.
> 
> To allow a core file to be created, run "ulimit -c unlimited" (or a byte size instead of 
> unlimited). This command must be run in the shell where you start olsrd from, it only 
> applies to the shell you run the command in (you may also set this in /etc/profile.d/* or 
> in ~/.bash_profile or similar to apply always and in all shells, but that is another story).

The next problem may be signal handlers (installed/used by the
application) and we try to "handle" lots of signals (pretty much all
which may make sense AFACT) since we want to clean up the routing table
at the end.

The usual way (IMHO) is to call "abort()" but we catch that signal too.

You may want to replace the "exit()" at the end of "olsr_shutdown" with
"raise(SIGTRAP)" (which is not caught and should produce a core dump
according to `man 7 signal` here) or reset the SIGABRT handler to
"default" (in olsr_shutdown!) and call "abort" (instead of "exit").

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services






More information about the Olsr-dev mailing list