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

hebiros_node: Segmentation fault (core dumped) #65

Open
josephcoombe opened this issue Mar 19, 2018 · 5 comments
Open

hebiros_node: Segmentation fault (core dumped) #65

josephcoombe opened this issue Mar 19, 2018 · 5 comments

Comments

@josephcoombe
Copy link
Contributor

josephcoombe commented Mar 19, 2018

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.

@rLinks234
Copy link
Contributor

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]

@xaxafour
Copy link
Contributor

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

@rLinks234
Copy link
Contributor

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 .

@josephcoombe
Copy link
Contributor Author

josephcoombe commented Mar 21, 2018

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.

@iamtesch
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants