Commit f379544
committed
fix(sim): tolerate webots-controller SIGSEGV on TCP disconnect
webots-controller crashes with SIGSEGV (exit 139) in libController.so
when the remote Webots host closes the TCP connection. Replace the raw
shell action with a subprocess wrapper that treats exit code 139 as
success, since the DCS process itself exits cleanly at that point.
Also replace `return status` with `exit(status)` in main() to bypass
C++ static destructor teardown: ~webots::Robot() calls
wb_robot_cleanup() and ~MqttClient() calls mosquitto_loop_stop(),
both of which crash or block when the Webots connection is already gone.1 parent 4e43b18 commit f379544
2 files changed
Lines changed: 23 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
294 | | - | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
295 | 300 | | |
296 | 301 | | |
297 | 302 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
150 | 165 | | |
151 | 166 | | |
152 | 167 | | |
| |||
157 | 172 | | |
158 | 173 | | |
159 | 174 | | |
160 | | - | |
| 175 | + | |
161 | 176 | | |
162 | 177 | | |
163 | 178 | | |
| |||
0 commit comments