[Xorp-users] error with XRLs

Pavlin Radoslavov pavlin@icir.org
Mon, 07 Feb 2005 15:15:49 -0800


> > If there was a message like "Terminating module: <your module>"
> > or "Killing module: <your module>", then the rtrmgr killed your
> > process. Otherwise, your processed has terminated on its own, and
> > the rtrmgr is reporting that.
> > If you didn't see any of the above messages, was there a coredump of
> > your process?
> 
> I saw the message "Module abnormally killed."  There was no coredump, but I
> have tracked the problem down to the offending line:

Maybe the coredump size limit on your system is zero?

> 
> In my class, I have a method called 'beac()' that takes zero arguments and
> has a return type of bool.  I call this method once from main() and then at
> the end of this method I try and set up a XorpTimer so that the method can
> call ITSELF again.  The line at the end of 'beac()' looks like this:
> 
> _beac_timer = _eventloop.new_periodic(_period, callback(this,
> &BGP_Beacon::beac));
> 
> When I comment this line out, no problem.  When this line executes, my
> module is abnormally killed.

Change new_periodic to new_oneoff_after_ms and see if it makes
difference. If yes, then run all components (finder, bgp, your
module, etc) by hand, but run your module within gdb. The trace when
your module exits unexpectedly should give you an idea about the
problem.

Regards,
Pavlin

> 
> _beac_timer is a member variable of type XorpTimer.
> _eventloop is a STATIC member variable of type EventLoop.
> _period is a member variable of type int.
> 
> I believe that there is no problem with _eventloop itself, since before
> calling new_periodic() I called _eventloop.timers_pending() to make sure
> the variable was instantiated.
> 
> Any hints on why this line messes things up?