random crashes with mail-notification-5.4

Bug #248125 reported by Thomas Zajic
36
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mail Notification
Fix Released
High
Unassigned

Bug Description

After 5 - 10 minutes, m-n-5.4 crashes with a segfault. I got the following backtrace from a build with "cflags=-g" and "cppflags=-g". The server m-n was checking at that time is dovecot-1.1.1 running on a server in my LAN. As this is the only backtrace so far, I don't know if the crash always happens with the same server. I use m-n to monitor two IMAP servers and my local system mailbox.

Anyway, here's the backtrace:

[zlatko@disclosure]:~/usrlocal/src/mail-notification-5.4$ gdb ./build/src/mail-notification
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/local/src/mail-notification-5.4/build/src/mail-notification
[Thread debugging using libthread_db enabled]
[New Thread -1228920624 (LWP 28438)]
[New Thread -1232090224 (LWP 28441)]
[New Thread -1242563696 (LWP 28442)]
[New Thread -1250952304 (LWP 28443)]
[New Thread -1240478832 (LWP 28444)]
[Thread -1232090224 (LWP 28441) exited]
[Thread -1250952304 (LWP 28443) exited]
[New Thread -1250952304 (LWP 28455)]
[Thread -1250952304 (LWP 28455) exited]

(mail-notification:28438): GLib-GObject-CRITICAL **: g_object_class_find_property: assertion `G_IS_OBJECT_CLASS (class)' failed

(mail-notification:28438): GLib-GObject-CRITICAL **: g_param_spec_get_name: assertion `G_IS_PARAM_SPEC (pspec)' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1242563696 (LWP 28442)]
0x08074333 in mn_g_object_clone (object=0xb5f12180, property_name=0x8097939 "flags") at src/mn-util.c:1179
1179 g_value_init(&parameter->value, G_PARAM_SPEC_VALUE_TYPE(pspec));
(gdb) bt full
#0 0x08074333 in mn_g_object_clone (object=0xb5f12180, property_name=0x8097939 "flags") at src/mn-util.c:1179
 pspec = (GParamSpec *) 0x0
 parameter = (GParameter *) 0xb5f0e9c0
 error = 0x0
 parameters = (GHashTable *) 0x8a87c50
 args = 0xb5eff1d8 ""
 properties = (GParamSpec **) 0x8a88fb8
 n_properties = 3075511376
 i = -1219456018
 parameters_array = (GArray *) 0xb5eff1b0
 new_object = (GObject *) 0xb5f25558
#1 0x0807dd8c in mn_imap_mailbox_handle_fetch_uid_cb (session=0xb5eff254, response=0xb5f24bf8, priv=0xb5eff2c8)
    at src/mn-imap-mailbox.gob:911
 message = (MNMessage *) 0xb5f12180
 n = 39
 info = (MessageInfo *) 0xb5f0ea60
 uid = 0xb5f0f288 "916"
#2 0x08082286 in handle_input (session=0xb5eff254, input=0xb5f21c10 "* 39 FETCH (UID 916)") at src/mn-client-session.c:320
 result = -1
 response = (MNClientSessionResponse *) 0xb5f24bf8
 cont = 1
#3 0x0808245c in mn_client_session_run (states=0x8097b20, callbacks=0x8097b00, use_ssl=0, server=0x8a88ee0 "my.imap.server",
    port=143, private=0xb5eff2c8, err=0xb5eff324) at src/mn-client-session.c:440
 session = {states = 0x8097b20, callbacks = 0x8097b00, server = 0x8a88ee0 "my.imap.server", port = 143, s = 19,
  state = 0x8097b80, error = 0x0, private = 0xb5eff2c8, input_buffer = 0xb5f03748, bytes_to_remove = 22, ssl = 0xb5f0dd58,
  sasl_conn = 0xb5f10450, sasl_ssf = 0, sasl_maxoutbuf = 0}
 addrinfo = (struct addrinfo *) 0xb5f01648
 line = 0xb5f21c10 "* 39 FETCH (UID 916)"
#4 0x0807e7c0 in ___21_mn_imap_mailbox_authenticated_check (mailbox=0x8a89098) at src/mn-imap-mailbox.gob:1284
 self = (Self *) 0x8a89098
 priv = {mailbox = 0x8a89098, auth_mailbox = 0x8a89098, pi_mailbox = 0x8a89098, session = 0xb5eff254, self = 0x8a89098,
  server_software = 0x0, server_software_supports_idle = 1, numeric_tag = 78, tag = "a077", capabilities = 0xb5f0e378,
  auth_mechanisms = 0x0, authenticated = 1, uidvalidity = 0xb5f03188 "1215789868", num_errors = 0, messages = 0x8a87d18,
  starttls_completed = 1, sasl_remaining_mechanisms = 0x0, sasl_mechanism = 0xb60a72a8 "CRAM-MD5", idle_state = IDLE_STATE_POST_IDLE,
  idle_inactivity_timeout_id = 0, idle_inactivity = 0, could_idle = 1}
 status = 0
 err = (GError *) 0x0
 states = {{id = 1, enter_cb = 0, handle_cb = 0x807cc25 <mn_imap_mailbox_handle_greeting_cb>}, {id = 2,
    enter_cb = 0x807cd83 <mn_imap_mailbox_enter_capability_cb>, handle_cb = 0x807cd9e <mn_imap_mailbox_handle_capability_cb>}, {id = 3,
    enter_cb = 0x807cee7 <mn_imap_mailbox_enter_starttls_cb>, handle_cb = 0x807cf02 <mn_imap_mailbox_handle_starttls_cb>}, {id = 4,
    enter_cb = 0x807cffa <mn_imap_mailbox_enter_authenticate_cb>, handle_cb = 0x807d098 <mn_imap_mailbox_handle_authenticate_cb>}, {
    id = 5, enter_cb = 0x807d1ff <mn_imap_mailbox_enter_login_cb>, handle_cb = 0x807d2f9 <mn_imap_mailbox_handle_login_cb>}, {id = 6,
    enter_cb = 0x807d404 <mn_imap_mailbox_enter_examine_cb>, handle_cb = 0x807d470 <mn_imap_mailbox_handle_examine_cb>}, {id = 7,
    enter_cb = 0x807d613 <mn_imap_mailbox_enter_search_unseen_cb>, handle_cb = 0x807d678 <mn_imap_mailbox_handle_search_unseen_cb>}, {
    id = 8, enter_cb = 0x807d856 <mn_imap_mailbox_enter_search_recent_cb>,
    handle_cb = 0x807d871 <mn_imap_mailbox_handle_search_recent_cb>}, {id = 9, enter_cb = 0x807da53 <mn_imap_mailbox_enter_fetch_uid_cb>,
    handle_cb = 0x807dbe1 <mn_imap_mailbox_handle_fetch_uid_cb>}, {id = 10, enter_cb = 0x807ddc8 <mn_imap_mailbox_enter_fetch_cb>,
    handle_cb = 0x807de99 <mn_imap_mailbox_handle_fetch_cb>}, {id = 11, enter_cb = 0x807e196 <mn_imap_mailbox_enter_idle_cb>,
    handle_cb = 0x807e2dd <mn_imap_mailbox_handle_idle_cb>}, {id = 12, enter_cb = 0x807e619 <mn_imap_mailbox_enter_logout_cb>,
    handle_cb = 0x807e634 <mn_imap_mailbox_handle_logout_cb>}, {id = 0, enter_cb = 0, handle_cb = 0}}
 callbacks = {notice = 0x80811c1 <mn_pi_mailbox_notice_cb>, warning = 0x80811e2 <mn_pi_mailbox_warning_cb>,
  response_new = 0x807e901 <mn_imap_mailbox_response_new_cb>, response_free = 0x807eb1d <mn_imap_mailbox_response_free_cb>,
  pre_read = 0x807ebe4 <mn_imap_mailbox_pre_read_cb>, post_read = 0x807ec4b <mn_imap_mailbox_post_read_cb>,
---Type <return> to continue, or q <return> to quit---
  sasl_get_credentials = 0x8080e6a <mn_pi_mailbox_sasl_get_credentials_cb>,
  ssl_trust_server = 0x8080ed4 <mn_pi_mailbox_ssl_trust_server_cb>}
#5 0x080848bb in mn_authenticated_mailbox_authenticated_check (self=0x8a89098) at mn-authenticated-mailbox.c:644
 klass = (MNAuthenticatedMailboxClass *) 0x8a88300
#6 0x08084850 in mn_authenticated_mailbox_check_thread_cb (self=0x8a89098) at src/mn-authenticated-mailbox.gob:227
No locals.
#7 0xb753daab in g_thread_create_proxy () from /usr/local/lib/libglib-2.0.so.0
No symbol table info available.
#8 0xb72ad1b3 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9 0xb723603e in clone () from /lib/libc.so.6
No symbol table info available.
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) quit
[zlatko@disclosure]:~/usrlocal/src/mail-notification-5.4$

I'll try to get another backtrace to find out if the crash always happens with the same server.

Revision history for this message
Jean-Yves Lefort (jylefort) wrote :

It looks like an invalid object is passed to mn_g_object_clone(), but looking at the code and at the backtrace I have no idea why. If you're able to reproduce this crash, could you please run MN from a terminal with the -i option and send me the resulting output?

Changed in mail-notification:
status: New → Incomplete
Revision history for this message
Thomas Zajic (zlatk0) wrote :
Download full text (10.9 KiB)

It's easy to reproduce, as it happens every time ... ;-) I snipped away all communication with the second server to make it more readable. At the time of the crash, m-n was logged out of the second server (which doesn't support IDLE) and waiting for the next time to check it (every 5 minutes), if that's important.

Here we go:

[zlatko@disclosure]:~/usrlocal/src/mail-notification-5.4$ gdb --args ./build/src/mail-notification -i
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/local/src/mail-notification-5.4/build/src/mail-notification -i
[Thread debugging using libthread_db enabled]
** INFO: ZlatkO @ Home: resolving my.imap.server
** INFO: ZlatkO @ Home: connecting to my.imap.server (192.168.1.3) port 143
** INFO: ZlatkO @ Home: connected successfully
** INFO: ZlatkO @ Home: < * OK [CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS UIDPLUS LIST-EXTENDED I18NLEVEL=1 STARTTLS LOGINDISABLED AUTH=DIGEST-MD5 AUTH=CRAM-MD5] Dovecot ready.
** INFO: ZlatkO @ Home: > a000 STARTTLS
** INFO: ZlatkO @ Home: < a000 OK Begin TLS negotiation now.
13 Jul 2008 17:39:18 +0200 (CEST)
** INFO: ZlatkO @ Home: a SSL/TLS layer is now active (TLSv1, DHE-RSA-AES256-SHA 256-bit)
** INFO: ZlatkO @ Home: > a001 CAPABILITY
** INFO: ZlatkO @ Home: < * CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS UIDPLUS LIST-EXTENDED I18NLEVEL=1 AUTH=PLAIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5
** INFO: ZlatkO @ Home: < a001 OK Capability completed.
** INFO: ZlatkO @ Home: > a002 AUTHENTICATE CRAM-MD5
** INFO: ZlatkO @ Home: < [ authentication snipped ]
** INFO: ZlatkO @ Home: > [ authentication snipped ]
** INFO: ZlatkO @ Home: < a002 OK Logged in.
** INFO: ZlatkO @ Home: > a003 CAPABILITY
** INFO: ZlatkO @ Home: < * CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS UIDPLUS LIST-EXTENDED I18NLEVEL=1
** INFO: ZlatkO @ Home: < a003 OK Capability completed.
** INFO: ZlatkO @ Home: > a004 EXAMINE "INBOX"
** INFO: ZlatkO @ Home: < * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk $Label1 Junk)
** INFO: ZlatkO @ Home: < * OK [PERMANENTFLAGS ()] Read-only mailbox.
** INFO: ZlatkO @ Home: < * 16 EXISTS
** INFO: ZlatkO @ Home: < * 0 RECENT
** INFO: ZlatkO @ Home: < * OK [UIDVALIDITY 1215789868] UIDs valid
** INFO: ZlatkO @ Home: < * OK [UIDNEXT 961] Predicted next UID
** INFO: ZlatkO @ Home: < a004 OK [READ-ONLY] Select completed.
** INFO: ZlatkO @ Home: > a005 SEARCH UNSEEN
** INFO: ZlatkO @ Home: < * SEARCH
** INFO: ZlatkO @ Home: < a005 OK Search completed (0.000 secs).
** INFO: ZlatkO @ Home: > a006 IDLE
** INFO: ZlatkO @ Home: < + idling
** INFO: Zlatk...

Revision history for this message
Jean-Yves Lefort (jylefort) wrote :

Ok, thanks for the output. Since detailed debug info is available I'll mark this as confirmed and investigate later on.

Changed in mail-notification:
importance: Undecided → High
status: Incomplete → Confirmed
Revision history for this message
Jens Janssen (jayjay) wrote :

Same problem on my machine using ubuntu hardy. mail-notification 5.4 crashes a few minutes after login.

Making a shell script which results in a delayed start of mail-notification resolves the problem for me. Connection error after login when using wlan also solved. Perhaps m-n crashes when the first connection attempt goes bad.

#!/bin/sh
sleep 30 && mail-notification --sm-disable

Now mail-notification works like a charm.

Thank You for your nice piece of software!

Revision history for this message
Dario (dario84-deactivatedaccount) wrote :

I have two email accounts and I have noticed this problem only with gmail.

Revision history for this message
Joel J. Adamson (adamsonj) wrote :

After using Jens' solution, I had mail-notification running all night, and then it crashed with this message:

mail-notification: xcb_io.c:176: process_responses: Assertion `!(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0))' failed.
mail-notification: xcb_io.c:176: process_responses: Assertion `!(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0))' failed.
Multiple segmentation faults occurred; can't display error dialog

I'm running Slackware 13.0 with Gnome SlackBuild-current (2.26.3)

Joel

Revision history for this message
Glen Black (glen-h-black) wrote :

I'm getting a reproducible crashing behavior. I'm on Fedora 14 (x86_64) and running mail-notification 5.4-26.fc14. I'm configured for a handful of Gmail accounts only. This consistently causes the crash:

1a: Allow mail-notification to run and notify about existing mail.
1r: mail-notification runs smoothly.

2a: Without bothering mail-notification, read ALL existing items in Gmail inboxes, so there is no new mail; this is the important factor.
2r: mail-notification icon eventually disappears (on its next poll event).

3a: Receive a new mail item in an inbox.
3r: Instead of reappearing with a new mail notification at the next poll event, mail-notification crash is detected by ABRT.

Package: mail-notification-5.4-26.fc14
Latest Crash: Thu 11 Aug 2011 03:41:09 PM
Command: mail-notification --display-properties
Reason: Process /usr/bin/mail-notification was killed by signal 11 (SIGSEGV)
Comment: None
Bug Reports:

As a result, I have a crash on a nearly daily basis.

Workaround: Leave one or more pieces of mail unread in one or more monitored accounts.

todaioan (alan-ar06)
Changed in mail-notification:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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