Bug 1911130 - pidgin crashes in GStreamer Vulkan routines
Summary: pidgin crashes in GStreamer Vulkan routines
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: mesa
Version: rawhide
Hardware: x86_64
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Jaroslav Škarvada
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: mobility
TreeView+ depends on / blocked
 
Reported: 2020-12-27 20:03 UTC by Valdis Kletnieks
Modified: 2023-01-05 19:59 UTC (History)
20 users (show)

Fixed In Version: mesa-20.3.3-3.fc33
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-01-17 01:49:56 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Valdis Kletnieks 2020-12-27 20:03:02 UTC
Description of problem:
Pidgin crashes at startup

[~] pidgin
MESA-INTEL: warning: Bay Trail Vulkan support is incomplete
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
Pidgin 2.14.1-2.fc33 has segfaulted and attempted to dump a core file.
This is a bug in the software and has happened through
no fault of your own.

If you can reproduce the crash, please notify the developers
by reporting a bug at:
http://developer.pidgin.im/simpleticket/

Please make sure to specify what you were doing at the time
and post the backtrace from the core file.  If you do not know
how to get the backtrace, please read the instructions at
http://developer.pidgin.im/wiki/GetABacktrace
Aborted (core dumped)

gdb stack traceback says:

(gdb) where
#0  0x00007f148e7892b2 in raise () at /lib64/libc.so.6
#1  0x00007f148e7728a4 in abort () at /lib64/libc.so.6
#2  0x00005614a2bcd8a0 in sighandler.lto_priv ()
#3  0x00007f148e789330 in <signal handler called> () at /lib64/libc.so.6
#4  0x0000000000000000 in  ()
#5  0x00007f147e714f28 in gst_vulkan_physical_device_fill_info.constprop () at /lib64/libgstvulkan-1.0.so.0
#6  0x00007f147e7091bf in gst_vulkan_physical_device_constructed () at /lib64/libgstvulkan-1.0.so.0
#7  0x00007f148ebb9ca7 in g_object_new_internal () at /lib64/libgobject-2.0.so.0
#8  0x00007f148ebbb138 in g_object_new_valist () at /lib64/libgobject-2.0.so.0
#9  0x00007f148ebbb66d in g_object_new () at /lib64/libgobject-2.0.so.0
#10 0x00007f147e70cf7d in gst_vulkan_physical_device_new () at /lib64/libgstvulkan-1.0.so.0
#11 0x00007f147e73d556 in gst_vulkan_device_provider_probe () at /usr/lib64/gstreamer-1.0/libgstvulkan.so
#12 0x00007f148ec59c1e in gst_device_provider_start () at /lib64/libgstreamer-1.0.so.0
#13 0x00007f148ec6e124 in gst_device_monitor_start () at /lib64/libgstreamer-1.0.so.0
#14 0x00007f148f096cf2 in purple_media_manager_init () at /lib64/libpurple.so.0
#15 0x00007f148ebd1ed9 in g_type_create_instance () at /lib64/libgobject-2.0.so.0
#16 0x00007f148ebb9bbd in g_object_new_internal () at /lib64/libgobject-2.0.so.0
#17 0x00007f148ebbab8d in g_object_new_with_properties () at /lib64/libgobject-2.0.so.0
#18 0x00007f148ebbb691 in g_object_new () at /lib64/libgobject-2.0.so.0
#19 0x00007f148f09121a in purple_media_manager_get () at /lib64/libpurple.so.0
#20 0x00007f147f17e2bd in jabber_plugin_init () at /usr/lib64/purple-2/libjabber.so.0
#21 0x00007f147f1b5329 in load_plugin () at /usr/lib64/purple-2/libxmpp.so
#22 0x00007f148f09c3b5 in purple_plugin_load () at /lib64/libpurple.so.0
#23 0x00007f148f09f3d8 in purple_plugins_probe () at /lib64/libpurple.so.0
#24 0x00007f148f07dc08 in purple_core_init () at /lib64/libpurple.so.0
#25 0x00005614a2b7915f in main ()

Not sure if this is a Vulkan bug, or pidgin shouldn't be trying to use Vulkan if it's not fully baked yet.

Version-Release number of selected component (if applicable):
pidgin-2.14.1-2.fc33.x86_64

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Brandon Amaro 2021-01-01 08:36:29 UTC
From what I've been able to read in other places, this problem appears to be with mesa 10.3.x. Pidgin isn't the only piece of software that broke with mesa 10.3.x. Just searching for the error "lavapipe is not a conformant vulkan implementation" shows there are others. The only solution I can find is to use an older version of mesa (10.2.x or older) until the developers of mesa fix the problem. Not even the most recent version of mesa (10.3.2) appears to fix this...

Comment 2 Valdis Kletnieks 2021-01-01 12:46:21 UTC
(In reply to Brandon Amaro from comment #1)
> From what I've been able to read in other places, this problem appears to be
> with mesa 10.3.x. Pidgin isn't the only piece of software that broke with
> mesa 10.3.x. 

Thanks for narrowing this down, you just saved me some time this morning digging through
exactly RPMs had gone bad (I've got a little script that converts the output of 'ldd' into
relevant RPM names, but that was ppointing at gstreamer1 and not Mesa because gstreamer1
loads Mesa on the fly).

Confirming that Mesa 20.2.3-2 from Nov 30 works, but 20.3.0~rc2-1 from Dec 1 is duff.
20.3.2-1 just landed in koji this morning (Jan 1), but still busted).

Moving this from 'pidgin' to 'mesa'.

Comment 3 Michel Dänzer 2021-01-04 11:21:45 UTC
The backtrace shows the crash happening in /lib64/libgstvulkan-1.0.so.0 , so that's the prime suspect.

Comment 4 Valdis Kletnieks 2021-01-07 01:31:36 UTC
(In reply to Michel Dänzer from comment #3)
> The backtrace shows the crash happening in /lib64/libgstvulkan-1.0.so.0 , so
> that's the prime suspect.

Backleveling Mesa makes things work.  So it's unclear whether Mesa broke something, or if GStreamer is doing something wonky that used to be allowed but now causes problems. Mesa's behavior has obviously changed in some manner, but somebody more clued than me is going to have to figure out what's different, and whether it's GStreamer or Mesa that needs fixing.

Comment 5 Fedora Update System 2021-01-15 22:46:30 UTC
FEDORA-2021-cd899639ab has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-cd899639ab

Comment 6 Fedora Update System 2021-01-15 22:46:33 UTC
FEDORA-2021-cd899639ab has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-cd899639ab

Comment 7 Fedora Update System 2021-01-16 02:17:47 UTC
FEDORA-2021-cd899639ab has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-cd899639ab`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-cd899639ab

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 8 Fedora Update System 2021-01-17 01:49:56 UTC
FEDORA-2021-cd899639ab has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 9 Alex Guzman 2021-02-03 05:13:08 UTC
Not sure if it's the exact same bug but I'm still seeing a similar crash using the latest versions in Fedora 33.

                #0  0x00007f32aa2f09d5 raise (libc.so.6 + 0x3d9d5)
                #1  0x00007f32aa2d98a4 abort (libc.so.6 + 0x268a4)
                #2  0x000055c1ac8d68a0 sighandler.lto_priv.0 (pidgin + 0x998a0)
                #3  0x00007f32aa2f0a60 __restore_rt (libc.so.6 + 0x3da60)
                #4  0x00007f3299fb641e wl_proxy_destroy (libwayland-client.so.0 + 0x741e)
                #5  0x00007f3298013c4b device_select_find_wayland_pci_default (libVkLayer_MESA_device_select.so + 0x3c4b)
                #6  0x00007f3298013534 device_select_EnumeratePhysicalDevices (libVkLayer_MESA_device_select.so + 0x3534)
                #7  0x00007f32998c0083 setupLoaderTrampPhysDevs (libvulkan.so.1 + 0x24083)
                #8  0x00007f32998cc898 vkEnumeratePhysicalDevices (libvulkan.so.1 + 0x30898)
                #9  0x00007f329990db24 gst_vulkan_instance_open (libgstvulkan-1.0.so.0 + 0x19b24)
                #10 0x00007f32999423db gst_vulkan_device_provider_probe (libgstvulkan.so + 0xf3db)
                #11 0x00007f32aa7ba52e gst_device_provider_start (libgstreamer-1.0.so.0 + 0x6852e)
                #12 0x00007f32aa7ce974 gst_device_monitor_start (libgstreamer-1.0.so.0 + 0x7c974)
                #13 0x00007f32aabf5cf2 purple_media_manager_init (libpurple.so.0 + 0x7bcf2)
                #14 0x00007f32aa731b48 g_type_create_instance (libgobject-2.0.so.0 + 0x39b48)
                #15 0x00007f32aa71a8c5 g_object_new_internal (libgobject-2.0.so.0 + 0x228c5)
                #16 0x00007f32aa71b69d g_object_new_with_properties (libgobject-2.0.so.0 + 0x2369d)
                #17 0x00007f32aa71c311 g_object_new (libgobject-2.0.so.0 + 0x24311)
                #18 0x00007f32aabf021a purple_media_manager_get (libpurple.so.0 + 0x7621a)
                #19 0x00007f329a51b2bd jabber_plugin_init (libjabber.so.0 + 0x382bd)
                #20 0x00007f329a5b8329 load_plugin (libxmpp.so + 0x2329)
                #21 0x00007f32aabfb3b5 purple_plugin_load (libpurple.so.0 + 0x813b5)
                #22 0x00007f32aabfe3d8 purple_plugins_probe (libpurple.so.0 + 0x843d8)
                #23 0x00007f32aabdcc08 purple_core_init (libpurple.so.0 + 0x62c08)
                #24 0x000055c1ac88215f main (pidgin + 0x4515f)
                #25 0x00007f32aa2db1e2 __libc_start_main (libc.so.6 + 0x281e2)
                #26 0x000055c1ac882a8e _start (pidgin + 0x45a8e)
                


Package versions:
pidgin-2.14.1-2.fc33.x86_64
mesa-vulkan-drivers-20.3.4-1.fc33.x86_64
gstreamer1-1.18.2-1.fc33.x86_64

Comment 10 Steve 2022-01-12 15:41:42 UTC
Everything old is new again! This is with Fedora Core 35:

#0  0x0000000000000000 in  ()
#1  0x00007fffe15385fd in gst_vulkan_physical_device_fill_info.constprop.0
    (device=0x555555dc18c0, error=error@entry=0x7fffffffaa40)
    at ../gst-libs/gst/vulkan/gstvkphysicaldevice.c:877
#2  0x00007fffe152c57f in gst_vulkan_physical_device_constructed
    (object=0x555555dc18c0) at ../gst-libs/gst/vulkan/gstvkphysicaldevice.c:205
#3  0x00007ffff70cfe37 in g_object_new_internal
    (class=class@entry=0x555555dc0310, params=params@entry=0x7fffffffab80, n_params=n_params@entry=2) at ../gobject/gobject.c:1979
#4  0x00007ffff70d12c8 in g_object_new_valistPython Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str

    (object_type=, first_property_name=first_property_name@entry=0x7fffe153b585 "instance", var_args=var_args@entry=0x7fffffffae50)
    at ../gobject/gobject.c:2282
#5  0x00007ffff70d17fd in g_object_new
    (object_type=<optimized out>, first_property_name=first_property_name@entry=0x7fffe153b585 "instance") at ../gobject/gobject.c:1782
#6  0x00007fffe153040d in gst_vulkan_physical_device_new
    (instance=instance@entry=0x555555ae3860 [GstVulkanInstance|vulkaninstance0], device_index=device_index@entry=0)
    at ../gst-libs/gst/vulkan/gstvkphysicaldevice.c:109
#7  0x00007fffe169e606 in gst_vulkan_device_provider_probe
    (provider=<optimized out>) at ../ext/vulkan/vkdeviceprovider.c:280
#8  0x00007ffff717223e in gst_device_provider_start
--Type <RET> for more, q to quit, c to continue without paging--
    (provider=0x55555575f250 [GstDeviceProvider|vulkandeviceprovider0])
    at ../gst/gstdeviceprovider.c:482
#9  0x00007ffff71870da in gst_device_monitor_start
    (monitor=0x555555757e60 [GstDeviceMonitor|devicemonitor0])
    at ../gst/gstdevicemonitor.c:525
#10 0x00007ffff75d1d89 in purple_media_manager_init_device_monitor
    (manager=0x555555708440)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/mediamanager.c:2323
#11 purple_media_manager_init (media=0x555555708440)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/mediamanager.c:267
#12 0x00007ffff70e8361 in g_type_create_instance (type=0x555555729170 [None])
    at ../gobject/gtype.c:1929
#13 0x00007ffff70cfd4d in g_object_new_internal
    (class=class@entry=0x5555557292e0, params=params@entry=0x0, n_params=n_params@entry=0) at ../gobject/gobject.c:1939
#14 0x00007ffff70d0d1d in g_object_new_with_properties
    (object_type=0x555555729170 [None], n_properties=0, names=names@entry=0x0, values=values@entry=0x0) at ../gobject/gobject.c:2108
#15 0x00007ffff70d1821 in g_object_new
    (object_type=<optimized out>, first_property_name=first_property_name@entry=0x0) at ../gobject/gobject.c:1779
#16 0x00007ffff75cc1a2 in purple_media_manager_get ()
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/mediamanager.c:336
--Type <RET> for more, q to quit, c to continue without paging--
#17 0x00007fffe284e048 in jabber_do_init ()
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/protocols/jabber/jabber.c:3927
#18 jabber_plugin_init (plugin=0x55555574d290)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/protocols/jabber/jabber.c:3983
#19 0x00007fffe288655d in load_plugin (plugin=<optimized out>)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/protocols/jabber/libxmpp.c:142
#20 0x00007ffff75d7625 in purple_plugin_load (plugin=0x55555574d290)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/plugin.c:606
#21 purple_plugin_load (plugin=plugin@entry=0x55555574d290)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/plugin.c:505
#22 0x00007ffff75da6b8 in purple_plugins_probe (ext=0x7ffff764888e "so")
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/plugin.c:1426
#23 purple_plugins_probe (ext=0x7ffff764888e "so")
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/plugin.c:1358
#24 0x00007ffff75b87b0 in purple_core_init (ui=<optimized out>)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/libpurple/core.c:149
#25 0x0000555555599149 in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/pidgin-2.14.6-2.fc35.x86_64/pidgin/gtkmain.c:826

Package versions:
pidgin-2.14.6-2.fc35.x86_64
mesa-vulkan-drivers-21.3.3-1.fc35.x86_64
gstreamer1-1.19.3-1.fc35.x86_64

Comment 11 Seb L. 2023-01-05 19:00:52 UTC
Hi,

I do confirm this bug is still present in Fedora 36:

#0  0x0000000000000000 in  ()
#1  0x00007ffff3ec1efa in gst_vulkan_physical_device_fill_info.constprop.0
    (device=0x555555d57e80, error=<optimized out>)
    at ../gst-libs/gst/vulkan/gstvkphysicaldevice.c:877
#2  0x00007ffff3eb605f in gst_vulkan_physical_device_constructed
    (object=0x555555d57e80) at ../gst-libs/gst/vulkan/gstvkphysicaldevice.c:205
#3  0x00007ffff7085f4c in g_object_new_internal
    (class=class@entry=0x555555d574e0, params=params@entry=0x7fffffffa770, n_params=n_params@entry=2) at ../gobject/gobject.c:2053
#4  0x00007ffff70875e5 in g_object_new_valist
    (object_type=<optimized out>, first_property_name=first_property_name@entry=0x7ffff3ec5585 "instance", var_args=var_args@entry=0x7fffffffaa40)
    at ../gobject/gobject.c:2355
#5  0x00007ffff7087afd in g_object_new
    (object_type=<optimized out>, first_property_name=first_property_name@entry=0x7ffff3ec5585 "instance") at ../gobject/gobject.c:1824
#6  0x00007ffff3eb9e8b in gst_vulkan_physical_device_new
    (instance=instance@entry=0x555555a2f060, device_index=device_index@entry=0)
    at ../gst-libs/gst/vulkan/gstvkphysicaldevice.c:109
#7  0x00007ffff3eea4c6 in gst_vulkan_device_provider_probe
    (provider=<optimized out>) at ../ext/vulkan/vkdeviceprovider.c:280
#8  0x00007ffff7129b4e in gst_device_provider_start (provider=0x555555a070e0)
    at ../gst/gstdeviceprovider.c:482
#9  0x00007ffff713e7f6 in gst_device_monitor_start (monitor=0x55555573de70) at ../gst/gstdevicemonitor.c:541
#10 0x00007ffff75897da in purple_media_manager_init_device_monitor (manager=0x5555556eae00) at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/mediamanager.c:2323
#11 purple_media_manager_init (media=0x5555556eae00) at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/mediamanager.c:267
#12 0x00007ffff709dfd9 in g_type_create_instance (type=0x5555557388d0 [None]) at ../gobject/gtype.c:1929
#13 0x00007ffff7085e38 in g_object_new_internal (class=0x55555569eb40, params=params@entry=0x0, n_params=n_params@entry=0) at ../gobject/gobject.c:2011
#14 0x00007ffff7087081 in g_object_new_with_properties (object_type=0x5555557388d0 [None], n_properties=0, names=names@entry=0x0, values=values@entry=0x0) at ../gobject/gobject.c:2181
#15 0x00007ffff7087b21 in g_object_new (object_type=<optimized out>, first_property_name=first_property_name@entry=0x0) at ../gobject/gobject.c:1821
#16 0x00007ffff7583c82 in purple_media_manager_get () at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/mediamanager.c:336
#17 0x00007ffff4b4da48 in jabber_do_init () at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/protocols/jabber/jabber.c:3884
#18 jabber_plugin_init (plugin=0x555555734600) at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/protocols/jabber/jabber.c:3940
#19 0x00007ffff4d6f55d in load_plugin (plugin=<optimized out>) at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/protocols/jabber/libxmpp.c:142
#20 0x00007ffff758ef3e in purple_plugin_load (plugin=plugin@entry=0x555555734600) at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/plugin.c:606
#21 0x00007ffff7591e90 in purple_plugins_probe (ext=0x7ffff75fe8c6 "so") at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/plugin.c:1426
#22 purple_plugins_probe (ext=0x7ffff75fe8c6 "so") at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/plugin.c:1358
#23 0x00007ffff7570560 in purple_core_init (ui=ui@entry=0x555555633070 "gtk-gaim") at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/libpurple/core.c:149
#24 0x000055555559902f in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/pidgin-2.14.8-5.fc36.x86_64/pidgin/gtkmain.c:826

Package versions:
pidgin-2.14.8-5.fc36.x86_64
mesa-vulkan-drivers-22.1.7-1.fc36.x86_64
gstreamer1-1.20.3-1.fc36.x86_64

Comment 12 Seb L. 2023-01-05 19:59:08 UTC
The issue seems to be with gstreamer1-plugins-bad-free-1.20.3-1.fc36.x86_64.

Disabling libgstvulkan.so by deleting or moving away this file "solves" the issue with pidgin:

$ sudo mv /usr/lib64/gstreamer-1.0/libgstvulkan.so{,.bad}


Note You need to log in before you can comment on or make changes to this bug.