OMNeT++/OMNEST Bug Tracker - INET Framework
View Issue Details
0000081INET FrameworkBasepublic2009-06-17 09:162011-09-14 15:53
0000081: usage of Failure Manager crashes Simulation
I am trying to run the (unmodified) INET framework example
mpls/testte_failure. At simtime T=2.0 the router LSR4 is replaced with a
dummy router to simulate a failed router. But every time another router
(e.g. LSR2) wants to send a message to LSR4, the simulation stops with
the following error message:

Error in module (PPP) RSVPTE4.LSR2.ppp[1].ppp (id=70): Cannot schedule
message (cMessage)pppEndTXEvent to the past, t=0.

or a Segmantation fault:

52 cException::init() /home/map/omnet/omnetpp-4.0/src/sim/ 0xb7cd4ad9
51 cRuntimeError() /home/map/omnet/omnetpp-4.0/src/sim/ 0xb7cd56aa
50 cComponent::getDisplayString() /home/map/omnet/omnetpp-4.0/src/sim/ 0xb7cb7a1c
49 PPP::displayIdle() /home/map/omnet/inet-framework/src/linklayer/ppp/ 0xb70ae6c2
48 PPP::handleMessage() /home/map/omnet/inet-framework/src/linklayer/ppp/ 0xb70aeb18
47 cSimulation::doOneEvent() /home/map/omnet/omnetpp-4.0/src/sim/ 0xb7d0bd28
46 Tkenv::doRunSimulation() /home/map/omnet/omnetpp-4.0/src/tkenv/ 0xb7f31712
45 Tkenv::runSimulation() /home/map/omnet/omnetpp-4.0/src/tkenv/ 0xb7f31b4c
I used the following versions:
OMNet++: omnetpp-4.0-src.tgz
INET framework: INET-20090325-opp4-src.tgz, git version from 2009-06-11

After some debugging I found the reason for this message at Line
176. Line 175-177
// schedule an event for the time when last bit will leave the gate.
simtime_t endTransmissionTime =
scheduleAt(endTransmissionTime, endTransmissionEvent);

The datarateChannel pointer points to the old channel and not to the new
one copied in at simtime T=2.0. The function
cDatarateChannel::deliver is correctly called with the new Pointer. It
seems that only the PPP class works with the old channel pointers.

Furthermore, some times, the simulation stops even before this message
with a segmentation fault. I expect this to be due to the access of the
(already freed) datarateChannel in the PPP class.
No tags attached.
Issue History
2009-06-17 09:16paatzNew Issue
2011-09-14 15:53zbojtheNote Added: 0000556
2011-09-14 15:53zbojtheStatusnew => resolved

2011-09-14 15:53   
Fixed in PPP sometime.
Added event handler to PPP for detecting connect/disconnect/change datarate,
and added more bugfix for PPP in the year 2011.
The mpls/testte_failure example works without any crash.