1

I am currently using Artery to simulate Traffic in a custom scenario. Being lazy, I just changed the required sumo-files and launchd.xml and references in the omnetpp.ini files so that I can run Artery using the run_example target. So far so good.
Qtenv starts without problems an I get a dialogue, prompting me to choose the ini configuration (General, veins, inet or inet_rsu). Whenever the SimTime reaches around 140 seconds running the inet_rsu configutration, the program crashes producing the following error Message:

opp_run: /home/wiconlab/Car2x/artery-master/src/artery/application    
/LocalDynamicMap.cc:24: void artery::LocalDynamicMap::updateAwareness(const CaObject&): Assertion `entry.expiry > omnetpp::simTime() && entry.expiry < omnetpp::simTime() + 2.0' failed

The complete terminal output is as follows:

$ cmake --build build --target run_example
[ 13%] Built target traci
[ 14%] Building INET (external dependency)
*** COMPILING with:
g++ -c -std=c++11 -O2 -DNDEBUG=1 -MMD -MP -MF .d  -fPIC  -fno-stack-protector -DHAVE_SWAPCONTEXT -DWITH_MPI -DXMLPARSER=libxml -DPREFER_QTENV -DWITH_QTENV -DWITH_TKENV -DWITH_PARSIM -DWITH_NETBUILDER -DWITH_OSG -DWITH_OSGEARTH -Wno-overloaded-virtual -include inet/common/precompiled.h   -I. -I/home/wiconlab/Car2x/omnetpp-5.1.1/include
*** LINKING with:
g++ -shared -fPIC -o ../out/gcc-release/src/libINET.so -Wl,--no-as-needed -Wl,--whole-archive  -Wl,--no-whole-archive -loppenvir -loppsim -ldl -lstdc++  -lOpenThreads -losg -losgText -losgDB -losgEarth -losgEarthUtil -Wl,-rpath,/home/wiconlab/Car2x/omnetpp-5.1.1/lib -Wl,-rpath,/lib -Wl,-rpath,.  -L/home/wiconlab/Car2x/omnetpp-5.1.1/lib
Building...
[ 14%] Built target build_inet
[ 15%] Building Veins (external dependency)
[ 15%] Built target build_veins
[ 16%] Building Vanetza (external dependency)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   date_time
--   serialization
--   system
-- Using bundled ASN.1 code instead of asn1c
-- Could NOT find Cohda (missing: COHDA_MK2_ROOT) 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wiconlab/Car2x/artery-master/extern/vanetza/build
[  0%] Built target asn1_gen
[ 65%] Built target asn1
[ 67%] Built target common
[ 71%] Built target net
[ 81%] Built target security
[ 85%] Built target dcc
[ 95%] Built target geonet
[ 97%] Built target btp
[ 98%] Built target facilities
[ 99%] Built target gnss
[100%] Built target proxy_fake_feed
[ 16%] Built target build_vanetza
[ 22%] Built target denm
[ 27%] Built target messages
[ 49%] Built target storyboard
[ 65%] Built target envmod
[100%] Built target artery
OMNeT++ Discrete Event Simulation  (C) 1992-2017 Andras Varga, OpenSim Ltd.
Version: 5.1.1, build: 170508-adbabd0, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer

Setting up Qtenv...

Loading NED files from /home/wiconlab/Car2x/artery-master/src/artery:  38
Loading NED files from /home/wiconlab/Car2x/artery-master/src/traci:  10
Loading NED files from /home/wiconlab/Car2x/artery-master/extern/veins/examples/veins:  1
Loading NED files from /home/wiconlab/Car2x/artery-master/extern/veins/src/veins:  33
Loading NED files from /home/wiconlab/Car2x/artery-master/extern/inet/examples:  163
Loading NED files from /home/wiconlab/Car2x/artery-master/extern/inet/src:  562
Loading NED files from /home/wiconlab/Car2x/artery-master/extern/inet/tutorials:  5

Loading images from './bitmaps': *: 0 
Loading images from './images': *: 0 
Loading images from '/home/wiconlab/Car2x/omnetpp-5.1.1/images': *: 0  abstract/*: 90  background/*: 4  block/*: 320  device/*: 195  logo/*: 1  maps/*: 9  misc/*: 70  msg/*: 55  old/*: 111  status/*: 28 

Loading configuration... done.
Warning: Cannot find local schema '/home/hardt/Car2x/sumo-0.30.0/data/xsd/additional_file.xsd', will try website lookup.
Warning: Cannot find local schema '/home/hardt/Car2x/sumo-0.30.0/data/xsd/additional_file.xsd', will try website lookup.
opp_run: /home/wiconlab/Car2x/artery-master/src/artery/application/LocalDynamicMap.cc:24: void artery::LocalDynamicMap::updateAwareness(const CaObject&): Assertion `entry.expiry > omnetpp::simTime() && entry.expiry < omnetpp::simTime() + 2.0' failed.
Error: tcpip::Socket::recvAndCheck @ recv: peer shutdown
Quitting (on error).
Aborted (core dumped)
scenarios/artery/CMakeFiles/run_example.dir/build.make:57: recipe for target 'scenarios/artery/CMakeFiles/run_example' failed
make[3]: *** [scenarios/artery/CMakeFiles/run_example] Error 134
CMakeFiles/Makefile2:566: recipe for target 'scenarios/artery/CMakeFiles/run_example.dir/all' failed
make[2]: *** [scenarios/artery/CMakeFiles/run_example.dir/all] Error 2
CMakeFiles/Makefile2:573: recipe for target 'scenarios/artery/CMakeFiles/run_example.dir/rule' failed
make[1]: *** [scenarios/artery/CMakeFiles/run_example.dir/rule] Error 2
Makefile:248: recipe for target 'run_example' failed
make: *** [run_example] Error 2

Backtrace after running in Debug configuration:

(gdb) backtrace
#0  0x00007ffff4c49428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff4c4b02a in __GI_abort () at abort.c:89
#2  0x00007ffff4c41bd7 in __assert_fail_base (fmt=<optimized out>, 
    assertion=assertion@entry=0x7fffd779f940 "entry.expiry > omnetpp::simTime() && entry.expiry < omnetpp::simTime() + 2.0", 
    file=file@entry=0x7fffd779f8f0 "/home/wiconlab/Car2x/artery-master/src/artery/application/LocalDynamicMap.cc", line=line@entry=24, 
    function=function@entry=0x7fffd779f9a0 <artery::LocalDynamicMap::updateAwareness(CaObject const&)::__PRETTY_FUNCTION__> "void artery::LocalDynamicMap::updateAwareness(const CaObject&)")
    at assert.c:92
#3  0x00007ffff4c41c82 in __GI___assert_fail (
    assertion=0x7fffd779f940 "entry.expiry > omnetpp::simTime() && entry.expiry < omnetpp::simTime() + 2.0", 
    file=0x7fffd779f8f0 "/home/wiconlab/Car2x/artery-master/src/artery/application/LocalDynamicMap.cc", line=24, 
    function=0x7fffd779f9a0 <artery::LocalDynamicMap::updateAwareness(CaObject const&)::__PRETTY_FUNCTION__> "void artery::LocalDynamicMap::updateAwareness(const CaObject&)") at assert.c:101
#4  0x00007fffd7703ab8 in artery::LocalDynamicMap::updateAwareness (this=0x1d62c7a8, obj=...)
    at /home/wiconlab/Car2x/artery-master/src/artery/application/LocalDynamicMap.cc:24
Python Exception <class 'TypeError'> expected string or bytes-like object: 
#5  0x00007fffd76f31f8 in CaService::indicate (this=0x6625550, ind=..., packet=)
    at /home/wiconlab/Car2x/artery-master/src/artery/application/CaService.cc:89
#6  0x00007fffd4202d91 in vanetza::btp::PortDispatcher::indicate(vanetza::geonet::DataIndication const&, std::unique_ptr<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket>, std::default_delete<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket> > >) ()
   from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_btp.so
#7  0x00007fffd3d3609f in vanetza::geonet::Router::pass_up(vanetza::geonet::DataIndication&, std::unique_ptr<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket>, std::default_delete<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket> > >) ()
   from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_geonet.so
#8  0x00007fffd3d362f9 in vanetza::geonet::Router::process_extended(vanetza::geonet::ExtendedPduConstRefs<vanetza::geonet::ShbHeader> const&, std::unique_ptr<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket>, std::default_delete<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket> > >) () from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_geonet.so
#9  0x00007fffd3d378f7 in vanetza::geonet::Router::indicate_extended(vanetza::geonet::IndicationContext&, vanetza::geonet::CommonHeader const&) ()
   from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_geonet.so
#10 0x00007fffd3d37b37 in vanetza::geonet::Router::indicate_common(vanetza::geonet::IndicationContext&, vanetza::geonet::BasicHeader const&) ()
   from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_geonet.so
#11 0x00007fffd3d39623 in vanetza::geonet::Router::indicate_secured(vanetza::geonet::IndicationContext&, vanetza::geonet::BasicHeader const&) ()
   from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_geonet.so
#12 0x00007fffd3d39998 in vanetza::geonet::Router::indicate(std::unique_ptr<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket>, std::default_delete<boost::variant<vanetza::ChunkPacket, vanetza::CohesivePacket> > >, vanetza::MacAddress const&, vanetza::MacAddress const&) ()
   from /home/wiconlab/Car2x/artery-master/extern/vanetza/build/lib/libvanetza_geonet.so
#13 0x00007fffd7707bc5 in artery::Middleware::handleLowerMsg (this=0x1d62c650, msg=0x2ea0df0)
    at /home/wiconlab/Car2x/artery-master/src/artery/application/Middleware.cc:303
#14 0x00007fffd7707a45 in artery::Middleware::handleMessage (this=0x1d62c650, msg=0x2ea0df0)
    at /home/wiconlab/Car2x/artery-master/src/artery/application/Middleware.cc:283
#15 0x00007ffff682e477 in omnetpp::cSimulation::doMessageEvent (this=0x7b6b10, msg=0x2ea0df0, 
    module=0x1d62c650) at csimulation.cc:669
#16 0x00007ffff682e152 in omnetpp::cSimulation::executeEvent (this=0x7b6b10, event=0x2ea0df0)
    at csimulation.cc:611
#17 0x00007ffff74e9075 in omnetpp::qtenv::Qtenv::doRunSimulationExpress (this=0x7b8a50)
    at qtenv.cc:968
#18 0x00007ffff74e8526 in omnetpp::qtenv::Qtenv::runSimulation (this=0x7b8a50, 
    mode=omnetpp::qtenv::RUNMODE_EXPRESS, until_time=..., until_eventnum=0, until_msg=0x0, 
    until_module=0x0, stopOnMsgCancel=true) at qtenv.cc:731
#19 0x00007ffff746ed8d in omnetpp::qtenv::MainWindow::runSimulation (this=0x252f060, 
    runMode=omnetpp::qtenv::RUNMODE_EXPRESS) at mainwindow.cc:507
#20 0x00007ffff74a80df in omnetpp::qtenv::MainWindow::on_actionExpressRun_triggered (this=0x252f060)
    at mainwindow.h:98
#21 0x00007ffff74a7a3f in omnetpp::qtenv::MainWindow::qt_static_metacall (_o=0x252f060, 
    _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffffc740) at moc_mainwindow.cpp:273
#22 0x00007ffff74a7f7c in omnetpp::qtenv::MainWindow::qt_metacall (this=0x252f060, 
    _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffffc740) at moc_mainwindow.cpp:363
#23 0x00007ffff44aaee0 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff3cba412 in QAction::triggered(bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff3cbc898 in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff3dc25a0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff3dc26d4 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff3e8726a in QToolButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff3d06fc8 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff3e87349 in QToolButton::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff3cc405c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff3cc9c19 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff447c38b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff3cc8b32 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff3d215bb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff3d23b7b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007ffff3cc405c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff3cc9516 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff447c38b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007ffff47be4e1 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#41 0x00007ffff47c01a5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#42 0x00007ffff47a3f08 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#43 0x00007fffd1b74200 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#44 0x00007fffefd69197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007fffefd693f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007fffefd6949c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007ffff44d27cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007ffff4479b4a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#49 0x00007ffff4481bec in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x00007ffff74e7ce6 in omnetpp::qtenv::Qtenv::doRun (this=0x7b8a50) at qtenv.cc:628
#51 0x00007ffff78f8ba0 in omnetpp::envir::EnvirBase::run (this=0x7b8a60) at envirbase.cc:748
#52 0x00007ffff78f5ed8 in omnetpp::envir::EnvirBase::run (this=0x7b8a60, argc=6, 
    argv=0x7fffffffda98, configobject=0x7bc750) at envirbase.cc:337
#53 0x00007ffff78ee1f9 in omnetpp::envir::setupUserInterface (argc=6, argv=0x7fffffffda98)
    at startup.cc:259
#54 0x00007ffff78ef930 in omnetpp::envir::evMain (argc=6, argv=0x7fffffffda98) at evmain.cc:33
#55 0x0000000000402340 in main (argc=6, argv=0x7fffffffda98) at opp_run.cc:321
M. Hardt
  • 67
  • 7

1 Answers1

3

The assertion in line 24 of LocalDynamicMap tries to ensure that only recent CAMs are added. In the lines before, the full CAM generation time stamp is reconstructed from the truncated generationDeltaTime time stamp. Maybe something went wrong there but I can hardly tell without further information. Can you provide details about your modifications? This may help to reproduce this error.

Also, I suggest to run the simulation with the debugger by invoking the debug_example target. Please make sure to set CMAKE_BUILD_TYPE to "Debug" to enable this target. When the assertion fails you have then the chance to look at the variables in detail: What is the exact OMNeT++ simulation time, i.e. "print simTime().dbl()" with gdb? What is the CAM's generationDeltaTime? What is the reconstruced tai value? What is the time base (mTimebase) of LocalDynamicMap's timer (mTimer)?

Addendum 1: CMake variables can be easily modified from the command line using ccmake or with cmake-gui if you prefer a graphical user interface. Example: Go to your Artery build directory (usually simply called "build") and call "ccmake ." from there. In the then opened command line interface move the cursor to the CMAKE_BUILD_TYPE entry, press [Enter] and modify this entry to "Debug". Finish by pressing [c] to run CMake configuration stage and [g] to generate an updated Makefile in your build directory.

  • I'd love to invoke the debug_example target, however there is none. I don't know how/where to set CMAKE_BUILD_TYPE. Searching on Google didn't help. – M. Hardt Feb 06 '18 at 08:50
  • 1
    OK. Turns out I wasn't paying attention and tried to start ccmake in the wrong folder... I ran the program in debug mode until it crashed. "print simTime().dbl()" returned "No symbol "SimTime" in current context." I could do a backtrace which i can append to the original question. As to the modifications: I only exchanged the sumo network and config files and the launchd.xml and the lines in the ini that refer to said files. – M. Hardt Feb 08 '18 at 09:35
  • Maybe you could share the according sumo network and config files? Than someone maybe can reconstruct the error. Would this be possible? – Ventu Feb 09 '18 at 09:06