des-testbed / libara

A framework for the implementation and evaluation of routing algorithms based on the Ant Colony Optimization (ACO) metaheuristic.
GNU General Public License v3.0
19 stars 11 forks source link

Issue in EARA scenarios #96

Open mfrey opened 11 years ago

mfrey commented 11 years ago

There seems to be a problem in the EARA scenarios (the following snippet is from a log file).

1347 <!> Error in module (ARA::omnetpp::EARA) EARAScenario.node[41].networkLayer.ara (id=765) at
event #54492258, t=513.9611     32: std::out_of_range: deque::_M_range_check.

This looks like a range check fail in the node deque list. The simulation aborted at 57 % of its execution time.

fgrosse commented 11 years ago

Do you know which deque specifically is the problem?

mfrey commented 11 years ago

No, that's actually the output from the log file. The rest of the log file is as follows

undisposed object: (Ieee80211DataFrameWithSNAP) EARAScenario.node[41].wlan[0].mac.DATA -- 
check module destructor
undisposed object: (ARA::omnetpp::OMNeTEARAPacket) EARAScenario.node[41].networkLayer.ara.DATA 
-- check module destruct     or
fgrosse commented 11 years ago

You can safely ignore the undisposed object messages for now. They come up when the simulation shuts down (in this case because it caught an exception) and there are objects that have not been deleted by their owners. This is not a surprise if an exception has been thrown which we didn't really expect.

I would advise turning on our own logging by setting **.ara.logLevel = "TRACE" in the corresponding omnetpp.ini. This way we can at least see, what happened right before the exception is thrown. Since this is no segfault it will be hard to figure out where it hides just using a debugger.

mfrey commented 11 years ago

I'm going to try to repeat the simulations with the suggested log level. However, I couldn't repeat this issue with the last round of simulations I had run.

mfrey commented 11 years ago

I've had finally some time left and did some simulations (and increased the log level as suggested). However, the higher log level didn't gave much more information:


133979 [211.580000]  node[1]  [DEBUG] Forwarding DATA packet 10598 from [1] to [2] via [37] (phi=129.14)
133980 ** Event #23742605   T=211.58025   Elapsed: 377.367s (6m 17s)  23% completed
133981      Speed:     ev/sec=60494.9   simsec/sec=0.851313   ev/simsec=71060.7
133982      Messages:  created: 20604752   present: 662   in FES: 146
133983 
133984 <!> Error in module (ARA::omnetpp::EARA) 
EARAScenario.node[37].networkLayer.ara (id=697) at event #23742605, t=211.58025: 
std::out_of_range: deque::_M_range_check
fgrosse commented 11 years ago

This does only show one actual log entry. A couple of more would be more helpful. Sorry for the late answer I am currently very busy with work and everything

mfrey commented 11 years ago

*\ EDIT: I've added a more detailed trace. The additional log messages are not part commited to the master.

[577.680544]  node[47]  [DEBUG] Forwarding DATA packet 28831 from [1] to [2] via [2] (phi=13.63)
[577.680838]  node[2]  [TRACE] Did not create new route to [1] via [47] (prevHop [11] or sender has been seen before)
[577.680838]  node[2]  [TRACE] receivePacket: will decrease TTL
[577.680838]  node[2]  [TRACE] hasBeenReceivedEarlier: get source
[577.680838]  node[2]  [TRACE] hasBeenReceivedEarlier: get sequence number
[577.680838]  node[2]  [TRACE] hasBeenReceivedEarlier: iterate over last received packets
[577.680838]  node[2]  [TRACE] hasBeenReceivedEarlier: found no packet
[577.680838]  node[2]  [TRACE] receivePacket: will register received packet
[577.680838]  node[2]  [TRACE] receivePacket: handle packet
[577.680838]  node[2]  [INFO] Packet 28831 from [1] reached its destination
[577.700000]  node[1]  [DEBUG] Forwarding DATA packet 28832 from [1] to [2] via [11] (phi=52.94)
[577.700250]  node[11]  [TRACE] Did not create new route to [1] via [1] (prevHop [1] or sender has been seen before)
[577.700250]  node[11]  [TRACE] receivePacket: will decrease TTL
[577.700250]  node[11]  [TRACE] hasBeenReceivedEarlier: get source
[577.700250]  node[11]  [TRACE] hasBeenReceivedEarlier: get sequence number
[577.700250]  node[11]  [TRACE] hasBeenReceivedEarlier: iterate over last received packets
[577.700250]  node[11]  [TRACE] hasBeenReceivedEarlier: found no packet
[577.700250]  node[11]  [TRACE] receivePacket: will register received packet
[577.700250]  node[11]  [TRACE] receivePacket: handle packet
[577.700250]  node[11]  [DEBUG] Forwarding DATA packet 28832 from [1] to [2] via [48] (phi=9.99)
[577.700544]  node[48]  [TRACE] Did not create new route to [1] via [11] (prevHop [1] or sender has been seen before)
[577.700544]  node[48]  [TRACE] receivePacket: will decrease TTL
[577.700544]  node[48]  [TRACE] hasBeenReceivedEarlier: get source
[577.700544]  node[48]  [TRACE] hasBeenReceivedEarlier: get sequence number
[577.700544]  node[48]  [TRACE] hasBeenReceivedEarlier: iterate over last received packets
[577.700544]  node[48]  [TRACE] hasBeenReceivedEarlier: found no packet
[577.700544]  node[48]  [TRACE] receivePacket: will register received packet
[577.700544]  node[48]  [TRACE] receivePacket: handle packet
[577.700544]  node[48]  [DEBUG] Forwarding DATA packet 28832 from [1] to [2] via [50] (phi=19.42)
[577.700838]  node[0]  [TRACE] Did not create new route to [1] via [48] (prevHop [11] or sender has been seen before)
[577.700838]  node[0]  [TRACE] receivePacket: will decrease TTL
[577.700838]  node[0]  [TRACE] hasBeenReceivedEarlier: get source
[577.700838]  node[0]  [TRACE] hasBeenReceivedEarlier: get sequence number
[577.700838]  node[0]  [TRACE] hasBeenReceivedEarlier: iterate over last received packets
[577.700838]  node[0]  [TRACE] hasBeenReceivedEarlier: found no packet
[577.700838]  node[0]  [TRACE] receivePacket: will register received packet
[577.700838]  node[0]  [TRACE] receivePacket: handle packet
[577.700838]  node[0]  [DEBUG] Forwarding DATA packet 28832 from [1] to [2] via [2] (phi=157.42)
[577.701132]  node[2]  [TRACE] receivePacket: will decrease TTL
[577.701132]  node[2]  [TRACE] hasBeenReceivedEarlier: get source
[577.701132]  node[2]  [TRACE] hasBeenReceivedEarlier: get sequence number
[577.701132]  node[2]  [TRACE] hasBeenReceivedEarlier: iterate over last received packets
[577.701132]  node[2]  [TRACE] hasBeenReceivedEarlier: found no packet
[577.701132]  node[2]  [TRACE] receivePacket: will register received packet
[577.701132]  node[2]  [TRACE] receivePacket: handle packet
[577.701132]  node[2]  [INFO] Packet 28832 from [1] reached its destination
** Event #40570195   T=577.72   Elapsed: 652.271s (10m 52s)  64% completed
     Speed:     ev/sec=65614.9   simsec/sec=0.988599   ev/simsec=66371.6
     Messages:  created: 34605172   present: 602   in FES: 102

<!> Error in module (ARA::omnetpp::EARA) EARAScenario.node[1].networkLayer.ara (id=85) 
at event #40570195, t=577.72: std::out_of_range: deque::_M_range_check.

undisposed object: (ARA::omnetpp::OMNeTEARAPacket) EARAScenario.node[1].networkLayer.ara.DATA 
-- check module destructor

End.