OMNeT++/OMNEST Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000081INET FrameworkBasepublic2009-06-17 09:162011-09-14 15:53
Reporterpaatz 
Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000081: usage of Failure Manager crashes Simulation
DescriptionI 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
Additional InformationI 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.
TagsNo tags attached.
Attached Files

- Relationships

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

- Issue History
Date Modified Username Field Change
2009-06-17 09:16 paatz New Issue
2011-09-14 15:53 zbojthe Note Added: 0000556
2011-09-14 15:53 zbojthe Status new => resolved


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker