robotology / gz-sim-yarp-plugins

YARP plugins for Modern Gazebo (gz-sim).
BSD 3-Clause "New" or "Revised" License
8 stars 2 forks source link

CameraTest non deterministic crash with apt dependencies #200

Open traversaro opened 3 weeks ago

traversaro commented 3 weeks ago

After https://github.com/robotology/gz-sim-yarp-plugins/pull/195, these two tests still fail non deterministically. This issue track fixing this flaky failures.

traversaro commented 3 weeks ago

The problem is still there:

 4/18 Test  #4: CameraTest ................................................................***Exception: SegFault  2.39 sec
Running main() from ./googletest/src/gtest_main.cc
[==========] Running 4 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 4 tests from CameraTest
[ RUN      ] CameraTest.PluginTest
[Msg] Loading SDF world file[/home/runner/work/gz-sim-yarp-plugins/gz-sim-yarp-plugins/tests/camera/model.sdf].
[Msg] Serving entity system service on [/entity/system/add]
[Dbg] [Physics.cc:870] Loaded [gz::physics::dartsim::Plugin] from library [/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics-dartsim-plugin.so]
[Dbg] [SystemManager.cc:77] Loaded system [gz::sim::systems::Physics] for entity [1]
[Msg] Create service on [/world/sensors/create]
[Msg] Remove service on [/world/sensors/remove]
[Msg] Pose service on [/world/sensors/set_pose]
[Msg] Pose service on [/world/sensors/set_pose_vector]
[Msg] Light configuration service on [/world/sensors/light_config]
[Msg] Physics service on [/world/sensors/set_physics]
[Msg] SphericalCoordinates service on [/world/sensors/set_spherical_coordinates]
[Msg] Enable collision service on [/world/sensors/enable_collision]
[Msg] Disable collision service on [/world/sensors/disable_collision]
[Msg] Material service on [/world/sensors/visual_config]
[Msg] Material service on [/world/sensors/wheel_slip]
[Dbg] [SystemManager.cc:77] Loaded system [gz::sim::systems::UserCommands] for entity [1]
[Dbg] [Sensors.cc:530] Configuring Sensors system
[Dbg] [Sensors.cc:449] SensorsPrivate::Run
[Dbg] [SystemManager.cc:77] Loaded system [gz::sim::systems::Sensors] for entity [1]
[Dbg] [Sensors.cc:425] SensorsPrivate::RenderThread started
[Dbg] [Sensors.cc:265] Waiting for init
[Dbg] [SystemManager.cc:77] Loaded system [gz::sim::systems::SceneBroadcaster] for entity [1]
[INFO] Yarp configuration string loaded:  (yarpDeviceName camera_plugin_device) (parentLinkName link_1) (sensorName camera_sensor) (display_timestamp) (display_time_box)
[INFO] gz-sim-yarp-camera-system: configuration of sensor  camera_sensor  loaded
[DEBUG] |yarp.dev.PolyDriver|gazebo_camera| Parameters are (device gazebo_camera) (display_time_box) (display_timestamp) (parentLinkName link_1) (sensorName camera_sensor) (sensorScopedName "") (sensor_name camera_sensor) (yarpDeviceName camera_plugin_device)
[INFO] |yarp.dev.PolyDriver|gazebo_camera| Created device <gazebo_camera>. See C++ class CameraDriver for documentation.
[INFO] gz-sim-yarp-camera-system: Registered YARP device with instance name: model/camera_model/camera_plugin_device
[Dbg] [SystemManager.cc:77] Loaded system [gzyarp::Camera] for entity [8]
[INFO] File is a URI:  model://camera_nws.xml
[DEBUG] Reading file /home/runner/work/gz-sim-yarp-plugins/gz-sim-yarp-plugins/tests/camera/camera_nws.xml
[DEBUG] yarprobotinterface: using xml parser for DTD v3.x
[DEBUG] Reading file /home/runner/work/gz-sim-yarp-plugins/gz-sim-yarp-plugins/tests/camera/camera_nws.xml
[INFO] Yarprobotinterface was started using the following enable_tags: 
[INFO] Yarprobotinterface was started using the following disable_tags: 
[DEBUG] List of all enable attributes found in the include tags: 
[DEBUG] List of all disable attributes found in the include tags: 
[DEBUG] Preprocessor complete in:  2.14577e-06 s
[INFO] startup phase starting...
[INFO] Opening device camera_nws_yarp with parameters [("robotName" = "camera"), ("name" = "/camera"), ("period" = "0.033333"), ("capabilities" = "COLOR")]
[DEBUG] |yarp.dev.PolyDriver|camera_nws_yarp| Parameters are (capabilities COLOR) (device frameGrabber_nws_yarp) (id camera_nws_yarp) (name "/camera") (period 0.033333000000000001517) (robotName camera)
[INFO] |yarp.os.Port|/camera/rpc| Port /camera/rpc active at tcp://127.0.0.1:10002/
[INFO] |yarp.os.Port|/camera| Port /camera active at tcp://127.0.0.1:10003/
[INFO] |yarp.device.frameGrabber_nws_yarp| Running, waiting for attach...
[INFO] |yarp.dev.PolyDriver|camera_nws_yarp| Created wrapper <frameGrabber_nws_yarp>. See C++ class FrameGrabber_nws_yarp for documentation.
[INFO] Entering action level 5 of phase startup
[INFO] Executing attach action, level 5 on device camera_nws_yarp with parameters [("device" = "camera_plugin_device")]
Warning:  |yarp.device.frameGrabber_nws_yarp| Targets has not IVisualParamInterface, some features cannot be available
[INFO] All actions for action level 5 of startup phase started. Waiting for unfinished actions.
[INFO] All actions for action level 5 of startup phase finished.
[INFO] startup phase finished.
[Wrn] [Ogre2RenderEngine.cc:548] Unable to open display: . Trying to run in headless mode.
[Dbg] [SystemManager.cc:77] Loaded system [gzyarp::RobotInterface] for entity [8]
[Msg] Loaded level [3]
[Msg] Serving world controls on [/world/sensors/control], [/world/sensors/control/state] and [/world/sensors/playback/control]
[Msg] Serving GUI information on [/world/sensors/gui/info]
[Msg] World [sensors] initialized with [1ms] physics profile.
[Msg] Serving world SDF generation service on [/world/sensors/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource path resolve service on [/gazebo/resource_paths/resolve].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Msg] Server control service on [/server_control].
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Dbg] [SimulationRunner.cc:551] Creating PostUpdate worker threads: 5
[Dbg] [SimulationRunner.cc:562] Creating postupdate worker thread (0)
[Dbg] [SimulationRunner.cc:562] Creating postupdate worker thread (1)
[Dbg] [SimulationRunner.cc:562] Creating postupdate worker thread (2)
[Dbg] [SimulationRunner.cc:562] Creating postupdate worker thread (3)
[Dbg] [Sensors.cc:703] Initialization needed
[Dbg] [Sensors.cc:277] Initializing render context
[Msg] Loading plugin [gz-rendering-ogre2]
[Msg] Serving scene information on [/world/sensors/scene/info]
[Msg] Serving graph information on [/world/sensors/scene/graph]
[Msg] Serving full state on [/world/sensors/state]
[Msg] Serving full state (async) on [/world/sensors/state_async]
[Msg] Publishing scene information on [/world/sensors/scene/info]
[Msg] Publishing entity deletions on [/world/sensors/scene/deletion]
[Msg] Publishing state changes on [/world/sensors/state]
[Msg] Publishing pose messages on [/world/sensors/pose/info]
[Msg] Publishing dynamic pose messages on [/world/sensors/dynamic_pose/info]
[Dbg] [RenderUtil.cc:2643] Create scene [scene]
[Dbg] [Sensors.cc:703] Initialization needed
[Dbg] [Sensors.cc:297] Rendering Thread initializ[Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.

See https://github.com/robotology/gz-sim-yarp-plugins/actions/runs/10527717740/job/29171530358, but it happens reliably only on apt, and at first glance does not affect the LaserTest anymore for some reason.