gmusicbrowser crashes on close

Bug #1401609 reported by Thaddaeus Tintenfisch
212
This bug affects 40 people
Affects Status Importance Assigned to Milestone
gmusicbrowser
Fix Released
Undecided
Unassigned
gmusicbrowser (Ubuntu)
Medium
Unassigned

Bug Description

The application crashed after closing it via menu. Reproducible.

ProblemType: Crash
DistroRelease: Ubuntu 15.04
Package: gmusicbrowser 1.1.13~ds0-1ubuntu1
ProcVersionSignature: Ubuntu 3.16.0-25.33-generic 3.16.7
Uname: Linux 3.16.0-25-generic i686
ApportVersion: 2.15-0ubuntu2
Architecture: i386
CurrentDesktop: XFCE
Date: Thu Dec 11 18:01:58 2014
EcryptfsInUse: Yes
ExecutablePath: /usr/bin/gmusicbrowser
InstallationDate: Installed on 2014-12-08 (2 days ago)
InstallationMedia: Xubuntu 15.04 "Vivid Vervet" - Alpha i386 (20141208)
InterpreterPath: /usr/bin/perl
PackageArchitecture: all
ProcCmdline: /usr/bin/perl /usr/bin/gmusicbrowser
SegvAnalysis:
 Segfault happened at: 0xb70fb996: cmp 0x4(%eax),%edx
 PC (0xb70fb996) ok
 source "0x4(%eax)" (0x00000007) not located in a known VMA region (needed readable region)!
 destination "%edx" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: gmusicbrowser
StacktraceTop:
 ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
 g_signal_emit_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
 g_signal_emit () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
 ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
 ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
Title: gmusicbrowser crashed with SIGSEGV in g_signal_emit_valist()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo

CVE References

Revision history for this message
Thaddaeus Tintenfisch (thad-fisch-deactivatedaccount) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 emission_find (instance=<optimized out>, detail=<optimized out>, signal_id=<optimized out>) at /build/buildd/glib2.0-2.43.1/./gobject/gsignal.c:761
 signal_emit_unlocked_R (node=0x3, node@entry=0xa784de0, detail=198312840, detail@entry=0, instance=0xbd20388, emission_return=0x0, instance_and_params=0xbfe17a80) at /build/buildd/glib2.0-2.43.1/./gobject/gsignal.c:3414
 g_signal_emit_valist (instance=0xbd20388, signal_id=11, detail=0, var_args=0xbfe17bcc "I\r2\266\067~\"\266") at /build/buildd/glib2.0-2.43.1/./gobject/gsignal.c:3286
 g_signal_emit (instance=0xbd20388, signal_id=11, detail=0) at /build/buildd/glib2.0-2.43.1/./gobject/gsignal.c:3342
 gtk_object_dispose (gobject=0xbd20388) at /build/buildd/gtk+2.0-2.24.25/gtk/gtkobject.c:421

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in gmusicbrowser (Ubuntu):
importance: Undecided → Medium
summary: - gmusicbrowser crashed with SIGSEGV in g_signal_emit_valist()
+ gmusicbrowser crashed with SIGSEGV in emission_find()
tags: removed: need-i386-retrace
information type: Private → Public
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: gmusicbrowser crashed with SIGSEGV in emission_find()

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gmusicbrowser (Ubuntu):
status: New → Confirmed
Revision history for this message
Quentin Sculo (squentin) wrote :

I managed to reproduce this within VirtualBox. Turns out it is caused by the trayicon, after disabling it (in the layouts tab) it no longer crashes. The trayicon doesn't work anyway in unity, though the appindicator plugin provides some of the functionality for those interested.
I need to find a proper way to detect what kind trayicon/appindicator is supported by the desktop.

Revision history for this message
Chris Hermansen (c-hermansen) wrote :

Apparently this is the same bug as https://bugs.launchpad.net/ubuntu/+source/gmusicbrowser/+bug/1401609 which I find a bit odd because the latter occurs in a different place in the code than this one. But anyway...

I have been using gmusicbrowser a bit today and I haven't had the crash.

I *think* I may have caused it by double-clicking the (X) button.

Revision history for this message
Chris Hermansen (c-hermansen) wrote :

Sorry an error on my part in the preceding comment, it is the same as https://bugs.launchpad.net/ubuntu/+source/gmusicbrowser/+bug/1438026

Revision history for this message
Quentin Sculo (squentin) wrote :

I've investigated this a bit, this is more complicated that I thought. This crash happens in the global destruction, once the program itself is finished. A few parts of the code can cause it to crash, though not every time. I tracked down 3 locations (one is the trayicon) but there is at least 1 more, maybe more. I can change the code a bit in these locations to avoid the crash, but I don't really want to commit that, as they are not really bugs in my code.

These crashes did not happen before, I've reproduced it in a VM with the ubuntu 15.04 cd, but I can't reproduce it with the 14.10 cd. So something has changed, but I don't know what: I've reproduced it on 15.04 with old versions or gmb, of perl and of the main perl modules I use, so it's something else, maybe a C library used by perl, I don't know.

summary: - gmusicbrowser crashed with SIGSEGV in emission_find()
+ gmusicbrowser crashes on close
Revision history for this message
movwf0x0c (movwf0x0c) wrote :
Download full text (1.3 MiB)

Here's strace report:
execve("/usr/bin/gmusicbrowser", ["gmusicbrowser"], [/* 60 vars */]) = 0
brk(0) = 0x84b1000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb774a000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=72506, ...}) = 0
mmap2(NULL, 72506, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7738000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=13808, ...}) = 0
mmap2(NULL, 16512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7733000
mmap2(0xb7736000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb7736000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320E\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=309156, ...}) = 0
mmap2(NULL, 311456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76e6000
mmap2(0xb7731000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4a000) = 0xb7731000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220O\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=137044, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76e5000
mmap2(NULL, 115404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76c8000
mmap2(0xb76e1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0xb76e1000
mmap2(0xb76e3000, 4812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76e3000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\210\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1807496, ...}) = 0
mmap2(NULL, 1814236, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb750d000
mmap2(0xb76c1000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b3000) = 0xb76c1000
mmap2(0xb76c6000, 7900, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76c6000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177...