exaile: Segmentation fault after a second of playing

Bug #1243712 reported by Thorsten Bonow
24
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
High
Dustin Spicuzza
Fedora
Confirmed
Critical

Bug Description

Exaile 3.3.1, packages coming with an up to date Debian Unstable.

When starting exaile with the Wikipedia plugin enabled, the program starts up normally, but crashes when playing anything.

Disabling the plugin prevents the crash. I've been bitten by this bug on both of my machines.

How to reproduce:

exaile --debug > exaile.log 2>&1

"Press Play"

Segmentation fault

File "exaile.log" is attached.

Thx for your help!

Toto

Related branches

Revision history for this message
Thorsten Bonow (thorsten-bonow) wrote :
Revision history for this message
Achim Zien (achimzien) wrote :

I have had this since a couple of months on Ubuntu 13.04. Switch to 13.10 2 days ago did not fix it.

Disabling the Wikipedia plugin (default: on!) works for me so far.

Revision history for this message
dimi (dimig) wrote :

I installed Exaile today. Everything was working fine until I enabled the Wikipedia functionality. Then, it would crash whenever I manually changed tracks, whether through clicking the Next button, or dragging or double-clicking songs from the Collection tab.

These are the last few lines when I run it with --debug and --eventdebug:

19:47:32,812:DEBUG : Attempting to call <bound method BrowserPage.on_playback_start of <BrowserPage object at 0x60c1b40 (WebKitWebView at 0x31d21a0)>> in response to playback_track_start. (xl.event)
19:47:34,445:ERROR : HTTP Error 404: Not Found (exaile-wikipedia/__init__.py)
19:47:34,446:ERROR : Error occured when trying to retrieve Wikipedia page for Far East Movement Ft Roger Sanchez & Kanobby. (exaile-wikipedia/__init__.py)
Segmentation fault

When I disabled the Wikipedia functionality the problem disappeared.

Revision history for this message
dimi (dimig) wrote :

^ Amendment ^

This problem was present WHENEVER tracks changed, not only when I changed them manually.

Changed in exaile:
status: New → Confirmed
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

This problem sounds like it's similar to https://bugs.launchpad.net/exaile/+bug/1086669. It may have already been fixed in trunk.

Changed in exaile:
importance: Undecided → High
milestone: none → 3.4.0
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

I was able to duplicate this issue with trunk on Fedora 20. Seems to be javascript related, I'm exploring fixes now.

Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

After playing with this for a bit, I'm pretty sure this is an internal webkitgtk bug. Exaile might be exasberating the issue, but you can reproduce improper rendering using the following script:

#!/usr/bin/env python

import gtk
import webkit

gtk.gdk.threads_init()

window = gtk.Window()
view = webkit.WebView()
view.open('http://en.m.wikipedia.org/wiki/Alberta_Hunter') # this breaks
#view.open('http://www.google.com') # this works
window.add(view)
window.show_all()
window.connect('delete-event', lambda window, event: gtk.main_quit())

gtk.main()

Note that this script doesn't crash, but (on my computer at least) it doesn't show the content properly and the screen is all messed up.

I'm open to suggestions on how to fix this, but I suspect the best option is for this to be fixed upstream somewhere. I can't seem to determine who is actually maintaining it anymore.

Revision history for this message
In , Dustin Spicuzza (dustin-virtualroadside) wrote :
Download full text (3.8 KiB)

Now, stay with me for a second, as there are two bugs that I'm reporting here, but I suspect they're caused by the same problem.

BUG #1:

When running the attached python program, I just get a blank window with a bunch of garbage in it. The program just accesses the mobile wikipedia site and tries to show a window. It's simple enough, seems like it should work. Changing the URL to google.com works without a problem.

I suspect that if you can diagnose/fix this bug, then bug #2 will also be fixed.

BUG #2:

Accessing mobile wikipedia reliably crashes the trunk version of Exaile media player (note: I'm a primary maintainer of Exaile) using the Wikipedia plugin (see https://bugs.launchpad.net/exaile/+bug/1243712). The wikipedia plugin uses webkitgtk to render the wiki pages, and I get error messages + stack trace that looks something like this there:

** Message: console message: http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%2CSpinner%7Cjquery.triggerQueueCallback%2CloadingSpinner%2CmwEmbedUtil%7Cmw.MwEmbedSupport&only=scripts&skin=minerva&version=20140606T033439Z @164: Use of "name" is deprecated. Use mw.user.getName instead.

** Message: console message: http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%2CSpinner%7Cjquery.triggerQueueCallback%2CloadingSpinner%2CmwEmbedUtil%7Cmw.MwEmbedSupport&only=scripts&skin=minerva&version=20140606T033439Z @164: Use of "anonymous" is deprecated. Use mw.user.isAnon instead.

pure virtual method called
terminate called without an active exception

Program received signal SIGABRT, Aborted.
0x00007ffff6d62c39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);

(gdb) bt
#0 0x00007ffff6d62c39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff6d64348 in __GI_abort () at abort.c:89
#2 0x00007fffd03d9f85 in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#3 0x00007fffd03d7ee6 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:38
#4 0x00007fffd03d7f13 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#5 0x00007fffd03d8a7f in __cxxabiv1::__cxa_pure_virtual () at ../../../../libstdc++-v3/libsupc++/pure.cc:50
#6 0x00007fffd5451e7c in WebCore::JSNodeOwner::isReachableFromOpaqueRoots () from /lib64/libwebkitgtk-1.0.so.0
#7 0x00007fffd466f1b5 in JSC::WeakBlock::visit () from /lib64/libjavascriptcoregtk-1.0.so.0
#8 0x00007fffd466c3fb in JSC::MarkedSpace::visitWeakSets () from /lib64/libjavascriptcoregtk-1.0.so.0
#9 0x00007fffd466195a in JSC::Heap::markRoots () from /lib64/libjavascriptcoregtk-1.0.so.0
#10 0x00007fffd466373a in JSC::Heap::collect () from /lib64/libjavascriptcoregtk-1.0.so.0
#11 0x00007fffd5402387 in collect () from /lib64/libwebkitgtk-1.0.so.0
#12 0x00007fffd53b49b9 in WebCore::ThreadTimers::sharedTimerFiredInternal () from /lib64/libwebkitgtk-1.0.so.0
#13 0x00007fffd53c9e12 in timeout_cb () from /lib64/libwebkitgtk-1.0.so.0
#14 0x00007fff...

Read more...

Revision history for this message
In , Dustin Spicuzza (dustin-virtualroadside) wrote :

Created attachment 232844
Python script that shows scrambled window

Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

Found an appropriate bugzilla to file the bug at, you can track it at https://bugs.webkit.org/show_bug.cgi?id=133714

Changed in fedora:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in fedora:
importance: Medium → Critical
Revision history for this message
Dustin Spicuzza (dustin-virtualroadside) wrote :

It occurred to me that if I disabled javascript, the problems would no longer happen. Sure enough, it doesn't crash anymore.

This seems like a good enough fix to me, as webkit-gtk does not appear to be maintained anymore in favor of their newer bindings which we can't use yet.

Fixed in r4563.

Changed in exaile:
assignee: nobody → Dustin Spicuzza (dustin-virtualroadside)
status: Confirmed → Fix Committed
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.