RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
140 stars 63 forks source link

Stack smashing detected on Yocto Kirkstone build #136

Closed Shamino0 closed 1 year ago

Shamino0 commented 1 year ago

I am using GST interpipes (compiled from what appears to be the v1.1 tag) with an embedded application based on a Yocto "Kirkstone" build of Linux (5.15.32 kernel).

When I run my application, I get a "stack smashing detected" error. A backtrace from GDB seems to indicate that this is coming from the interpipe module.

I'll continue to investigate (I need to make a debug build so I can get more than just an address for the source of the problem), but for now, here's the stack trace from GDB, in case anyone here may be able to quickly find the cause:

[New Thread 0xffffb3ffee80 (LWP 510)]
[New Thread 0xffffb37eee80 (LWP 511)]
*** stack smashing detected ***: terminated

Thread 23 "cameras_in:src" received signal SIGABRT, Aborted.
[Switching to Thread 0xffffb37eee80 (LWP 511)]
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44  pthread_kill.c: No such file or directory.
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x0000fffff6f11b98 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x0000fffff6ecdd50 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x0000fffff6ebaf64 in __GI_abort () at abort.c:79
#4  0x0000fffff6f05ab8 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0xfffff6fe1a30 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155
#5  0x0000fffff6f86e30 in __GI___fortify_fail (msg=msg@entry=0xfffff6fe1a18 "stack smashing detected") at fortify_fail.c:26
#6  0x0000fffff6f86df8 in __stack_chk_fail () at stack_chk_fail.c:24
#7  0x0000fffff05d6d5c in ?? () from /usr/lib/gstreamer-1.0/libgstinterpipe.so
#8  0x0000ffffe0280810 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Shamino0 commented 1 year ago

I got Yocto to make a non-stripped build. Here's the GDB backtrace:

[New Thread 0xffffb37eee80 (LWP 490)]
*** stack smashing detected ***: terminated

Thread 23 "cameras_in:src" received signal SIGABRT, Aborted.
[Switching to Thread 0xffffb37eee80 (LWP 490)]
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44  pthread_kill.c: No such file or directory.
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x0000fffff6f11b98 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x0000fffff6ecdd50 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x0000fffff6ebaf64 in __GI_abort () at abort.c:79
#4  0x0000fffff6f05ab8 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0xfffff6fe1a30 "*** %s ***: terminated\n")
    at ../sysdeps/posix/libc_fatal.c:155
#5  0x0000fffff6f86e30 in __GI___fortify_fail (msg=msg@entry=0xfffff6fe1a18 "stack smashing detected") at fortify_fail.c:26
#6  0x0000fffff6f86df8 in __stack_chk_fail () at stack_chk_fail.c:24
#7  0x0000fffff05d6d5c in gst_inter_pipe_sink_event (base=0xffffb8003dd0, event=0xffffe034a010)
    at ../../../git/gst/interpipe/gstinterpipesink.c:588
#8  0x0000ffffe034a300 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
fischer commented 1 year ago

Can you provide the pipeline you are running? Also, the problem seems to relate to how an event is being handled. Please run the pipeline with a bunch of debug enabled we can see which event is being handled when the error occurs.

Shamino0 commented 1 year ago

I think the bug may have already been fixed. I just tried updating our interpipe build to the v1.1.8 release (from v1.1.0) and I'm not getting the stack-smashing alert anymore.