Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failing to retrieve service type, brings node down #262

Closed
carlosatrios opened this issue Sep 1, 2023 · 17 comments · Fixed by #263 or #265
Closed

Failing to retrieve service type, brings node down #262

carlosatrios opened this issue Sep 1, 2023 · 17 comments · Fixed by #263 or #265
Assignees
Labels
bug Something isn't working

Comments

@carlosatrios
Copy link

Description
The node aborts during repeated "Failed to retrieve service type" and crashes the node.

SUMMARY
========

PARAMETERS
 * /foxglove_bridge/address: 0.0.0.0
2023-09-01T21:43:49.718834923Z  * /foxglove_bridge/asset_uri_allowlist: ['package://(/?\\...
2023-09-01T21:43:49.718837287Z  * /foxglove_bridge/capabilities: ['clientPublish',...
 * /foxglove_bridge/certfile: 
 * /foxglove_bridge/client_topic_whitelist: ['.*']
2023-09-01T21:43:49.718846455Z  * /foxglove_bridge/keyfile: 
 * /foxglove_bridge/max_update_ms: 5000
 * /foxglove_bridge/param_whitelist: ['.*']
 * /foxglove_bridge/port: 8765
 * /foxglove_bridge/send_buffer_limit: 10000000
 * /foxglove_bridge/service_whitelist: ['.*']
 * /foxglove_bridge/tls: False
2023-09-01T21:43:49.718861954Z  * /foxglove_bridge/topic_whitelist: ['.*']
 * /foxglove_nodelet_manager/num_worker_threads: 0
 * /rosdistro: noetic
2023-09-01T21:43:49.718868607Z  * /rosversion: 1.16.0

NODES
  /
    foxglove_bridge (nodelet/nodelet)
    foxglove_nodelet_manager (nodelet/nodelet)

ROS_MASTER_URI=http://hood1-1-rios-roscore-service:80/
]2;/opt/rios/install/share/foxglove_bridge/launch/foxglove_bridge.launch http://hood1-1-rios-roscore-service:80/�
process[foxglove_nodelet_manager-1]: started with pid [68]
process[foxglove_bridge-2]: started with pid [69]
2023-09-01T21:43:49.954738356Z [ERROR] [1693604629.954637736]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/get_loggers: std::future_error: Broken promise
[ERROR] [1693604629.960421416]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604629.963452575]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604629.966846903]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/load_config: std::future_error: Broken promise
[ERROR] [1693604629.970424157]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604629.974170433]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/save_config: std::future_error: Broken promise
[ERROR] [1693604629.976027506]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3355783/get_loggers: std::future_error: Broken promise
[ERROR] [1693604629.977745424]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3355783/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604629.982635479]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3360882/get_loggers: std::future_error: Broken promise
[ERROR] [1693604629.985879822]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3360882/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604629.995735004]: Failed to retrieve service type or service description of service /tf_echo_1693005407704472780/get_loggers: std::future_error: Broken promise
[ERROR] [1693604629.997922693]: Failed to retrieve service type or service description of service /tf_echo_1693005407704472780/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604630.002444470]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/get_loggers: std::future_error: Broken promise
[ERROR] [1693604630.007448601]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/set_logger_level: std::future_error: Broken promise
2023-09-01T21:43:50.013426630Z [ERROR] [1693604630.013370403]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604630.018472310]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/load_config: std::future_error: Broken promise
[ERROR] [1693604630.023164429]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604630.028526369]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/save_config: std::future_error: Broken promise
[ERROR] [1693604630.033903217]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_68845/get_loggers: std::future_error: Broken promise
[ERROR] [1693604630.038839359]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_68845/set_logger_level: std::future_error: Broken promise
[ WARN] [1693604630.291370231]: Failed to retrieve type of service /rqt_gui_cpp_node_11371/get_loggers
2023-09-01T21:43:50.543664253Z [ WARN] [1693604630.543572709]: Failed to retrieve type of service /rqt_gui_cpp_node_11371/set_logger_level
[ WARN] [1693604630.795988773]: Failed to retrieve type of service /rqt_gui_cpp_node_15179/get_loggers
[ WARN] [1693604631.049000466]: Failed to retrieve type of service /rqt_gui_cpp_node_15179/set_logger_level
[ WARN] [1693604631.302035504]: Failed to retrieve type of service /rqt_gui_cpp_node_15179/compressed/set_parameters
[ERROR] [1693604631.305001208]: Failed to retrieve service type or service description of service /tf_echo_1693329846940349580/get_loggers: std::future_error: Broken promise
[ERROR] [1693604631.307799466]: Failed to retrieve service type or service description of service /tf_echo_1693329846940349580/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604631.312068543]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/get_loggers: std::future_error: Broken promise
[ERROR] [1693604631.315257622]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/set_logger_level: std::future_error: Broken promise
2023-09-01T21:43:51.319103386Z [ERROR] [1693604631.318751839]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604631.322952897]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/load_config: std::future_error: Broken promise
[ERROR] [1693604631.327608327]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604631.331009648]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/save_config: std::future_error: Broken promise
[ERROR] [1693604631.379363711]: Failed to retrieve service type or service description of service /rostopic_614368_1693332654733/get_loggers: std::future_error: Broken promise
[ERROR] [1693604631.383728559]: Failed to retrieve service type or service description of service /rostopic_614368_1693332654733/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604631.386775559]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/get_loggers: std::future_error: Broken promise
[ERROR] [1693604631.390348856]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604631.393720982]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604631.397023165]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/load_config: std::future_error: Broken promise
[ERROR] [1693604631.400547830]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/load_config_discarding_changes: std::future_error: Broken promise
[ WARN] [1693604633.884170701]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604633.884195017]: Failed to retrieve type information for service '/qc_camera1/get_cam_properties' of type 'camera_control_msgs/GetCamProperties'
[ WARN] [1693604633.887191851]: Could not find package 'arena_camera_ros' in srv paths!
2023-09-01T21:43:53.887251244Z [ERROR] [1693604633.887212631]: Failed to retrieve type information for service '/qc_camera1/toggle_stream' of type 'arena_camera_ros/ToggleCameraStream'
[ WARN] [1693604633.917033031]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604633.917065743]: Failed to retrieve type information for service '/qc_camera2/set_binning' of type 'camera_control_msgs/SetBinning'
2023-09-01T21:43:53.920068057Z [ WARN] [1693604633.920025937]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604633.920049983]: Failed to retrieve type information for service '/qc_camera2/set_exposure' of type 'camera_control_msgs/SetExposure'
2023-09-01T21:43:53.922878037Z [ WARN] [1693604633.922837389]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604633.922858760]: Failed to retrieve type information for service '/qc_camera2/set_gain' of type 'camera_control_msgs/SetGain'
[ WARN] [1693604633.928546769]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604633.928573579]: Failed to retrieve type information for service '/qc_camera2/set_gamma' of type 'camera_control_msgs/SetGamma'
[ WARN] [1693604633.931902503]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604633.931927521]: Failed to retrieve type information for service '/qc_camera2/get_cam_properties' of type 'camera_control_msgs/GetCamProperties'
[ WARN] [1693604633.934509107]: Could not find package 'arena_camera_ros' in srv paths!
[ERROR] [1693604633.934533724]: Failed to retrieve type information for service '/qc_camera2/toggle_stream' of type 'arena_camera_ros/ToggleCameraStream'
[ WARN] [1693604634.000754093]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604634.000793578]: Failed to retrieve type information for service '/qc_camera3/set_binning' of type 'camera_control_msgs/SetBinning'
[ WARN] [1693604634.006043265]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604634.006080195]: Failed to retrieve type information for service '/qc_camera3/set_exposure' of type 'camera_control_msgs/SetExposure'
2023-09-01T21:43:54.010520507Z [ WARN] [1693604634.010460173]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604634.010488476]: Failed to retrieve type information for service '/qc_camera3/set_gain' of type 'camera_control_msgs/SetGain'
[ WARN] [1693604634.012819628]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604634.012843794]: Failed to retrieve type information for service '/qc_camera3/set_gamma' of type 'camera_control_msgs/SetGamma'
2023-09-01T21:43:54.015401124Z [ WARN] [1693604634.015358714]: Could not find package 'camera_control_msgs' in srv paths!
[ERROR] [1693604634.015384623]: Failed to retrieve type information for service '/qc_camera3/get_cam_properties' of type 'camera_control_msgs/GetCamProperties'
2023-09-01T21:43:54.017577041Z [ WARN] [1693604634.017520243]: Could not find package 'arena_camera_ros' in srv paths!
[ERROR] [1693604634.017543197]: Failed to retrieve type information for service '/qc_camera3/toggle_stream' of type 'arena_camera_ros/ToggleCameraStream'
[ WARN] [1693604634.888113285]: Failed to retrieve type of service /rostopic_3080030_1693521791615/get_loggers
2023-09-01T21:43:55.162104952Z [ WARN] [1693604635.161994142]: Failed to retrieve type of service /rqt_gui_cpp_node_54672/get_loggers
[ WARN] [1693604635.414474287]: Failed to retrieve type of service /rqt_gui_cpp_node_54672/set_logger_level
2023-09-01T21:43:55.493921674Z [ERROR] [1693604635.493826935]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.495109848]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.496578403]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/load_nodelet: std::future_error: Broken promise
[ERROR] [1693604635.497926219]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/unload_nodelet: std::future_error: Broken promise
2023-09-01T21:43:55.499340081Z [ERROR] [1693604635.499303221]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/list: std::future_error: Broken promise
[ERROR] [1693604635.500588469]: Failed to retrieve service type or service description of service /robot_2_dx_motion_interface/get_loggers: std::future_error: Broken promise
[ WARN] [1693604635.751974429]: Failed to retrieve type of service /robot_2_dx_motion_interface/set_logger_level
[ERROR] [1693604635.754514737]: Failed to retrieve service type or service description of service /robot_2_fanuc_rmi_client/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.759561830]: Failed to retrieve service type or service description of service /robot_2_fanuc_rmi_client/set_logger_level: std::future_error: Broken promise
2023-09-01T21:43:55.765559225Z [ERROR] [1693604635.765512447]: Failed to retrieve service type or service description of service /R2_VeneerCornerObserver/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.766427602]: Failed to retrieve service type or service description of service /R2_VeneerCornerObserver/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.767290950]: Failed to retrieve service type or service description of service /robot_1_dx_motion_interface/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.768171179]: Failed to retrieve service type or service description of service /robot_1_dx_motion_interface/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.769066327]: Failed to retrieve service type or service description of service /robot_1_fanuc_rmi_client/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.773180531]: Failed to retrieve service type or service description of service /robot_1_fanuc_rmi_client/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.924435023]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.930194718]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.935104139]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604635.939061535]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/load_config: std::future_error: Broken promise
[ERROR] [1693604635.942793704]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/load_config_discarding_changes: std::future_error: Broken promise
2023-09-01T21:43:55.946994611Z [ERROR] [1693604635.946937263]: Failed to retrieve service type or service description of service /rviz_msiraider_455523_4051231953047898198/save_config: std::future_error: Broken promise
[ERROR] [1693604635.948405397]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3355783/get_loggers: std::future_error: Broken promise
2023-09-01T21:43:55.949828576Z [ERROR] [1693604635.949785685]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3355783/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.952033509]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3360882/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.953121563]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_3360882/set_logger_level: std::future_error: Broken promise
2023-09-01T21:43:55.955427967Z [ERROR] [1693604635.955358255]: Failed to retrieve service type or service description of service /tf_echo_1693005407704472780/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.958549357]: Failed to retrieve service type or service description of service /tf_echo_1693005407704472780/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.963378256]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/get_loggers: std::future_error: Broken promise
[ERROR] [1693604635.967455169]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604635.973375127]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604635.978929322]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/load_config: std::future_error: Broken promise
[ERROR] [1693604635.983714979]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604635.988177192]: Failed to retrieve service type or service description of service /rviz_msiraider_475863_1805560526383919607/save_config: std::future_error: Broken promise
[ WARN] [1693604636.240285112]: Failed to retrieve type of service /rqt_gui_cpp_node_68845/get_loggers
[ERROR] [1693604636.245580837]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_68845/set_logger_level: std::future_error: Broken promise
[ WARN] [1693604636.497235276]: Failed to retrieve type of service /rqt_gui_cpp_node_11371/get_loggers
[ WARN] [1693604636.750249946]: Failed to retrieve type of service /rqt_gui_cpp_node_11371/set_logger_level
[ WARN] [1693604637.002703832]: Failed to retrieve type of service /rqt_gui_cpp_node_15179/get_loggers
[ WARN] [1693604637.255063360]: Failed to retrieve type of service /rqt_gui_cpp_node_15179/set_logger_level
[ WARN] [1693604637.507601486]: Failed to retrieve type of service /rqt_gui_cpp_node_15179/compressed/set_parameters
[ERROR] [1693604637.510493360]: Failed to retrieve service type or service description of service /tf_echo_1693329846940349580/get_loggers: std::future_error: Broken promise
[ERROR] [1693604637.512003444]: Failed to retrieve service type or service description of service /tf_echo_1693329846940349580/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604637.515548539]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/get_loggers: std::future_error: Broken promise
[ERROR] [1693604637.518957915]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604637.523424577]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604637.526815428]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/load_config: std::future_error: Broken promise
[ERROR] [1693604637.530761303]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604637.534517817]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/save_config: std::future_error: Broken promise
[ERROR] [1693604637.537352724]: Failed to retrieve service type or service description of service /rostopic_614368_1693332654733/get_loggers: std::future_error: Broken promise
[ERROR] [1693604642.534917374]: Failed to retrieve service type or service description of service /tf_echo_1693329846940349580/get_loggers: std::future_error: Broken promise
[ERROR] [1693604642.535978898]: Failed to retrieve service type or service description of service /tf_echo_1693329846940349580/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604642.539597401]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/get_loggers: std::future_error: Broken promise
[ERROR] [1693604642.542813721]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604642.546250369]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604642.549297780]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/load_config: std::future_error: Broken promise
[ERROR] [1693604642.553177488]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604642.556038374]: Failed to retrieve service type or service description of service /rviz_msiraider_613058_4222886344543863053/save_config: std::future_error: Broken promise
[ERROR] [1693604642.558357262]: Failed to retrieve service type or service description of service /rostopic_614368_1693332654733/get_loggers: std::future_error: Broken promise
[ERROR] [1693604642.560864648]: Failed to retrieve service type or service description of service /rostopic_614368_1693332654733/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604642.564076470]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/get_loggers: std::future_error: Broken promise
[ERROR] [1693604642.567137526]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604642.569462505]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604642.572294607]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/load_config: std::future_error: Broken promise
[ERROR] [1693604642.575269139]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604642.578592703]: Failed to retrieve service type or service description of service /rviz_msiraider_618543_7783352244266021340/save_config: std::future_error: Broken promise
[ WARN] [1693604642.829554920]: Failed to retrieve type of service /rqt_gui_cpp_node_19923/get_loggers
[ WARN] [1693604643.082882946]: Failed to retrieve type of service /rqt_gui_cpp_node_19923/set_logger_level
[ WARN] [1693604643.335065919]: Failed to retrieve type of service /rqt_gui_cpp_node_11730/get_loggers
[ WARN] [1693604643.587460093]: Failed to retrieve type of service /rqt_gui_cpp_node_11730/set_logger_level
[ WARN] [1693604643.839907638]: Failed to retrieve type of service /rqt_gui_cpp_node_11730/compressed/set_parameters
[ERROR] [1693604643.845982721]: Failed to retrieve service type or service description of service /LogCommanderTester_cpp/get_loggers: std::future_error: Broken promise
[ERROR] [1693604643.850509587]: Failed to retrieve service type or service description of service /LogCommanderTester_cpp/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604643.853895659]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/get_loggers: std::future_error: Broken promise
[ERROR] [1693604643.857126998]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604643.861228538]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604643.865680351]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/load_config: std::future_error: Broken promise
[ERROR] [1693604643.870866328]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604643.874622261]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/save_config: std::future_error: Broken promise
[ERROR] [1693604643.994334548]: Failed to retrieve service type or service description of service /rviz_1693500241430558177/get_loggers: std::future_error: Broken promise
[ERROR] [1693604644.007334375]: Failed to retrieve service type or service description of service /rviz_1693500241430558177/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604644.026646084]: Failed to retrieve service type or service description of service /rviz_1693500241430558177/reload_shaders: std::future_error: Broken promise
[ERROR] [1693604644.053180772]: Failed to retrieve service type or service description of service /rviz_1693500241430558177/load_config: std::future_error: Broken promise
[ERROR] [1693604644.172584975]: Failed to retrieve service type or service description of service /rviz_1693500241430558177/load_config_discarding_changes: std::future_error: Broken promise
[ERROR] [1693604644.290143928]: Failed to retrieve service type or service description of service /rviz_1693500241430558177/save_config: std::future_error: Broken promise
[ WARN] [1693604644.542250256]: Failed to retrieve type of service /rviz_1693500241430558177/planningscene_planning_scene_monitor/set_parameters
[ WARN] [1693604644.794886449]: Failed to retrieve type of service /roboflow/get_loggers
[ WARN] [1693604645.047990019]: Failed to retrieve type of service /roboflow/set_logger_level
[ERROR] [1693604645.280006653]: Failed to retrieve service type or service description of service /rqt_gui_cpp_node_14210/get_loggers: std::future_error: Broken promise
[ WARN] [1693604645.532430263]: Failed to retrieve type of service /rqt_gui_cpp_node_14210/set_logger_level
[ WARN] [1693604645.785340617]: Failed to retrieve type of service /rqt_gui_cpp_node_54672/get_loggers
[ WARN] [1693604646.038029360]: Failed to retrieve type of service /rqt_gui_cpp_node_54672/set_logger_level
[ERROR] [1693604646.040248199]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/get_loggers: std::future_error: Broken promise
[ERROR] [1693604646.041587869]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604646.042808514]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/load_nodelet: std::future_error: Broken promise
[ERROR] [1693604646.043979766]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/unload_nodelet: std::future_error: Broken promise
[ERROR] [1693604646.045178359]: Failed to retrieve service type or service description of service /azure1/k4a_nodelet_manager/list: std::future_error: Broken promise
2023-09-01T21:44:06.046421617Z [ERROR] [1693604646.046374779]: Failed to retrieve service type or service description of service /robot_2_dx_motion_interface/get_loggers: std::future_error: Broken promise
[ERROR] [1693604646.047603399]: Failed to retrieve service type or service description of service /robot_2_dx_motion_interface/set_logger_level: std::future_error: Broken promise
2023-09-01T21:44:06.048841758Z [ERROR] [1693604646.048795140]: Failed to retrieve service type or service description of service /robot_2_fanuc_rmi_client/get_loggers: std::future_error: Broken promise
[ERROR] [1693604646.049998602]: Failed to retrieve service type or service description of service /robot_2_fanuc_rmi_client/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604646.051181506]: Failed to retrieve service type or service description of service /R2_VeneerCornerObserver/get_loggers: std::future_error: Broken promise
[ERROR] [1693604646.052349872]: Failed to retrieve service type or service description of service /R2_VeneerCornerObserver/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604646.053398030]: Failed to retrieve service type or service description of service /robot_1_dx_motion_interface/get_loggers: std::future_error: Broken promise
[ERROR] [1693604646.054187878]: Failed to retrieve service type or service description of service /robot_1_dx_motion_interface/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604646.054961996]: Failed to retrieve service type or service description of service /robot_1_fanuc_rmi_client/get_loggers: std::future_error: Broken promise
[ERROR] [1693604646.055747836]: Failed to retrieve service type or service description of service /robot_1_fanuc_rmi_client/set_logger_level: std::future_error: Broken promise
[ERROR] [1693604646.132841009]: [WS] handle_accept error: Operation aborted.
[ INFO] [1693604629.821394625]: Loading nodelet /foxglove_bridge of type foxglove_bridge/foxglove_bridge_nodelet to manager foxglove_nodelet_manager with the following remappings:
2023-09-01T21:44:08.961000753Z [ INFO] [1693604629.834298210]: waitForService: Service [/foxglove_nodelet_manager/load_nodelet] has not been advertised, waiting...
[ INFO] [1693604629.856897093]: waitForService: Service [/foxglove_nodelet_manager/load_nodelet] is now available.
[ INFO] [1693604648.840659673]: Bond broken, exiting
  • Version: 0.7.1
  • Platform: Ubuntu 20:04 - ROS1 Noetic

Steps To Reproduce
Launch foxglove-bridge along side instances of RVIZ that are hosted on second machine.

Expected Behavior
Exception is that the node continues on even if its unable to get specific services.

@carlosatrios carlosatrios added the bug Something isn't working label Sep 1, 2023
@foxhubber
Copy link

foxhubber bot commented Sep 1, 2023

Internal tracking ticket: FG-4894

@achim-k
Copy link
Collaborator

achim-k commented Sep 4, 2023

[ INFO] [1693604648.840659673]: Bond broken, exiting

It is the broken bond that causes the node to go down, without it foxglove_bridge would remain running (and logging all these errors).

Regardless, I have submitted #263 which I think should make service type retrieval a lot more robust. Could you give it a test drive?

Also, if you are not intending to use the services capability, you can simplly remove it from the capabilities list.

@carlosatrios
Copy link
Author

Thank you for the prompt response @achim-k! That does look to have resolved the issue with the node crashing.

@carlosatrios
Copy link
Author

carlosatrios commented Sep 5, 2023

Looks like its not fully fixed. We get another broken bond when we terminate a foxglove studio instance connected to this patched bridge. This prevents any subsequent connections.

2023-09-05T16:49:55.569952054Z [ INFO] [1693932595.567760045]: [WS] Unsubscribing from parameter '/oak2/stereo_i_low_bandwidth'.
[ INFO] [1693932595.567765616]: [WS] Unsubscribing from parameter '/oak2/stereo_i_low_bandwidth_quality'.
[ INFO] [1693932595.567771116]: [WS] Unsubscribing from parameter '/oak2/stereo_i_spatial_filter_alpha'.
[ERROR] [1693932595.782057741]: Failed to retrieve service type or service description of service /rviz_msiraider_712938_3675954756021939125/reload_shaders: Failed to retrieve service type
[ INFO] [1693932595.567776657]: [WS] Unsubscribing from parameter '/oak2/stereo_i_spatial_filter[ INFO] [1693932555.211025287]: Loading nodelet /foxglove_bridge of type foxglove_bridge/foxglove_bridge_nodelet to manager foxglove_nodelet_manager with the following remappings:
2023-09-05T16:49:55.958292364Z [ INFO] [1693932555.230931624]: waitForService: Service [/foxglove_nodelet_manager/load_nodelet] has not been advertised, waiting...
[ INFO] [1693932555.253678450]: waitForService: Service [/foxglove_nodelet_manager/load_nodelet] is now available.
2023-09-05T16:49:55.958318914Z [ INFO] [1693932595.739912453]: Bond broken, exiting
2023-09-05T16:49:56.002073967Z [foxglove_bridge-2] process has finished cleanly

@carlosatrios
Copy link
Author

carlosatrios commented Sep 5, 2023

Trying with services disabled + your fix branch, we get:

master has started, initiating launch
... logging to /root/.ros/log/rios_1693934935/roslaunch-hood1-1-headnode-1-1.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
]2;/opt/rios/install/share/foxglove_bridge/launch/foxglove_bridge.launch�
started roslaunch server http://hood1-1-headnode-1:40387/

SUMMARY
========
2023-09-05T17:58:56.277362044Z 
PARAMETERS
2023-09-05T17:58:56.277368045Z  * /foxglove_bridge/address: 0.0.0.0
 * /foxglove_bridge/asset_uri_allowlist: ['package://(/?\\...
 * /foxglove_bridge/capabilities: ['clientPublish',...
 * /foxglove_bridge/certfile: 
 * /foxglove_bridge/client_topic_whitelist: ['.*']
 * /foxglove_bridge/keyfile: 
2023-09-05T17:58:56.277387201Z  * /foxglove_bridge/max_update_ms: 5000
 * /foxglove_bridge/param_whitelist: ['.*']
 * /foxglove_bridge/port: 8765
2023-09-05T17:58:56.277396048Z  * /foxglove_bridge/send_buffer_limit: 10000000
 * /foxglove_bridge/service_whitelist: ['.*']
2023-09-05T17:58:56.277401980Z  * /foxglove_bridge/tls: False
 * /foxglove_bridge/topic_whitelist: ['.*']
2023-09-05T17:58:56.277407831Z  * /foxglove_nodelet_manager/num_worker_threads: 0
 * /rosdistro: noetic
2023-09-05T17:58:56.277413742Z  * /rosversion: 1.16.0

NODES
  /
2023-09-05T17:58:56.277451143Z     foxglove_bridge (nodelet/nodelet)
    foxglove_nodelet_manager (nodelet/nodelet)

ROS_MASTER_URI=http://hood1-1-rios-roscore-service:80/
2023-09-05T17:58:56.281547796Z ]2;/opt/rios/install/share/foxglove_bridge/launch/foxglove_bridge.launch http://hood1-1-rios-roscore-service:80/�
2023-09-05T17:58:56.323674728Z process[foxglove_nodelet_manager-1]: started with pid [68]
process[foxglove_bridge-2]: started with pid [69]
[ WARN] [1693936736.417956380]: Could not find package 'control_msgs' in msg paths!
2023-09-05T17:58:56.418076828Z [ WARN] [1693936736.417983291]: Could not find definition for type control_msgs/FollowJointTrajectoryActionResult
[ WARN] [1693936736.418470826]: Could not find package 'control_msgs' in msg paths!
[ WARN] [1693936736.418482598]: Could not find definition for type control_msgs/FollowJointTrajectoryActionResult
2023-09-05T17:58:56.418651048Z [ WARN] [1693936736.418621492]: Could not find package 'control_msgs' in msg paths!
2023-09-05T17:58:56.418654064Z [ WARN] [1693936736.418631801]: Could not find definition for type control_msgs/FollowJointTrajectoryActionFeedback
2023-09-05T17:58:56.418686976Z [ WARN] [1693936736.418658913]: Could not find package 'control_msgs' in msg paths!
2023-09-05T17:58:56.418691395Z [ WARN] [1693936736.418667650]: Could not find definition for type control_msgs/FollowJointTrajectoryActionFeedback
2023-09-05T17:58:56.418897496Z [ WARN] [1693936736.418860716]: Could not find package 'dx_observer_msgs' in msg paths!
[ WARN] [1693936736.418870945]: Could not find definition for type dx_observer_msgs/Observation
[ERROR] [1693936746.521918680]: [WS] handle_accept error: Operation aborted.
[ INFO] [1693936736.357754332]: Initializing nodelet with 64 worker threads.
[ INFO] [1693936736.408834302]: Starting foxglove_bridge (noetic, 0.7.1@53ad89b) with WebSocket++/0.8.1
2023-09-05T17:59:06.527656057Z [ INFO] [1693936736.409003203]: [WS] Server running without TLS
[ INFO] [1693936736.409237186]: [WS] WebSocket server listening at ws://0.0.0.0:8765
2023-09-05T17:59:06.527674572Z [ INFO] [1693936736.409344370]: [WS] WebSocket server run loop started
[ INFO] [1693936739.164181210]: [WS] Client 100.123.190.98:40170 connected via /
2023-09-05T17:59:06.527687306Z [ INFO] [1693936739.517243286]: [WS] Subscribing to connection graph updates.
[ INFO] [1693936739.518012145]: Client 100.123.190.98:40170 is advertising "/move_base_simple/goal" (geometry_msgs/PoseStamped) on channel 1
[ INFO] [1693936739.518422734]: Client 100.123.190.98:40170 is advertising "/clicked_point" (geometry_msgs/PointStamped) on channel 2
[ INFO] [1693936739.518816842]: Client 100.123.190.98:40170 is advertising "/initialpose" (geometry_msgs/PoseWithCovarianceStamped) on channel 3
[ INFO] [1693936739.826677673]: [WS] Client 10.100.0.106:57592 connected via /
2023-09-05T17:59:06.527735347Z [ INFO] [1693936740.160383853]: Client 10.100.0.106:57592 is advertising "/clicked_point" (geometry_msgs/PointStamped) on channel 1
[ INFO] [1693936740.160431323]: Client 10.100.0.106:57592 is advertising "/initialpose" (geometry_msgs/PoseWithCovarianceStamped) on channel 2
2023-09-05T17:59:06.527748141Z [ INFO] [1693936740.160459857]: Client 10.100.0.106:57592 is no longer advertising /clicked_point (0 subscribers) on channel 1
[ INFO] [1693936740.160491778]: Client 10.100.0.106:57592 is no longer advertising /initialpose (0 subscribers) on channel 2
[ INFO] [1693936740.160518518]: Client 10.100.0.106:57592 is advertising "/move_base_simple/goal" (geometry_msgs/PoseStamped) on channel 3
[ INFO] [1693936740.160537134]: Client 10.100.0.106:57592 is advertising "/clicked_point" (geometry_msgs/PointStamped) on channel 4
2023-09-05T17:59:06.527773119Z [ INFO] [1693936740.160559296]: Client 10.100.0.106:57592 is advertising "/initialpose" (geometry_msgs/PoseWithCovarianceStamped) on channel 5
[ INFO] [1693936740.162863007]: Subscribed to topic "/tf" (tf2_msgs/TFMessage) on channel 349
[ INFO] [1693936740.166149783]: Subscribed to topic "/tf_static" (tf2_msgs/TFMessage) on channel 347
[ INFO] [1693936740.606902956]: Client 100.123.190.98:40170 is no longer advertising /move_base_simple/goal (0 subscribers) on channel 1
2023-09-05T17:59:06.527796724Z [ INFO] [1693936740.606948613]: Client 100.123.190.98:40170 is no longer advertising /clicked_point (0 subscribers) on channel 2
[ INFO] [1693936740.606973540]: Client 100.123.190.98:40170 is no longer advertising /initialpose (0 subscribers) on channel 3
2023-09-05T17:59:06.527808376Z [ INFO] [1693936740.607031139]: Client 100.123.190.98:40170 is advertising "/move_base_simple/goal" (geometry_msgs/PoseStamped) on channel 4
[ INFO] [1693936740.607068971]: Client 100.123.190.98:40170 is advertising "/clicked_point" (geometry_msgs/PointStamped) on channel 5
2023-09-05T17:59:06.527820248Z [ INFO] [1693936740.607105240]: Client 100.123.190.98:40170 is advertising "/initialpose" (geometry_msgs/PoseWithCovarianceStamped) on channel 6
[ INFO] [1693936740.650652567]: Added subscriber #2 to topic "/tf" (tf2_msgs/TFMessage) on channel 349
2023-09-05T17:59:06.527831580Z [ INFO] [1693936740.652242534]: Added subscriber #2 to topic "/tf_static" (tf2_msgs/TFMessage) on channel 347
[ INFO] [1693936746.521687662]: [WS] Stopping WebSocket server
2023-09-05T17:59:06.527842741Z [ INFO] [1693936746.521761091]: [WS] Closing 2 client connection(s)
[ INFO] [1693936746.521796058]: [WS] asio handle_accept error: asio.system:125 (Operation aborted.)
[ INFO] [1693936746.521846954]: [WS] Error getting remote endpoint: asio.system:9 (Bad file descriptor)
[ INFO] [1693936746.521886690]: [WS] asio async_shutdown error: asio.system:9 (Bad file descriptor)
[ INFO] [1693936746.521968886]: [WS] Stopping acceptance of new connections because the underlying transport is no longer listening.
[ INFO] [1693936746.527498498]: [WS] Client 10.100.0.106:57592 disconnected
[ INFO] [1693936746.527552019]: [WS] Client 10.100.0.106:57592 unadvertising channel 5 due to disconnect
2023-09-05T17:59:06.535630758Z [ INFO] [1693936746.527584441]: Client 10.100.0.106:57592 is no longer advertising /initialpose (0 subscribers) on channel 5
2023-09-05T17:59:06.535635066Z [ INFO] [1693936746.527603617]: [WS] Client 10.100.0.106:57592 unadvertising channel 4 due to disconnect
[ INFO] [1693936746.527620159]: Client 10.100.0.106:57592 is no longer advertising /clicked_point (0 subscribers) on channel 4
2023-09-05T17:59:06.535644394Z [ INFO] [1693936746.527633524]: [WS] Client 10.100.0.106:57592 unadvertising channel 3 due to disconnect
[ INFO] [1693936746.527655506]: Client 10.100.0.106:57592 is no longer advertising /move_base_simple/goal (0 subscribers) on channel 3
[ INFO] [1693936746.527703477]: Removed one subscription from channel 347 (1 subscription(s) left)
[ INFO] [1693936746.527718195]: Removed one subscription from channel 349 (1 subscription(s) left)
2023-09-05T17:59:06.535663410Z [ INFO] [1693936746.531452430]: [WS] WebSocket server run loop stopped
[ INFO] [1693936746.531523405]: [WS] Client 100.123.190.98:40170 disconnected
[ INFO] [1693936746.531545657]: [WS] Client 100.123.190.98:40170 unadvertising channel 6 due to disconnect
[ INFO] [1693936746.531571185]: Client 100.123.190.98:40170 is no longer advertising /initialpose (0 subscribers) on channel 6
[ INFO] [1693936746.531868309]: [WS] All WebSocket connections closed
[ INFO] [1693936746.531891253]: [WS] Waiting for WebSocket server run loop to terminate
[ INFO] [1693936746.531907223]: [WS] WebSocket server run loop terminated
[ INFO] [1693936746.532393366]: [WS] Client 100.123.190.98:40170 unadvertising channel 5 due to disconnect
[ INFO] [1693936746.532412712]: Client (unknown) is no longer advertising /clicked_point (0 subscribers) on channel 5
[ INFO] [1693936746.532865832]: [WS] Client 100.123.190.98:40170 unadvertising channel 4 due to disconnect
[ INFO] [1693936746.532887112]: Client (unknown) is no longer advertising /move_base_simple/goal (0 subscribers) on channel 4
[ INFO] [1693936746.533980327]: Unsubscribing from topic "/tf_static" (tf2_msgs/TFMessage) on channel 347
2023-09-05T17:59:06.535732862Z [ INFO] [1693936746.534512356]: Unsubscribing from topic "/tf" (tf2_msgs/TFMessage) on channel 349

LOTS OF UNSUBSCRIBING...

[ INFO] [1693936736.353239575]: waitForService: Service [/foxglove_nodelet_manager/load_nodelet] has not been advertised, waiting...
2023-09-05T17:59:09.816259286Z [ INFO] [1693936736.374996878]: waitForService: Service [/foxglove_nodelet_manager/load_nodelet] is now available.
[ INFO] [1693936749.459915676]: Bond broken, exiting

@achim-k
Copy link
Collaborator

achim-k commented Sep 5, 2023

It seems that the bond between the nodelet manager and the nodelet loader breaks, causing foxglove bridge to shutdown. You could try changing the following line

args="load foxglove_bridge/foxglove_bridge_nodelet $(arg nodelet_manager)">

to

args="load foxglove_bridge/foxglove_bridge_nodelet $(arg nodelet_manager) --no-bond"> 

to disable the bonding mechanism.

Usually the bond should not break if the nodelet manager and nodelet loader are running on the same host (see also https://answers.ros.org/question/9700/nodelets-and-bond-timeouts/). If that's the case, try reducing the load by setting a num_threads:=4 (should be enough) and disable all non-required capabilities

achim-k added a commit that referenced this issue Sep 5, 2023
### Public-Facing Changes

Make ROS1 service type retrieval more robust

### Description
For ROS1, foxglove bridge has to retrieve the service type from the
service server (by opening a connection) as the ROS master does not
store the service type.

This patch makes service type retrieval more robust by
- Fixing the service link object getting out of scope too early
- Better exception handling
- Allowing users to set a custom timeout for service type retrieval

Fixes #262
@carlosatrios
Copy link
Author

Disabling the bond now has the nodelet manager calling out its death:

[roslaunch][INFO] 2023-09-05 14:14:38,165: process[foxglove_bridge-2]: args[['/opt/ros/noetic/lib/nodelet/nodelet', 'load', 'foxglove_bridge/foxglove_bridge_nodelet', 'foxglove_nodelet_manager', '--no-bond', '__name:=foxglove_bridge']]
[roslaunch][INFO] 2023-09-05 14:14:38,165: ... created process [foxglove_bridge-2]
[roslaunch.pmon][INFO] 2023-09-05 14:14:38,165: ProcessMonitor.register[foxglove_bridge-2]
[roslaunch.pmon][INFO] 2023-09-05 14:14:38,165: ProcessMonitor.register[foxglove_bridge-2] complete
[roslaunch][INFO] 2023-09-05 14:14:38,165: ... registered process [foxglove_bridge-2]
[roslaunch][INFO] 2023-09-05 14:14:38,166: process[foxglove_bridge-2]: starting os process
[roslaunch][INFO] 2023-09-05 14:14:38,166: process[foxglove_bridge-2]: start w/ args [['/opt/ros/noetic/lib/nodelet/nodelet', 'load', 'foxglove_bridge/foxglove_bridge_nodelet', 'foxglove_nodelet_manager', '--no-bond', '__name:=foxglove_bridge', '__log:=/root/.ros/log/rios_1693934935/foxglove_bridge-2.log']]
[roslaunch][INFO] 2023-09-05 14:14:38,166: process[foxglove_bridge-2]: cwd will be [/root/.ros]
[roslaunch][INFO] 2023-09-05 14:14:38,169: process[foxglove_bridge-2]: started with pid [69]
[roslaunch][INFO] 2023-09-05 14:14:38,169: ... successfully launched [foxglove_bridge-2]
[roslaunch][INFO] 2023-09-05 14:14:38,169: ... launch_nodes complete
[roslaunch.pmon][INFO] 2023-09-05 14:14:38,169: registrations completed <ProcessMonitor(ProcessMonitor-1, started daemon 140441374443264)>
[roslaunch.parent][INFO] 2023-09-05 14:14:38,169: ... roslaunch parent running, waiting for process exit
[roslaunch][INFO] 2023-09-05 14:14:38,169: spin
[roslaunch][ERROR] 2023-09-05 14:14:59,908: [foxglove_nodelet_manager-1] process has died [pid 68, exit code -11, cmd /opt/ros/noetic/lib/nodelet/nodelet manager __name:=foxglove_nodelet_manager __log:=/root/.ros/log/rios_1693934935/foxglove_nodelet_manager-1.log].

@achim-k
Copy link
Collaborator

achim-k commented Sep 6, 2023

Disabling the bond now has the nodelet manager calling out its death:

Is the log shortened? Is there any reason given why the node is dying?

You can also try running the nodelet as a single node:

args="standalone foxglove_bridge/foxglove_bridge_nodelet"> 

@carlosatrios
Copy link
Author

carlosatrios commented Sep 7, 2023

No that is the full log, no additional context given. I think the bond breaking was pointing to the fact that the code is in fact dying.

I can try that.

Have you been able to reproduce on your end?

@carlosatrios
Copy link
Author

@achim-k running as standalone, provided us with a few minutes of up-time, but it ultimately crashed with the same output.

[foxglove_bridge-2] process has died [pid 69, exit code -11, cmd /opt/ros/noetic/lib/nodelet/nodelet standalone foxglove_bridge/foxglove_bridge_nodelet __name:=foxglove_bridge __log:=/root/.ros/log/rios_1693934935/foxglove_bridge-2.log].
log file: /root/.ros/log/rios_1693934935/foxglove_bridge-2*.log

@achim-k
Copy link
Collaborator

achim-k commented Sep 8, 2023

No that is the full log, no additional context given. I think the bond breaking was pointing to the fact that the code is in fact dying.

Could you launch with roslaunch --screen? This should show the output of the foxglove bridge node. Alternatively, add output="screen" in the launch file. Another alternative is, to launch the foxglove_bridge node (not the nodelet version) separately from the terminal:

rosrun foxglove_bridge foxglove_bridge  # _num_worker_threads:=4 _port:=8765

Have you been able to reproduce on your end?

Unfortunately not 😕 Is there anything special about your setup (network setup, ros master on different host, ...)?
It would be great to find out why the node is dying. Maybe you have some luck running foxglove bridge with gdb:

# Path might be different on your system
gdb -ex=run --args ../../install_ros1/lib/foxglove_bridge/foxglove_bridge _num_worker_threads:=4

@carlosatrios
Copy link
Author

@achim-k The previous output is with the node being launched as so:

  <node pkg="nodelet" type="nodelet" name="foxglove_bridge" respawn="true" output="screen"
        args="standalone foxglove_bridge/foxglove_bridge_nodelet">

Unfortunately not 😕 Is there anything special about your setup (network setup, ros master on different host, ...)?
It would be great to find out why the node is dying. Maybe you have some luck running foxglove bridge with gdb:

Thank you for trying, we are not doing anything special networking wise. All nodes are running on a single host with foxglove studio being on a separate developer machine(s). I will take gdb for a spin and report back what I find.

@carlosatrios
Copy link
Author

carlosatrios commented Sep 8, 2023

@achim-k GDB backtrace:

Thread 7 "foxglove_bridge" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff19ed700 (LWP 980)]
0x00007ffff01cd7c6 in foxglove_bridge::retrieveServiceType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::duration<long, std::ratio<1l, 1000l> >) () from /opt/rios/install/lib//libfoxglove_bridge_nodelet.so
(gdb) backtrace
#0  0x00007ffff01cd7c6 in foxglove_bridge::retrieveServiceType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::duration<long, std::ratio<1l, 1000l> >) () from /opt/rios/install/lib//libfoxglove_bridge_nodelet.so
#1  0x00007ffff01a32f9 in foxglove_bridge::FoxgloveBridge::updateAdvertisedServices(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) ()
   from /opt/rios/install/lib//libfoxglove_bridge_nodelet.so
#2  0x00007ffff01ab9e8 in foxglove_bridge::FoxgloveBridge::updateAdvertisedTopicsAndServices(ros::TimerEvent const&) ()
   from /opt/rios/install/lib//libfoxglove_bridge_nodelet.so
#3  0x00007ffff7e85608 in ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::TimerQueueCallback::call() () from /opt/ros/noetic/lib/libroscpp.so
#4  0x00007ffff7ea7172 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) () from /opt/ros/noetic/lib/libroscpp.so
#5  0x00007ffff7ea7f15 in ros::CallbackQueue::callOne(ros::WallDuration) () from /opt/ros/noetic/lib/libroscpp.so
#6  0x00007ffff7fab2c9 in nodelet::detail::CallbackQueue::callOne() () from /opt/ros/noetic/lib/libnodeletlib.so
#7  0x00007ffff7fadd67 in nodelet::detail::CallbackQueueManager::workerThread(nodelet::detail::CallbackQueueManager::ThreadInfo*) ()
   from /opt/ros/noetic/lib/libnodeletlib.so
#8  0x00007ffff784043b in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
#9  0x00007ffff78eb609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007ffff7abb133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Also here is the output of valgrind:

==1083== Thread 7:
==1083== Invalid read of size 8
==1083==    at 0xEAA87C6: foxglove_bridge::retrieveServiceType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::duration<long, std::ratio<1l, 1000l> >) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA7E2F8: foxglove_bridge::FoxgloveBridge::updateAdvertisedServices(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA869E7: foxglove_bridge::FoxgloveBridge::updateAdvertisedTopicsAndServices(ros::TimerEvent const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x49A6607: ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::TimerQueueCallback::call() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49C8171: ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49C8F14: ros::CallbackQueue::callOne(ros::WallDuration) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x48A42C8: nodelet::detail::CallbackQueue::callOne() (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x48A6D66: nodelet::detail::CallbackQueueManager::workerThread(nodelet::detail::CallbackQueueManager::ThreadInfo*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4FC943A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x4F15608: start_thread (pthread_create.c:477)
==1083==    by 0x4DA6132: clone (clone.S:95)
==1083==  Address 0x18 is not stack'd, malloc'd or (recently) free'd
==1083== 
==1083== 
==1083== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==1083==  Access not within mapped region at address 0x18
==1083==    at 0xEAA87C6: foxglove_bridge::retrieveServiceType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::duration<long, std::ratio<1l, 1000l> >) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA7E2F8: foxglove_bridge::FoxgloveBridge::updateAdvertisedServices(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA869E7: foxglove_bridge::FoxgloveBridge::updateAdvertisedTopicsAndServices(ros::TimerEvent const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x49A6607: ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::TimerQueueCallback::call() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49C8171: ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49C8F14: ros::CallbackQueue::callOne(ros::WallDuration) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x48A42C8: nodelet::detail::CallbackQueue::callOne() (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x48A6D66: nodelet::detail::CallbackQueueManager::workerThread(nodelet::detail::CallbackQueueManager::ThreadInfo*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4FC943A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x4F15608: start_thread (pthread_create.c:477)
==1083==    by 0x4DA6132: clone (clone.S:95)
==1083==  If you believe this happened as a result of a stack
==1083==  overflow in your program's main thread (unlikely but
==1083==  possible), you can try to increase the size of the
==1083==  main thread stack using the --main-stacksize= flag.
==1083==  The main thread stack size used in this run was 8388608.
==1083== 
==1083== HEAP SUMMARY:
==1083==     in use at exit: 27,716,948 bytes in 48,532 blocks
==1083==   total heap usage: 8,657,535 allocs, 8,609,003 frees, 7,237,765,042 bytes allocated
==1083== 
==1083== Thread 1:
==1083== 16 bytes in 1 blocks are possibly lost in loss record 74 of 2,137
==1083==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40142CF: allocate_dtv_entry (dl-tls.c:582)
==1083==    by 0x40142CF: allocate_and_init (dl-tls.c:607)
==1083==    by 0x40142CF: tls_get_addr_tail.isra.0 (dl-tls.c:787)
==1083==    by 0x401ADEB: __tls_get_addr (tls_get_addr.S:55)
==1083==    by 0xEB81060: asio::detail::scheduler::run(std::error_code&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEB86492: std::thread::_State_impl<std::thread::_Invoker<std::tuple<foxglove::Server<foxglove::WebSocketNoTls>::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short)::{lambda()#1}> > >::_M_run() (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0x4B5EDF3: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==1083==    by 0x4F15608: start_thread (pthread_create.c:477)
==1083==    by 0x4DA6132: clone (clone.S:95)
==1083== 
==1083== 16 bytes in 1 blocks are possibly lost in loss record 75 of 2,137
==1083==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40142CF: allocate_dtv_entry (dl-tls.c:582)
==1083==    by 0x40142CF: allocate_and_init (dl-tls.c:607)
==1083==    by 0x40142CF: tls_get_addr_tail.isra.0 (dl-tls.c:787)
==1083==    by 0x401ADEB: __tls_get_addr (tls_get_addr.S:55)
==1083==    by 0xEBB1DC7: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >::type, void ()>::return_type asio::io_context::post<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >(asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running>&&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBB2085: websocketpp::transport::asio::connection<foxglove::WebSocketNoTls::transport_config>::dispatch(std::function<void ()>) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBCDB5: websocketpp::connection<foxglove::WebSocketNoTls>::send(std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBD1A2: websocketpp::connection<foxglove::WebSocketNoTls>::send(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, websocketpp::frame::opcode::value) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBD2DD: websocketpp::endpoint<websocketpp::connection<foxglove::WebSocketNoTls>, foxglove::WebSocketNoTls>::send(std::weak_ptr<void>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, websocketpp::frame::opcode::value) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBD5A2: foxglove::Server<foxglove::WebSocketNoTls>::sendJsonRaw(std::weak_ptr<void>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEC03BE8: foxglove::Server<foxglove::WebSocketNoTls>::publishParameterValues(std::weak_ptr<void>, std::vector<foxglove::Parameter, std::allocator<foxglove::Parameter> > const&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEA8CFAB: foxglove_bridge::FoxgloveBridge::getParameters(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, std::weak_ptr<void>) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA6EC16: std::_Function_handler<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, std::weak_ptr<void>), std::_Bind<void (foxglove_bridge::FoxgloveBridge::*(foxglove_bridge::FoxgloveBridge*, std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>))(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, std::weak_ptr<void>)> >::_M_invoke(std::_Any_data const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, std::weak_ptr<void>&&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083== 
==1083== 16 bytes in 1 blocks are possibly lost in loss record 76 of 2,137
==1083==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40142CF: allocate_dtv_entry (dl-tls.c:582)
==1083==    by 0x40142CF: allocate_and_init (dl-tls.c:607)
==1083==    by 0x40142CF: tls_get_addr_tail.isra.0 (dl-tls.c:787)
==1083==    by 0x401ADEB: __tls_get_addr (tls_get_addr.S:55)
==1083==    by 0xEBB1DC7: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >::type, void ()>::return_type asio::io_context::post<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >(asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running>&&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBB2085: websocketpp::transport::asio::connection<foxglove::WebSocketNoTls::transport_config>::dispatch(std::function<void ()>) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBCDB5: websocketpp::connection<foxglove::WebSocketNoTls>::send(std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBD1A2: websocketpp::connection<foxglove::WebSocketNoTls>::send(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, websocketpp::frame::opcode::value) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBD2DD: websocketpp::endpoint<websocketpp::connection<foxglove::WebSocketNoTls>, foxglove::WebSocketNoTls>::send(std::weak_ptr<void>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, websocketpp::frame::opcode::value) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEC08CF9: foxglove::Server<foxglove::WebSocketNoTls>::updateConnectionGraph(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEA86A10: foxglove_bridge::FoxgloveBridge::updateAdvertisedTopicsAndServices(ros::TimerEvent const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x49A6607: ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::TimerQueueCallback::call() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49C8171: ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) (in /opt/ros/noetic/lib/libroscpp.so)
==1083== 
==1083== 16 bytes in 1 blocks are possibly lost in loss record 77 of 2,137
==1083==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40142CF: allocate_dtv_entry (dl-tls.c:582)
==1083==    by 0x40142CF: allocate_and_init (dl-tls.c:607)
==1083==    by 0x40142CF: tls_get_addr_tail.isra.0 (dl-tls.c:787)
==1083==    by 0x401ADEB: __tls_get_addr (tls_get_addr.S:55)
==1083==    by 0xEBB1DC7: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >::type, void ()>::return_type asio::io_context::post<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >(asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running>&&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBB2085: websocketpp::transport::asio::connection<foxglove::WebSocketNoTls::transport_config>::dispatch(std::function<void ()>) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBCDB5: websocketpp::connection<foxglove::WebSocketNoTls>::send(std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBD8FE: foxglove::Server<foxglove::WebSocketNoTls>::sendFetchAssetResponse(std::weak_ptr<void>, foxglove::FetchAssetResponse const&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEA84835: foxglove_bridge::FoxgloveBridge::fetchAsset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::weak_ptr<void>) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA6E8C2: std::_Function_handler<void (), std::_Bind<void (foxglove_bridge::FoxgloveBridge::*(foxglove_bridge::FoxgloveBridge*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::weak_ptr<void>))(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::weak_ptr<void>)> >::_M_invoke(std::_Any_data const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA6BCC2: foxglove::CallbackQueue::doWork() (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x4B5EDF3: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==1083==    by 0x4F15608: start_thread (pthread_create.c:477)
==1083== 
==1083== 48 bytes in 3 blocks are possibly lost in loss record 960 of 2,137
==1083==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40142CF: allocate_dtv_entry (dl-tls.c:582)
==1083==    by 0x40142CF: allocate_and_init (dl-tls.c:607)
==1083==    by 0x40142CF: tls_get_addr_tail.isra.0 (dl-tls.c:787)
==1083==    by 0x401ADEB: __tls_get_addr (tls_get_addr.S:55)
==1083==    by 0xEBB1DC7: asio::async_result<std::decay<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >::type, void ()>::return_type asio::io_context::post<asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running> >(asio::detail::wrapped_handler<asio::io_context::strand, std::function<void ()>, asio::detail::is_continuation_if_running>&&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBB2085: websocketpp::transport::asio::connection<foxglove::WebSocketNoTls::transport_config>::dispatch(std::function<void ()>) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBBCDB5: websocketpp::connection<foxglove::WebSocketNoTls>::send(std::shared_ptr<websocketpp::message_buffer::message<websocketpp::message_buffer::alloc::con_msg_manager> >) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBD633E: foxglove::Server<foxglove::WebSocketNoTls>::sendMessage(std::weak_ptr<void>, unsigned int, unsigned long, unsigned char const*, unsigned long) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEA9253E: foxglove_bridge::FoxgloveBridge::rosMessageHandler(unsigned int, std::weak_ptr<void>, ros::MessageEvent<ros_babel_fish::BabelFishMessage const> const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA80D9E: boost::detail::function::void_function_obj_invoker1<std::_Bind<void (foxglove_bridge::FoxgloveBridge::*(foxglove_bridge::FoxgloveBridge*, unsigned int, std::weak_ptr<void>, std::_Placeholder<1>))(unsigned int, std::weak_ptr<void>, ros::MessageEvent<ros_babel_fish::BabelFishMessage const> const&)>, void, boost::shared_ptr<ros_babel_fish::BabelFishMessage const> const&>::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<ros_babel_fish::BabelFishMessage const> const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA81331: boost::detail::function::void_function_obj_invoker1<boost::function<void (boost::shared_ptr<ros_babel_fish::BabelFishMessage const> const&)>, void, boost::shared_ptr<ros_babel_fish::BabelFishMessage const> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<ros_babel_fish::BabelFishMessage const>) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA8168C: ros::SubscriptionCallbackHelperT<boost::shared_ptr<ros_babel_fish::BabelFishMessage const> const&, void>::call(ros::SubscriptionCallbackHelperCallParams&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x4A1A138: ros::SubscriptionQueue::call() (in /opt/ros/noetic/lib/libroscpp.so)
==1083== 
==1083== 177 bytes in 1 blocks are definitely lost in loss record 1,479 of 2,137
==1083==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x4D25F54: __libc_alloc_buffer_allocate (alloc_buffer_allocate.c:26)
==1083==    by 0x4DC9628: alloc_buffer_allocate (alloc_buffer.h:143)
==1083==    by 0x4DC9628: __resolv_conf_allocate (resolv_conf.c:411)
==1083==    by 0x4DC6E21: __resolv_conf_load (res_init.c:592)
==1083==    by 0x4DC9232: __resolv_conf_get_current (resolv_conf.c:163)
==1083==    by 0x4DC73D4: __res_vinit (res_init.c:614)
==1083==    by 0x4DC85CF: maybe_init (resolv_context.c:122)
==1083==    by 0x4DC85CF: context_get (resolv_context.c:184)
==1083==    by 0x4DC85CF: context_get (resolv_context.c:176)
==1083==    by 0x4DC85CF: __resolv_context_get (resolv_context.c:195)
==1083==    by 0x4D8B880: gaih_inet.constprop.0 (getaddrinfo.c:747)
==1083==    by 0x4D8CF58: getaddrinfo (getaddrinfo.c:2256)
==1083==    by 0x4FFEE76: XmlRpc::XmlRpcSocket::connect(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) (in /opt/ros/noetic/lib/libxmlrpcpp.so)
==1083==    by 0x4FF750E: XmlRpc::XmlRpcClient::doConnect() (in /opt/ros/noetic/lib/libxmlrpcpp.so)
==1083==    by 0x4FF73FB: XmlRpc::XmlRpcClient::setupConnection() (in /opt/ros/noetic/lib/libxmlrpcpp.so)
==1083== 
==1083== 304 bytes in 1 blocks are possibly lost in loss record 1,588 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x49B37B7: ros::PollManager::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4A06E4C: ros::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D973E: ros::NodeHandle::construct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D9A12: ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4883101: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 304 bytes in 1 blocks are possibly lost in loss record 1,589 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x499C5DB: ros::XMLRPCManager::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4A06E59: ros::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D973E: ros::NodeHandle::construct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D9A12: ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4883101: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 304 bytes in 1 blocks are possibly lost in loss record 1,590 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x4A02F9E: ros::ROSOutAppender::ROSOutAppender() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4A077D4: ros::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D973E: ros::NodeHandle::construct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D9A12: ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4883101: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 304 bytes in 1 blocks are possibly lost in loss record 1,591 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x4A0AEAC: boost::thread::thread<void (&)()>(void (&)()) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4A0756F: ros::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D973E: ros::NodeHandle::construct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D9A12: ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x4883101: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 304 bytes in 1 blocks are possibly lost in loss record 1,592 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x48A76D0: nodelet::detail::CallbackQueueManager::CallbackQueueManager(unsigned int) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x489F17F: nodelet::Loader::Impl::advertiseRosApi(nodelet::Loader*, ros::NodeHandle const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x488310F: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 304 bytes in 1 blocks are possibly lost in loss record 1,593 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x4A1E05F: ros::AsyncSpinnerImpl::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x489ECE5: nodelet::LoaderROS::LoaderROS(nodelet::Loader*, ros::NodeHandle const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x489F20F: nodelet::Loader::Impl::advertiseRosApi(nodelet::Loader*, ros::NodeHandle const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x488310F: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 384 bytes in 1 blocks are possibly lost in loss record 1,641 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4B5F0C9: std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==1083==    by 0xEA71965: std::_MakeUniq<foxglove::CallbackQueue>::__single_object std::make_unique<foxglove::CallbackQueue, std::_Bind<void (foxglove_bridge::FoxgloveBridge::*(foxglove_bridge::FoxgloveBridge*, std::_Placeholder<1>, std::_Placeholder<2>))(foxglove::WebSocketLogLevel, char const*)> const&, int>(std::_Bind<void (foxglove_bridge::FoxgloveBridge::*(foxglove_bridge::FoxgloveBridge*, std::_Placeholder<1>, std::_Placeholder<2>))(foxglove::WebSocketLogLevel, char const*)> const&, int&&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA8918E: foxglove_bridge::FoxgloveBridge::onInit() (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x487F4AC: nodelet::Nodelet::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ros::CallbackQueueInterface*, ros::CallbackQueueInterface*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4882A7A: nodelet::Loader::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C762: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 384 bytes in 1 blocks are possibly lost in loss record 1,642 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4B5F0C9: std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==1083==    by 0xEB9120D: std::_MakeUniq<foxglove::CallbackQueue>::__single_object std::make_unique<foxglove::CallbackQueue, std::function<void (foxglove::WebSocketLogLevel, char const*)>&, unsigned long>(std::function<void (foxglove::WebSocketLogLevel, char const*)>&, unsigned long&&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEBB7172: foxglove::Server<foxglove::WebSocketNoTls>::Server(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (foxglove::WebSocketLogLevel, char const*)>, foxglove::ServerOptions const&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEB789F8: std::unique_ptr<foxglove::ServerInterface<std::weak_ptr<void> >, std::default_delete<foxglove::ServerInterface<std::weak_ptr<void> > > > foxglove::ServerFactory::createServer<std::weak_ptr<void> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void (foxglove::WebSocketLogLevel, char const*)> const&, foxglove::ServerOptions const&) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEA89582: foxglove_bridge::FoxgloveBridge::onInit() (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x487F4AC: nodelet::Nodelet::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ros::CallbackQueueInterface*, ros::CallbackQueueInterface*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4882A7A: nodelet::Loader::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C762: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 384 bytes in 1 blocks are possibly lost in loss record 1,643 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4B5F0C9: std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==1083==    by 0xEC2B7B0: foxglove::Server<foxglove::WebSocketNoTls>::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short) (in /opt/rios/install/lib/libfoxglove_bridge_base.so)
==1083==    by 0xEA89C27: foxglove_bridge::FoxgloveBridge::onInit() (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x487F4AC: nodelet::Nodelet::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ros::CallbackQueueInterface*, ros::CallbackQueueInterface*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4882A7A: nodelet::Loader::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C762: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 384 bytes in 1 blocks are possibly lost in loss record 1,644 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x499C5DB: ros::XMLRPCManager::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0xEA89D0B: foxglove_bridge::FoxgloveBridge::onInit() (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x487F4AC: nodelet::Nodelet::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ros::CallbackQueueInterface*, ros::CallbackQueueInterface*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4882A7A: nodelet::Loader::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C762: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== 384 bytes in 1 blocks are possibly lost in loss record 1,645 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x49A576E: ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::add(ros::Duration const&, boost::function<void (ros::TimerEvent const&)> const&, ros::CallbackQueueInterface*, boost::shared_ptr<void const> const&, bool) (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49A07C0: ros::Timer::Impl::start() (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D5087: ros::NodeHandle::createTimer(ros::TimerOptions&) const (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0x49D5271: ros::NodeHandle::createTimer(ros::Duration, boost::function<void (ros::TimerEvent const&)> const&, bool, bool) const (in /opt/ros/noetic/lib/libroscpp.so)
==1083==    by 0xEA86B1C: foxglove_bridge::FoxgloveBridge::updateAdvertisedTopicsAndServices(ros::TimerEvent const&) (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0xEA89D3E: foxglove_bridge::FoxgloveBridge::onInit() (in /opt/rios/install/lib/libfoxglove_bridge_nodelet.so)
==1083==    by 0x487F4AC: nodelet::Nodelet::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ros::CallbackQueueInterface*, ros::CallbackQueueInterface*) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x4882A7A: nodelet::Loader::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083== 
==1083== 1,216 bytes in 4 blocks are possibly lost in loss record 1,806 of 2,137
==1083==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1083==    by 0x40149DA: allocate_dtv (dl-tls.c:286)
==1083==    by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==1083==    by 0x4F16322: allocate_stack (allocatestack.c:622)
==1083==    by 0x4F16322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==1083==    by 0x4FC8441: boost::thread::start_thread_noexcept() (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==1083==    by 0x48A7E7F: nodelet::detail::CallbackQueueManager::CallbackQueueManager(unsigned int) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x489F17F: nodelet::Loader::Impl::advertiseRosApi(nodelet::Loader*, ros::NodeHandle const&) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x488310F: nodelet::Loader::Loader(bool) (in /opt/ros/noetic/lib/libnodeletlib.so)
==1083==    by 0x10C626: main (in /opt/rios/install/lib/foxglove_bridge/foxglove_bridge)
==1083== 
==1083== LEAK SUMMARY:
==1083==    definitely lost: 177 bytes in 1 blocks
==1083==    indirectly lost: 0 bytes in 0 blocks
==1083==      possibly lost: 5,072 bytes in 22 blocks
==1083==    still reachable: 27,711,699 bytes in 48,509 blocks
==1083==                       of which reachable via heuristic:
==1083==                         newarray           : 776 bytes in 1 blocks
==1083==         suppressed: 0 bytes in 0 blocks
==1083== Reachable blocks (those to which a pointer was found) are not shown.
==1083== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1083== 
==1083== For lists of detected and suppressed errors, rerun with: -s
==1083== ERROR SUMMARY: 19 errors from 19 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)

@achim-k
Copy link
Collaborator

achim-k commented Sep 8, 2023

Great, there is definitely something wrong. I'm suspecting that the connection ptr is a null pointer, and we currently do not check that one:

link->getConnection()->setHeaderReceivedCallback(

Would you be able to get another backtrace with debug symbols so we know exactly in which line number the segfault happens? You can do that by building with catkin build -DCMAKE_BUILD_TYPE=Debug

@achim-k achim-k reopened this Sep 8, 2023
@carlosatrios
Copy link
Author

backtrace with debug flags:

(gdb) backtrace
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff79be859 in __GI_abort () at abort.c:79
#2  0x00007ffff79be729 in __assert_fail_base (fmt=0x7ffff7b54588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7fffebfa3444 "px != 0", file=0x7fffebfa3418 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=734, 
    function=<optimized out>) at assert.c:92
#3  0x00007ffff79cffd6 in __GI___assert_fail (assertion=0x7fffebfa3444 "px != 0", file=0x7fffebfa3418 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=734, 
    function=0x7fffebfa3450 "typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = ros::ServiceServerLink; typename boost::detail::sp_member_access<T>::type = ros::ServiceServerLink*"...)
    at assert.c:101
#4  0x00007fffebf96f83 in boost::shared_ptr<ros::ServiceServerLink>::operator-> (this=0x7fffffffca50) at /usr/include/boost/smart_ptr/shared_ptr.hpp:734
#5  0x00007fffebf94803 in foxglove_bridge::retrieveServiceType (serviceName="/azure1/robot_state_publisher_azure/get_loggers", timeout=...) at /opt/rios/src/ros-foxglove-bridge/ros1_foxglove_bridge/src/service_utils.cpp:18
#6  0x00007fffebf1ba2e in foxglove_bridge::FoxgloveBridge::updateAdvertisedServices (this=0x5555558c5440, serviceNames=std::vector of length 297, capacity 512 = {...})
    at /opt/rios/src/ros-foxglove-bridge/ros1_foxglove_bridge/src/ros1_foxglove_bridge_nodelet.cpp:609
#7  0x00007fffebf19b9d in foxglove_bridge::FoxgloveBridge::updateAdvertisedTopicsAndServices (this=0x5555558c5440) at /opt/rios/src/ros-foxglove-bridge/ros1_foxglove_bridge/src/ros1_foxglove_bridge_nodelet.cpp:470
#8  0x00007fffebf13d59 in foxglove_bridge::FoxgloveBridge::onInit (this=0x5555558c5440) at /opt/rios/src/ros-foxglove-bridge/ros1_foxglove_bridge/src/ros1_foxglove_bridge_nodelet.cpp:184
#9  0x00007ffff7f864ad in nodelet::Nodelet::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ros::CallbackQueueInterface*, ros::CallbackQueueInterface*) () from /opt/ros/noetic/lib/libnodeletlib.so
#10 0x00007ffff7f89a7b in nodelet::Loader::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) () from /opt/ros/noetic/lib/libnodeletlib.so
#11 0x00005555555588fc in main (argc=1, argv=0x7fffffffd978) at /opt/rios/src/ros-foxglove-bridge/ros1_foxglove_bridge/src/ros1_foxglove_bridge_node.cpp:10

@achim-k
Copy link
Collaborator

achim-k commented Sep 8, 2023

@carlosatrios could you give #265 a try?

Judging from the backtrace, already ros::ServiceManager::createServiceServerLink returns a invalid pointer. This can happen due to the following reasons:

  1. ROS is shutting down
  2. Lookup of the service server & port failed
  3. Connection to the service failed

In your case it's probably either 2. or 3. Maybe try enabling debug logging and see if you see any roscpp related error message.

achim-k added a commit that referenced this issue Sep 11, 2023
### Public-Facing Changes

Fix invalid pointers not being caught

### Description
- Fixes invalid pointers not being caught, leading to a segmentation
fault as can be seen in
#262 (comment)
- Also exposes the `service_type_retrieval_timeout_ms` ROS1 parameter
through the launch file and adds it to the readme (forgot that in #263)


Fixes #262 (hopefully)
@carlosatrios
Copy link
Author

Your fix looks to have worked. Thank you for all the help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
2 participants