Reputation: 37
I try to run the simulation from command line with the following command,
$ opp_runall -j2 ./inetmanet-3.x-mactest2 -u Cmdenv -c General -r 1 -n ../..:../../../src:../../../tutorials --image-path=../../../images -l ../../../src/INET omnetpp.ini
I get a weird error, which does not make sense to me, any one can help as follows.
what(): ASSERT: Condition '(int)signalListenerCount.size() == lastSignalID+1' does not hold in function registerSignal, ccomponent.cc line 414 opp_runall: ./inetmanet-3.x-mactest2 [...] -q runnumbers returned nonzero exit status
I using omnetpp RC2 latest release, 1992-2017.
any help?
Upvotes: 1
Views: 368
Reputation: 2313
I stumbled upon the same problem. It is actually a bug/feature in newer versions of OMNeT++, where the signal handling was improved. I just discussed this problem with Attila Török on the mailing list.
This occurs if a signal is registered in an external library during static initialization. Three possible solutions:
Citing Attila:
Insert EXECUTE_ON_STARTUP(cComponent::clearSignalState());
into ccomponent.cc
, right after the definition of cComponent::signalListenerCount
, then rebuilding OMNeT++.
Move your signal registration out of the static initialization phase. This might or might not be possible in your scenario, but avoids modifications of OMNeT++ itself.
Downgrade OMNeT++ and wait until this is fixed upstream. At least 5.0 works.
Upvotes: 3