Skip to content

reiniting a node after destructing a parameter_service in opensplice causes a segfault#29

Closed
tfoote wants to merge 1 commit intomasterfrom
double_init
Closed

reiniting a node after destructing a parameter_service in opensplice causes a segfault#29
tfoote wants to merge 1 commit intomasterfrom
double_init

Conversation

@tfoote
Copy link
Copy Markdown
Contributor

@tfoote tfoote commented Aug 19, 2015

This is a ticket masquerading as a pull-request as it comes with a failing unit test. This is isolated from failing tests in #14

I suspect the issue is in rmw_opensplice.

Error in destruction of rmw node handle: failed to delete participant, at /home/tfoote/work/ros2/test_param/src/ros2/rmw_opensplice/rmw_opensplice_cpp/src/functions.cpp:426

Full backtrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff463f700 (LWP 2097)]
0x00007ffff63034bd in ?? () from /usr/lib/libdcpssacpp.so
(gdb) bt full
#0  0x00007ffff63034bd in ?? () from /usr/lib/libdcpssacpp.so
No symbol table info available.
#1  0x00007ffff5f04197 in _StatusNotifyDataAvailable () from /usr/lib/libddskernel.so
No symbol table info available.
#2  0x00007ffff5f045cb in _DataReaderNotifyListener () from /usr/lib/libddskernel.so
No symbol table info available.
#3  0x00007ffff5f046f7 in gapi_entityNotifyEvent () from /usr/lib/libddskernel.so
No symbol table info available.
#4  0x00007ffff5f04898 in ?? () from /usr/lib/libddskernel.so
No symbol table info available.
#5  0x00007ffff5f57a26 in ?? () from /usr/lib/libddskernel.so
No symbol table info available.
#6  0x00007ffff7054182 in start_thread (arg=0x7ffff463f700) at pthread_create.c:312
        __res = <optimized out>
        pd = 0x7ffff463f700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737293580032, -3892017613621006498, 1, 0, 140737293580736, 140737293580032, 3892005485134376798, 
                3891999116583268190}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#7  0x00007ffff686747d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
(gdb) 

@tfoote tfoote added the in progress Actively being worked on (Kanban column) label Aug 19, 2015
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the test implements a main function it should not link against the main library of gtest.

@dirk-thomas
Copy link
Copy Markdown
Member

The name (double_init) implies that init is called twice which seems to be not the case. Instead a node is created, destroyed and recreated. A better name would therefore be recreate_node (or something like that).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the parameter_service necessary to make it segfault? if yes, may be the test could even be named recreate_parameter_service. If yes, does it also happen with a "normal" service without any parameter specific stuff?

@tfoote tfoote removed the in progress Actively being worked on (Kanban column) label Aug 19, 2015
@tfoote tfoote self-assigned this Aug 22, 2015
@tfoote tfoote added the in progress Actively being worked on (Kanban column) label Aug 22, 2015
tfoote added a commit to ros2/rmw_opensplice that referenced this pull request Aug 22, 2015
@tfoote tfoote added in review Waiting for review (Kanban column) and removed in progress Actively being worked on (Kanban column) labels Aug 22, 2015
@tfoote
Copy link
Copy Markdown
Contributor Author

tfoote commented Aug 22, 2015

This PR should not be merged, it was useful for isolating the problem. It is covered by #14

@tfoote tfoote closed this Aug 22, 2015
@tfoote tfoote removed the in review Waiting for review (Kanban column) label Aug 22, 2015
@tfoote tfoote deleted the double_init branch August 22, 2015 02:14
tfoote added a commit to ros2/rmw_opensplice that referenced this pull request Aug 24, 2015
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

Successfully merging this pull request may close these issues.

2 participants