FS#62907 - [totem] segfault with gstreamer 1.16.0

Attached to Project: Arch Linux
Opened by Daniel Tobias (dant) - Saturday, 15 June 2019, 17:18 GMT
Last edited by Jan de Groot (JGC) - Friday, 15 May 2020, 21:54 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Jan Alexander Steffens (heftig)
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

since the gstreamer 1.16.0 update totem segfaults on startup

downgrading gstreamer and plugins to 1.14.4 works

--

(gdb) run
Starting program: /usr/bin/totem
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff170b700 (LWP 4040)]
[New Thread 0x7ffff0f0a700 (LWP 4041)]
[New Thread 0x7fffe97c1700 (LWP 4042)]
[New Thread 0x7fffdffff700 (LWP 4043)]
[New Thread 0x7fffde599700 (LWP 4044)]
[New Thread 0x7fffddd98700 (LWP 4045)]
[New Thread 0x7fffdd512700 (LWP 4046)]

Thread 1 "totem" received signal SIGSEGV, Segmentation fault.
gst_mini_object_copy (mini_object=0x0) at ../gstreamer/gst/gstminiobject.c:187
187 ../gstreamer/gst/gstminiobject.c: No such file or directory.
(gdb) bt
#0 0x00007ffff6fc7fb0 in gst_mini_object_copy (mini_object=0x0) at ../gstreamer/gst/gstminiobject.c:187
#1 0x00007ffff7f38298 in fixate_to_num (channels=6, in_caps=0x0) at ../totem/src/backend/bacon-video-widget.c:3680
#2 0x00007ffff7f38298 in set_audio_filter (bvw=0x5555560c0620) at ../totem/src/backend/bacon-video-widget.c:3680
#3 0x00007ffff7f38298 in bacon_video_widget_set_audio_output_type (bvw=0x5555560c0620, type=<optimized out>) at ../totem/src/backend/bacon-video-widget.c:3738
#4 0x00007ffff7ecfd01 in g_object_setv () at /usr/lib/libgobject-2.0.so.0
#5 0x00007ffff7ecfebf in g_object_set_property () at /usr/lib/libgobject-2.0.so.0
#6 0x00007ffff7c46d82 in () at /usr/lib/libgio-2.0.so.0
#7 0x00007ffff7c471c4 in g_settings_bind_with_mapping () at /usr/lib/libgio-2.0.so.0
#8 0x00007ffff7c4783b in g_settings_bind () at /usr/lib/libgio-2.0.so.0
#9 0x00007ffff7f2f835 in totem_setup_preferences (totem=0x5555555ae1a0) at ../totem/src/totem-preferences.c:290
#10 0x00007ffff7f2a04a in totem_object_app_activate (app=<optimized out>) at ../totem/src/totem-object.c:226
#11 0x00007ffff7ecbe55 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff7eb86f0 in () at /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff7ebd0ce in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff7ebdfb0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#15 0x00007ffff7f2153c in remote_command_cb (action=<optimized out>, parameter=0x5555560062c0, user_data=<optimized out>) at ../totem/src/totem-menu.c:289
#16 0x00007ffff7ecbe55 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#17 0x00007ffff7eb8ec7 in () at /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff7ebd0ce in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#19 0x00007ffff7ebdfb0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#20 0x00007ffff7c57dc6 in () at /usr/lib/libgio-2.0.so.0
#21 0x00007ffff7c583ff in g_action_activate () at /usr/lib/libgio-2.0.so.0
#22 0x00007ffff7f23f41 in totem_object_app_handle_local_options (options=<optimized out>, application=0x5555555ae1a0) at ../totem/src/totem-object.c:273
#23 0x00007ffff7f23f41 in totem_object_app_handle_local_options (application=0x5555555ae1a0, options=<optimized out>) at ../totem/src/totem-object.c:263
#24 0x00007ffff619b6d0 in ffi_call_unix64 () at /usr/lib/libffi.so.6
#25 0x00007ffff619b0a0 in ffi_call () at /usr/lib/libffi.so.6
#26 0x00007ffff7ed6298 in g_cclosure_marshal_generic_va () at /usr/lib/libgobject-2.0.so.0
#27 0x00007ffff7ebd2d5 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#28 0x00007ffff7ebdfb0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#29 0x00007ffff7c648f2 in () at /usr/lib/libgio-2.0.so.0
#30 0x00007ffff7c645ff in g_application_run () at /usr/lib/libgio-2.0.so.0
#31 0x0000555555556148 in main (argc=<optimized out>, argv=<optimized out>) at ../totem/src/totem.c:83
This task depends upon

Closed by  Jan de Groot (JGC)
Friday, 15 May 2020, 21:54 GMT
Reason for closing:  Fixed
Additional comments about closing:  1.16.2-2 compiled with checks and asserts (which are enabled by default in releases)
Comment by mattia (nTia89) - Tuesday, 05 November 2019, 18:26 GMT
I cannot reproduce the issue.
Is it still here?
Comment by Daniel Tobias (dant) - Wednesday, 06 November 2019, 11:06 GMT
I was not able to reproduce either with a new user account. something was wrong with my dconf settings for totem (possibly a bad plugin or maybe just corruption) resetting them all to defaults resolved this for me
Comment by Dan Ziemba (zman0900) - Saturday, 21 December 2019, 08:56 GMT
I can reproduce this.

1. Use dconf-editor to recursively reset settings under /org/gnome/Totem.
2. Totem should start normally. Close it again.
3. Use dconf-editor to change /org/gnome/Totem/audio-output-type to some value other than 'stereo', such as '51channel'.
4. Totem now crashes on launch.
Comment by Daniel Tobias (dant) - Saturday, 21 December 2019, 09:32 GMT
This re-triggers this for me too, and looking at the original stacktrace it looks like it was the original cause.

line 2 from the original stacktrace is definitely trying to set 5.1
0x00007ffff7f38298 in fixate_to_num (channels=6, in_caps=0x0) at ../totem/src/backend/bacon-video-widget.c:3680
Comment by Jan de Groot (JGC) - Friday, 15 May 2020, 21:15 GMT
This is a packaging bug.

GStreamer is compiled without checks, meaning that G_DISABLE_CHECKS is defined, causing macros like g_return_if_fail being a no-op. GStreamer uses these macros to guard against null pointer dereference.

Loading...