After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 478038 - Tried to create a meeting on the Exchange server, and Evo crashed when adding an address
Tried to create a meeting on the Exchange server, and Evo crashed when adding...
Status: RESOLVED OBSOLETE
Product: evolution
Classification: Applications
Component: Calendar
2.12.x (obsolete)
Other All
: Normal critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2007-09-18 13:46 UTC by Paul Smith
Modified: 2010-07-02 02:00 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Paul Smith 2007-09-18 13:46:13 UTC
Steps to reproduce:
1. Select a time in the Evo calendar
2. Right click, use "New Meeting" to create a meeting
3. Click "Attendees" button to get the attendees dialog
4. Change the address book to "Global Address List"
5. Enter a name; in my case it was a mailing list name.
6. In the "Contacts" list select the name and add it to the "Optional Participants" list.  Strangely, it showed up with <?> as the email address even though I can send normal email to that address
7. Click "Close".

Core dump


Stack trace:
(gdb) bt
  • #0 strcmp
    from /lib/tls/i686/cmov/libc.so.6
  • #1 g_str_equal
    from /usr/lib/libglib-2.0.so.0
  • #2 process_section
    at e-meeting-list-view.c line 715
  • #3 name_selector_dialog_close_cb
    at e-meeting-list-view.c line 859
  • #4 g_cclosure_marshal_VOID
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #6 ??
    from /usr/lib/libgobject-2.0.so.0
  • #7 ??
  • #8 ??
  • #2 process_section
    at e-meeting-list-view.c line 715

(gdb) p uri
$2 = 0x0


Whoops!!

Other information:
This is reproducible.  I've built the latest versions on the branches/gnome-2-20 branch in SVN for Evo and all components (libsoup, gtkhtml, e-d-s, evo, evo-exchange, evo-webcal) as of the end of the day on 17 Sep 2007.
Comment 1 André Klapper 2008-01-03 14:02:58 UTC
is this still an issue?
Comment 2 Paul Smith 2008-01-04 03:53:07 UTC
Yes, this still happens with a build from the SVN trunk as of about 8pm tonight (03 Jan 2008).  Not on every address, but there's at least one where it happens consistently.

Exact same symptoms as above.  I include a new stack trace but the problem is the same (NULL uri being passed to g_str_equal()):

(gdb) bt
  • #0 strcmp
    from /lib/tls/i686/cmov/libc.so.6
  • #1 g_str_equal
    from /usr/lib/libglib-2.0.so.0
  • #2 process_section
    at e-meeting-list-view.c line 721
  • #3 name_selector_dialog_close_cb
    at e-meeting-list-view.c line 866
  • #4 g_cclosure_marshal_VOID
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #6 ??
    from /usr/lib/libgobject-2.0.so.0
  • #7 ??
  • #8 ??
  • #2 process_section
    at e-meeting-list-view.c line 721
$1 = 0x0
Comment 3 Srinivasa Ragavan 2008-01-22 10:35:34 UTC
Paul, can you do a *b and *b->priv on gdb and paste the o/p here?

Also what are the books you have for autocompletion?
Comment 4 Paul Smith 2008-01-22 13:03:34 UTC
Sure:

Core was generated by `/opt/evo/bin/evolution'.
Program terminated with signal 11, Segmentation fault.
  • #0 strcmp
    from /lib/tls/i686/cmov/libc.so.6
  • #0 strcmp
    from /lib/tls/i686/cmov/libc.so.6
  • #1 g_str_equal
    from /usr/lib/libglib-2.0.so.0
  • #2 process_section
    at e-meeting-list-view.c line 721
  • #3 name_selector_dialog_close_cb
    at e-meeting-list-view.c line 866
  • #4 g_cclosure_marshal_VOID
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #6 ??
    from /usr/lib/libgobject-2.0.so.0
  • #7 ??
  • #8 ??
  • #2 process_section
    at e-meeting-list-view.c line 721
$1 = {parent = {g_type_instance = {g_class = 0x87a6218}, ref_count = 2, 
    qdata = 0x9469a60}, priv = 0x94df760}
(gdb) p *b->priv
$2 = {cap = 0x0, cap_queried = 0, writable = 0, connected = 1, 
  listener = 0x94df260, comp_listener = 0x9489e20, corba_book = 0x94596a0, 
  load_state = E_BOOK_SOURCE_LOADED, pending_idles = 0x0, 
  id_to_op = 0x946b9c0, current_op_id = 7, mutex = 0x9458888, 
  uri = 0x9470e38 "gal://psmith;auth=NTLM@webmail.mycorp.com/gal", 
  source = 0x93e1ad0, listener_signal = 35636, died_signal = 35637, 
  writable_idle_id = 0, connection_idle_id = 0, auth_idle_id = 0}
(gdb) 

I have the Exchange global address list, the Exchange contacts list, and my personal (local) contacts list enabled for autocompletion.  Does it matter what I have selected for this?  When I'm using the Attendees dialog it has me select a specific book (note this core does NOT happen if you add attendees directly to the meeting; you have to click the Attendees button to get the attendees dialog).
Comment 5 Srinivasa Ragavan 2008-01-22 13:11:58 UTC
can you do a p *uri , *contact *contact->priv . Sorry to bug you much. 
Comment 6 Paul Smith 2008-01-22 13:28:35 UTC
Well, (see above) uri is NULL (that's why we have a core) so *uri doesn't do much :-)

(gdb) p contact
$1 = (EContact *) 0x8e69a60
(gdb) p *contact
$2 = {parent = {parent = {g_type_instance = {g_class = 0x8879b78}, 
      ref_count = 2, qdata = 0x0}, priv = 0x946a018}, priv = 0x94bcc00}
(gdb) p *contact->priv
$3 = {cached_strings = {0x0, 0x949c2e0 "CN=ADDR,CN=Users,DC=mycorp,DC=com", 
    0x94df970 "ADDR", 0x0 <repeats 116 times>}}
(gdb) p uri
$4 = 0x0

where ADDR is the "short name" of the mailing list I'm adding to the attendees list.
Comment 7 Srinivasa Ragavan 2008-01-22 13:54:17 UTC
Hmm, that says why it was crashing. Thx paul. I'll see if I can reproduce it.
Comment 8 Milan Crha 2008-07-02 13:42:53 UTC
I cannot reproduce it, and I do not know why. I tried what I thought it would help with reproducibility, but no way. Paul, do you remember from which address book you get the contact. I tried creating a contact list on the Exchange calendar, but no luck. And doing same on local address book doesn't cause a crash.

From the code itself, it uses a contact's value E_CONTACT_BOOK_URI, and similar code can be found in evolution/calendar/gui/dialogs/memo-page.c , but these are only two places using this value. Same as in EDS, this values sets only groupwise backend, so it's obvious why it came to be NULL. (I checked for direct usages of this values, I doubt there is any indirect usage).
Comment 9 Akhil Laddha 2010-04-01 05:45:07 UTC
NEEDINFO, awaiting a response on comment#8

Paul, could you please try against evolution 2.28.3 or evolution 2.30.0 and report back, thanks.
Comment 10 Tobias Mueller 2010-05-19 08:23:26 UTC
Paul, could you address questions raised in comment #8?
Comment 11 Akhil Laddha 2010-07-02 02:00:11 UTC
Please feel free to reopen the bug if the problem still occurs with a newer
version of GNOME 2.30.2 or later, thanks.