OMNeT++/OMNEST Bug Tracker - INET Framework
View Issue Details
0000081INET FrameworkBasepublic2009-06-17 09:162011-09-14 15:53
paatz 
 
normalcrashalways
resolvedopen 
 
 
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/cexception.cc:140 0xb7cd4ad9
51 cRuntimeError() /home/map/omnet/omnetpp-4.0/src/sim/cexception.cc:208 0xb7cd56aa
50 cComponent::getDisplayString() /home/map/omnet/omnetpp-4.0/src/sim/ccomponent.cc:192 0xb7cb7a1c
49 PPP::displayIdle() /home/map/omnet/inet-framework/src/linklayer/ppp/PPP.cc:277 0xb70ae6c2
48 PPP::handleMessage() /home/map/omnet/inet-framework/src/linklayer/ppp/PPP.cc:192 0xb70aeb18
47 cSimulation::doOneEvent() /home/map/omnet/omnetpp-4.0/src/sim/csimulation.cc:627 0xb7d0bd28
46 Tkenv::doRunSimulation() /home/map/omnet/omnetpp-4.0/src/tkenv/tkenv.cc:529 0xb7f31712
45 Tkenv::runSimulation() /home/map/omnet/omnetpp-4.0/src/tkenv/tkenv.cc:402 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 PPP.cc Line
176.

PPP.cc Line 175-177
// schedule an event for the time when last bit will leave the gate.
simtime_t endTransmissionTime =
datarateChannel->getTransmissionFinishTime();
scheduleAt(endTransmissionTime, endTransmissionEvent);

The datarateChannel pointer points to the old channel and not to the new
one copied in FailureManager.cc 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

Notes
(0000556)
zbojthe   
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.