Segmentation fault with OMNeT++ Veins SUMO from the command line

74 views
Skip to first unread message

Pablo

unread,
Oct 24, 2016, 5:04:39 PM10/24/16
to OMNeT++ Users
Hi,

I have the following problem. I work with Veins 4.4 + Omnet++ 4.6 + SUMO 0.25 (in Mac OS X El Capitan).

I have built an easy grid scenario and 100 routes + 100 vehicles defined in a file xxx.rou.xml, starting from t=0.0, 0.1, 0.2, ... 9.9 seconds; previously I started with t=0.0 for all of them. The xxx.rou.xml file seems correct, with lines like these:

   <route id="route-1" color="Magenta" edges="3/2to4/2 4/2to3/2 3/2to3/1 3/1to3/2"/>

   <vehicle id="vehicle-1" type="passenger" color="Black" depart="0.1" route="route-1"/>


When I run the simulation with the OMNeT++ IDE all works ok. But when I run it from the command line, it creates properly the first 31 vehicles node[0]..node[30], but then I get a "Segmentation fault".

After execute it with the debugger (ggdb), and after recompiling Veins, I could see the stack trace, and the error occurs just when the vehicle 31 is being created. In brief, the error occur at the strlen() function, which is called from TraCIScenarioManager::addModule(). The call stack is too large (37 levels):

strlen()
toAbsolutePath(char const*)
cXMLDocCache::getDocument(char const*, char const*)
nedf_xmldoc(cComponent*, cNEDValue*, int)
cNEDFunction::invoke(cComponent*, cNEDValue*, int)
cDynamicExpression::evaluate(cComponent*)
cParImpl::evaluate(cExpression*, cComponent*)
cXMLParImpl::xmlValue(cComponent*)
cXMLParImpl::convertToConst(cComponent*)
cPar::convertToConst()
cPar::finalize()
cComponent::finalizeParameters()
cModule::finalizeParameters()
cNEDNetworkBuilder::addSubmodule(cModule*, SubmoduleElement*)
cNEDNetworkBuilder::addSubmodulesAndConnections(cModule*)
cNEDNetworkBuilder::buildInside(cModule*, cNEDDeclaration*) 
cDynamicModuleType::buildInside(cModule*)
cModule::buildInside()
cNEDNetworkBuilder::buildInside(cModule*, cNEDDeclaration*)
cDynamicModuleType::buildInside(cModule*)
cModule::buildInside()
Veins::TraCIScenarioManager::addModule
Veins::TraCIScenarioManager::processVehicleSubscription
...

I am stuck at that point, as it seems a problem with Veins or OMNeT++, so it is "outside my jurisdiction". Any clue?

A secondary doubt about xxx.rou.xml file is that I expected that the vehicles where created node[0] with route-0, node[1] with route-1, ... and so on.
It is true from 0 to 8, but node[8] is assigned route-9, and this occur more than once, there are several gaps. Perhaps the 'depart' parameter should be set with a greater values between vehicles?

Many thanks in advance
Pablo





Pablo

unread,
Oct 25, 2016, 6:29:34 AM10/25/16
to OMNeT++ Users
The same configuration in Linux works well. So, the problem occurs only in Mac OS X and running from the command line.

Reply all
Reply to author
Forward
0 new messages