Closed Bug 492211 Opened 11 years ago Closed 11 years ago

Crash when dismissing an alert created using BROKEN VERSION of libnotify [@ nsAlertsIconListener::SendClosed - notify_closed_cb]

Categories

(Toolkit :: XUL Widgets, defect)

1.9.1 Branch
x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: stephen.moehle, Unassigned)

References

Details

(Keywords: crash)

Crash Data

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2a1pre) Gecko/20090509 Minefield/3.6a1pre
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2a1pre) Gecko/20090509 Minefield/3.6a1pre

Since bug 469880 went in and Firefox now shows alerts using libnotify, Firefox keeps crashing when the alert is dismissed either by letting the alert time out or by clicking the close button.

Reproducible: Always

Steps to Reproduce:
1. Download a reasonably large file such as a nightly Firefox.
2. See the libnotify-based alert about the download being done.
3. Wait for alert to time out or click close button
Actual Results:  
Firefox crashes


Attached is a backtrace from gdb. The user_data parameter to notify_close_cb() is 1 instead of a valid pointer.

I am using Fedora 10 x86, gtk 2.14, glib 2.18, libnotify 0.4.4.
Attached file GDB stack trace
Version: unspecified → Trunk
Blocks: 469880
Keywords: crash
Component: Shell Integration → XUL Widgets
Product: Firefox → Toolkit
QA Contact: shell.integration → xul.widgets
Version: Trunk → 1.9.1 Branch
I can't reproduce this. I really wonder why that's happening, if it were happening consistently I would've expected a bug report earlier than now.
There seems to be an incompatible change between versions 0.4.3 and 0.4.4 of libnotify. In 0.4.4, this comment can be found in NEWS: "Added support for sending the closed reason in the "closed" signal handler. (Ticket #139)." And the header notification.h now defines "closed" in "struct _NotifyNotificationClass" as "void (*closed)(NotifyNotification *notification, gint reason)".

If I change the signature of notify_closed_cb to:

static void notify_closed_cb(NotifyNotification *notification, gint reason,                          pointer user_data)

then Firefox no longer crashes when dismissing an alert.
You're joking. Urk. Looks like I'll have to see what's up with the documentation.
Ah, in libnotify 0.4.5 he rectified that by adding a new function to get the reason instead.
He must be new at making libraries :)
Since our build machines use libnotify 0.4.0, I'll have to add an exception rather than raise the requirements.
Hmm, the 0.4.4 source code download on the libnotify website doesn't have this change. Did Fedora take the official libnotify 0.4.4 release or an svn snapshot?
Great. Fedora is shipping some Frankenstein version of libnotify that is breaking other apps as well. See https://bugzilla.redhat.com/show_bug.cgi?id=488080, for instance. So this is really a Fedora problem.
Thanks for pointing this out. I hope they backport some kind of fix for Fedora 10 users before 3.next's release.
Status: UNCONFIRMED → RESOLVED
Closed: 11 years ago
Resolution: --- → WORKSFORME
Duplicate of this bug: 492234
Duplicate of this bug: 493742
Summary: Crash when dismissing an alert created using libnotify → Crash when dismissing an alert created using BROKEN VERSION of libnotify [@ nsAlertsIconListener::SendClosed - notify_closed_cb]
Duplicate of this bug: 499948
This is also a problem with ubuntu 9.04 which has libnotify 0.4.4 installed
ubuntu 9.04 should have libnotify 0.4.5 according to http://packages.ubuntu.com/source/jaunty/libnotify

Fedora removed the patch causing the crash when upgrading to 0.4.5:
http://cvs.fedoraproject.org/viewvc/rpms/libnotify/devel/libnotify.spec?r1=1.37&r2=1.38

I would guess that 0.4.5 is incompatible (i.e. crashes), if the exception mentioned in comment 5 hasn't been implemented.
Crash Signature: [@ nsAlertsIconListener::SendClosed - notify_closed_cb]
You need to log in before you can comment on or make changes to this bug.