Hello,
I am using ns-2.29 and I have a problem where an event is being scheduled
with a positive UID. It only happens in one simulation, but still I would
like to know, because this could also have impact on other results.
Detailed Info:
- Warning
---
Scheduler: Event UID not valid!
---
This warning comes from the method Scheduler::schedule(Handler* h, Event*
e, double delay) in /common/scheduler.cc (using CalendarScheduler) when
called from the method DeferTimer::start(double time) in /mac/mac-timers.cc
- Tracing
I have traced the uid's in DeferTimer::start
New Event ID = 27242 (given by Scheduler::schedule)
Event ID = -27242 (before calling Scheduler::schedule)
New Event ID = 27250
Event ID = -27250
New Event ID = 27282
Event ID = -27282
New Event ID = 27287
Event ID = -27287
New Event ID = 27312
Event ID = 27312
- this is the event causing the warning + abort()
- we are 12 seconds into simulation
- normal procedure (i believe):
* intr.uid_ (the event to be scheduled) is negative, because it has
been dispatched.
* The scheduler assigns a new (positive and unique) uid to intr.
* The scheduler dispatches the event and makes the ID negative.
- because event 27132 seems not to be dispatched, the new event has a
positive ID
Does anybody know in what situation this might happen or how to prevent this
situation, because I cannot tell how mac-timers.cc can make sure that the
'intr' event is always dispatched before scheduling a new event?
Many thanks,
Michael