HEBI-ROS-DEPRECATED icon indicating copy to clipboard operation
HEBI-ROS-DEPRECATED copied to clipboard

hebiros_node: Segmentation fault (core dumped)

Open josephcoombe opened this issue 7 years ago • 5 comments

On occasion, the hebiros_node is crashing with a Segmentation fault (core dumped) message. I'd never encountered this before the latest update (v1.3).

I think it happens when: a) ROS node A registers group foo with the hebiros_node b) ROS node A throws an error during execution and exits abruptly c) ROS node B registers group foo (again) with the hebiros_node d) ROS node B attempts to execute a TrajectoryAction

Will update if I get more info

joseph@joseph-Aspire-VN7-591G:~$ rosrun hebiros hebiros_node 
Broadcasting on:
  192.168.1.255
[ INFO] [1521489218.670748971]: Parameters:
[ INFO] [1521489218.670793966]: /hebiros/node_frequency=200
[ INFO] [1521489218.670805335]: /hebiros/action_frequency=200
[ INFO] [1521489218.670814601]: /hebiros/feedback_frequency=100
[ INFO] [1521489218.670826844]: /hebiros/command_lifetime=100
[ INFO] [1521489250.646090737]: Created group [hebi_3dof_arm]:
[ INFO] [1521489250.646119193]: /hebi_3dof_arm/HEBI/Base
[ INFO] [1521489250.646131900]: /hebi_3dof_arm/HEBI/Shoulder
[ INFO] [1521489250.646144489]: /hebi_3dof_arm/HEBI/Elbow
[ INFO] [1521489304.539883354]: Group [hebi_3dof_arm]: Executing trajectory
[ INFO] [1521489307.545037776]: Group [hebi_3dof_arm]: Finished executing trajectory
[ INFO] [1521489307.549675697]: Group [hebi_3dof_arm]: Executing trajectory
[ INFO] [1521489309.554783396]: Group [hebi_3dof_arm]: Finished executing trajectory
[ INFO] [1521489332.719634798]: Group [hebi_3dof_arm]: Executing trajectory
[ INFO] [1521489335.724706581]: Group [hebi_3dof_arm]: Finished executing trajectory
[ INFO] [1521489335.729589202]: Group [hebi_3dof_arm]: Executing trajectory
[ INFO] [1521489337.729713607]: Group [hebi_3dof_arm]: Finished executing trajectory
[ WARN] [1521489733.994416457]: Group [hebi_3dof_arm] already exists
[ INFO] [1521489837.034575456]: Group [hebi_3dof_arm]: Executing trajectory
[ INFO] [1521489840.034710116]: Group [hebi_3dof_arm]: Finished executing trajectory
[ INFO] [1521489840.044660348]: Group [hebi_3dof_arm]: Executing trajectory
[ INFO] [1521489846.044797342]: Group [hebi_3dof_arm]: Finished executing trajectory
Segmentation fault (core dumped)
joseph@joseph-Aspire-VN7-591G:~$ 

Update 2018-03-21

Sending a TrajectoryGoal with only 1 waypoint will crash the hebiros_node and generate a Segmentation fault (Core dumped) message.

josephcoombe avatar Mar 19 '18 20:03 josephcoombe

Joseph,

I'm curious to see if this is something at the C or C++ API level. Can you try the following:

  1. Download the newest version of the C API from docs.hebi.us
  2. Extract it somewhere, and keep the hebi/lib/linux_x86_64/libhebi.so.1.2 file somewhere on your computer (e.g. ~/Downloads/libhebi.so.1.2)
  3. Run the following commands in a shell:
export HEBI_DEBUG='true'
LD_PRELOAD=~/Downloads/libhebi.so.1.2 rosrun hebiros hebiros_node

Replace the location of the libhebi.so.1.2 to where you saved it on your computer. 4) Try and reproduce the behaviour that leads to a crash

Let me if you see something like the following printed out:

** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** HEBI Bug Catcher  ** ** ** ** ** ** ** ** **
pid: 7595 tid: 7595
Signal 11 (SIGSEGV) code 1 (SEGV_MAPERR) fault addr 0x00000000000018
si_errno: 0 si_lower: 0x00000000007fff si_upper: 0x00000000000001
Rip 00007fea1562d9a4 Rsp 00007ffc3d30d050 Rbp 00007ffc3d30d060
Rax 0000000000000000 Rcx 00007ffc3d30d090 Rdx 00007fea24cdcf18
Rbx 0000000000000000 Rsi 4c2ad7ede9ce6900 Rdi 0000000000000000
R8  00007fea24b9ac48 R9  0000000000000000 R10 00007ffc3d30cfb0
R11 00007fea1562d9a0 R12 00007ffc3d30d178 R13 00007ffc3d30d060
R14 0000000000000000 R15 00007ffc3d30d1a8 cr2 00000018
Cs  0033             Gs  0000             Fs  0000
mxcsr 1fa0
XMM0  00007ffc3d30d1900000003000000008 XMM1  00000000000000000000000000000005
XMM2  00000000000000000000000000000000 XMM3  00007fea16e650b000007fea24b71f40
XMM4  80000000800000008000000080000000 XMM5  00007fea24b7ed9000007fea16e69000
XMM6  00000000000000000000000200000000 XMM7  00000002000000000000000000000000
XMM8  00000000000000000000000000000000 XMM9  00000000000000000000000000000000
XMM10 80ffffff80ffffff80ffffff80ffffff XMM11 8000feff8000feff8000feff8000feff
XMM12 ffff0000ffff0000ffff0000ffff0000 XMM13 80feffff80feffff80feffff80feffff
XMM14 00000001000000010000000100000001 XMM15 00000000000000000000000000000000
libhebi image base address: 0x007fea15598000
# 0: 0x007fea2445afb0  ??? [/lib64/blahblahblah.so]
# 1: 0x007fea2445afb0  ??? [/lib64/libpthread.so.0]

rLinks234 avatar Mar 21 '18 02:03 rLinks234

Note that the C++ API in the version he is using hasn't been switched to 1.0.0 yet.

xaxafour avatar Mar 21 '18 03:03 xaxafour

Okay, that's a good point. Sorry for jumping in. I suppose it would be best to hold off on trying my suggestion for now, @josephcoombe .

rLinks234 avatar Mar 21 '18 16:03 rLinks234

Figured out how to reliably generate the seg fault - not sure if this is what I ran into earlier - but...

Sending a TrajectoryGoal with only 1 waypoint will crash the hebiros_node and generate a Segmentation fault (Core dumped) message.

josephcoombe avatar Mar 21 '18 19:03 josephcoombe

Yep -- I can reproduce this here, too. Fix should be up shortly.

iamtesch avatar Mar 14 '19 20:03 iamtesch