Summary: | media-libs/gst-plugins-bad-1.24.11 fails test elements_audiovisualizer | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Paolo Pedroni <paolo.pedroni> |
Component: | Current packages | Assignee: | GStreamer package maintainers <gstreamer> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | esigra, kostadinshishmanov, paolo.pedroni, sam |
Priority: | Normal | Keywords: | TESTFAILURE |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4248 https://bugs.gentoo.org/show_bug.cgi?id=951225 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 915000 | ||
Attachments: | gst-plugins-bad-1.24.11:20250107-131317.log.gz |
Description
Paolo Pedroni
2025-01-07 13:32:36 UTC
Could you cd into the builddir and run that long command starting with GST_STATE_IGNORE_ELEMENTS= ..., then if it crashes again, run it under gdb, by doing.... GST_STATE_IGNORE_ELEMENTS=... ... CK_DEFAULT_TIMEOUT=20 /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer then r and bt inside gdb (May need to build glib+gstreamer+gst-plugins-bad w/ debugging symbols) (In reply to Sam James from comment #1) > Could you cd into the builddir and run that long command starting with > GST_STATE_IGNORE_ELEMENTS= ..., then if it crashes again, run it under gdb, > by doing.... > > GST_STATE_IGNORE_ELEMENTS=... ... CK_DEFAULT_TIMEOUT=20 > /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1. > 24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer > > then r and bt inside gdb > > (May need to build glib+gstreamer+gst-plugins-bad w/ debugging symbols) principale /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64 # GST_STATE_IGNORE_ELEMENTS='' ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 GST_REGISTRY=/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer.registry LD_LIBRARY_PATH=/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/analytics:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/play:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/mse:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/player:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/mpegts:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/basecamerabinsrc:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/insertbin:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/uridownloader:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/transcoder:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/webrtc:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/audio:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/interfaces MALLOC_PERTURB_=161 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 GST_PLUGIN_SCANNER_1_0=/usr/libexec/gstreamer-1.0/gst-plugin-scanner /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer Running suite(s): audiovisualizer 0%: Checks: 1, Failures: 0, Errors: 1 ../gst-plugins-bad-1.24.11/tests/check/elements/audiovisualizer.c:66:E:general:test_simple_pipelines:0: (after this point) Received signal 11 (Segmentation fault) Check suite audiovisualizer ran in 0.553s (tests failed: 1) and then I must be doing something wrong (and I _did_ rebuild glib+gstreamer+gst-plugins-bad with debugging symbols) because: principale /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64 # GST_STATE_IGNORE_ELEMENTS='' ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 GST_REGISTRY=/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer.registry LD_LIBRARY_PATH=/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/analytics:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/play:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/mse:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/player:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/mpegts:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/basecamerabinsrc:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/insertbin:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/uridownloader:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/transcoder:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/webrtc:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/audio:/var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/gst-libs/gst/interfaces MALLOC_PERTURB_=161 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 GST_PLUGIN_SCANNER_1_0=/usr/libexec/gstreamer-1.0/gst-plugin-scanner CK_DEFAULT_TIMEOUT=20 gdb /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer GNU gdb (Gentoo 15.2 vanilla) 15.2 Copyright (C) 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer... (gdb) r Starting program: /var/tmp/portage/media-libs/gst-plugins-bad-1.24.11/work/gst-plugins-bad-1.24.11-abi_x86_64.amd64/tests/check/elements_audiovisualizer [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib64/libthread_db.so.1". [Detaching after fork from child process 1590176] Running suite(s): audiovisualizer [Detaching after fork from child process 1590220] 0%: Checks: 1, Failures: 0, Errors: 1 ../gst-plugins-bad-1.24.11/tests/check/elements/audiovisualizer.c:66:E:general:test_simple_pipelines:0: (after this point) Received signal 11 (Segmentation fault) Check suite audiovisualizer ran in 0.694s (tests failed: 1) [Inferior 1 (process 1590173) exited with code 01] (gdb) bt No stack. (gdb) Try 'set-follow-fork child' in gdb before 'r' set follow-fork-mode child (https://sourceware.org/gdb/current/onlinedocs/gdb.html/Forks.html) `-mavx512bw -O2` is enough to reproduce ``` 0x00007ffff7f9dcf9 in add_pixel (_p=0x8003e8085dc4, _c=0) at ../gst-plugins-bad-1.24.11/gst/audiovisualizers/gstsynaescope.c:191 191 if (p[0] < 255 - c[0]) (gdb) bt #0 0x00007ffff7f9dcf9 in add_pixel (_p=0x8003e8085dc4, _c=0) at ../gst-plugins-bad-1.24.11/gst/audiovisualizers/gstsynaescope.c:191 #1 gst_synae_scope_render (bscope=0x5555556a4580 [GstAudioVisualizer|synaescope0], audio=0x7fffe8085730, video=<optimized out>) at ../gst-plugins-bad-1.24.11/gst/audiovisualizers/gstsynaescope.c:289 #2 0x00007ffff763a9ee in gst_audio_visualizer_chain (pad=<optimized out>, parent=0x5555556a4580 [GstObject|synaescope0], buffer=0x7fffe8085580) at ../gst-plugins-base-1.24.11/gst-libs/gst/pbutils/gstaudiovisualizer.c:1190 #3 0x00007ffff7eba6c4 in gst_pad_chain_data_unchecked (pad=pad@entry=0x55555559d640 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7fffe8085580) at ../gstreamer-1.24.11/gst/gstpad.c:4494 #4 0x00007ffff7ebf61c in gst_pad_push_data (pad=pad@entry=0x5555556a2120 [GstPad|src], type=type@entry=4112, data=data@entry=0x7fffe8085580) at ../gstreamer-1.24.11/gst/gstpad.c:4770 #5 0x00007ffff7ebf9ff in gst_pad_push (pad=0x5555556a2120 [GstPad|src], buffer=0x7fffe8085580) at ../gstreamer-1.24.11/gst/gstpad.c:4889 #6 0x00007ffff77b32f9 in gst_base_transform_chain (pad=<optimized out>, parent=0x5555556a1e40 [GstObject|capsfilter3], buffer=<optimized out>) at ../gstreamer-1.24.11/libs/gst/base/gstbasetransform.c:2391 #7 0x00007ffff7eba6c4 in gst_pad_chain_data_unchecked (pad=pad@entry=0x5555556a23d0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7fffe8085580) at ../gstreamer-1.24.11/gst/gstpad.c:4494 #8 0x00007ffff7ebf61c in gst_pad_push_data (pad=pad@entry=0x555555605440 [GstPad|src], type=type@entry=4112, data=data@entry=0x7fffe8085580) at ../gstreamer-1.24.11/gst/gstpad.c:4770 #9 0x00007ffff7ebf9ff in gst_pad_push (pad=pad@entry=0x555555605440 [GstPad|src], buffer=0x7fffe8085580) at ../gstreamer-1.24.11/gst/gstpad.c:4889 #10 0x00007ffff77abaa4 in gst_base_src_loop (pad=0x555555605440 [GstPad|src]) at ../gstreamer-1.24.11/libs/gst/base/gstbasesrc.c:3080 #11 0x00007ffff7f0036f in gst_task_func (task=0x7fffe80851c0 [GstTask|audiotestsrc3:src]) at ../gstreamer-1.24.11/gst/gsttask.c:399 #12 0x00007ffff7cfcb32 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib-2.80.5/glib/gthreadpool.c:336 #13 0x00007ffff7cf8ddd in g_thread_proxy (data=0x7ffff0000b70) at ../glib-2.80.5/glib/gthread.c:835 #14 0x00007ffff7aa4727 in ??? () at /usr/lib64/libc.so.6 #15 0x00007ffff7b354f8 in ??? () at /usr/lib64/libc.so.6 ``` What does ubsan say, if anything? (In reply to Sam James from comment #6) > What does ubsan say, if anything? Building with it made a lot of other tests fail, but I guess we could ignore those. This is the summary it gave for the one in the bug: ../gst-plugins-bad-1.24.11/gst/audiovisualizers/gstsynaescope.c:279:21: runtime error: signed integer overflow: 128 - -2147483648 cannot be represented in type 'int' #0 0x7f3d42f1a6b1 in gst_synae_scope_render ../gst-plugins-bad-1.24.11/gst/audiovisualizers/gstsynaescope.c:279 #1 0x7f3d42ee59ed in gst_audio_visualizer_chain ../gst-plugins-base-1.24.11/gst-libs/gst/pbutils/gstaudiovisualizer.c:1190 #2 0x7f3d43dc16c3 in gst_pad_chain_data_unchecked ../gstreamer-1.24.11/gst/gstpad.c:4494 #3 0x7f3d43dc661b in gst_pad_push_data ../gstreamer-1.24.11/gst/gstpad.c:4770 #4 0x7f3d43dc69fe in gst_pad_push ../gstreamer-1.24.11/gst/gstpad.c:4889 #5 0x7f3d42fc52f8 in gst_base_transform_chain ../gstreamer-1.24.11/libs/gst/base/gstbasetransform.c:2391 #6 0x7f3d43dc16c3 in gst_pad_chain_data_unchecked ../gstreamer-1.24.11/gst/gstpad.c:4494 #7 0x7f3d43dc661b in gst_pad_push_data ../gstreamer-1.24.11/gst/gstpad.c:4770 #8 0x7f3d43dc69fe in gst_pad_push ../gstreamer-1.24.11/gst/gstpad.c:4889 #9 0x7f3d42fbdaa3 in gst_base_src_loop ../gstreamer-1.24.11/libs/gst/base/gstbasesrc.c:3080 #10 0x7f3d43e0736e in gst_task_func ../gstreamer-1.24.11/gst/gsttask.c:399 #11 0x7f3d43c03b31 in g_thread_pool_thread_proxy ../glib-2.80.5/glib/gthreadpool.c:336 #12 0x7f3d43bffddc in g_thread_proxy ../glib-2.80.5/glib/gthread.c:835 #13 0x7f3d430a4726 (/usr/lib64/libc.so.6+0xa4726) #14 0x7f3d431354f7 (/usr/lib64/libc.so.6+0x1354f7) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../gst-plugins-bad-1.24.11/gst/audiovisualizers/gstsynaescope.c:279:21 If you run it with abort/halt on error set to 0 in UBSAN_OPTIONS, do you get anything about alignment? (In reply to Sam James from comment #8) > If you run it with abort/halt on error set to 0 in UBSAN_OPTIONS, do you get > anything about alignment? The output is exactly the same. Upstream bug report: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4248 Thanks. |