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 172029 - Crash when clicking connect with no account
Crash when clicking connect with no account
Status: RESOLVED FIXED
Product: gossip
Classification: Deprecated
Component: General
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Gossip Maintainers
Gossip Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-03-29 21:09 UTC by Bastien Nocera
Modified: 2005-05-08 14:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fixes the bug. (30.63 KB, patch)
2005-04-27 20:40 UTC, Martyn Russell
none Details | Review
Reworked to fit in with the new code reorg. (30.86 KB, patch)
2005-05-07 12:05 UTC, Martyn Russell
none Details | Review

Description Bastien Nocera 2005-03-29 21:09:15 UTC
Against current CVS HEAD

1. Apply the 2 patches I sent to the ML tonight to avoid crashes on startup
2. Make sure that no accounts were created or setup using Gossip
3. Cancel the first-time wizard
4. Click on "Connect" in the Chat window
5. Segfault

  • #0 gossip_connect_dialog_show
    at gossip-connect-dialog.c line 141
  • #1 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #2 IA__g_closure_invoke
    at gclosure.c line 437
  • #3 signal_emit_unlocked_R
    at gsignal.c line 2485
  • #4 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #5 IA__g_signal_emit
    at gsignal.c line 2288
  • #6 IA__gtk_widget_activate
    at gtkwidget.c line 3662
  • #7 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 943
  • #8 gtk_menu_shell_button_release
    at gtkmenushell.c line 556
  • #9 gtk_menu_button_release
    at gtkmenu.c line 2550
  • #10 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #11 g_type_class_meta_marshal
    at gclosure.c line 514
  • #12 IA__g_closure_invoke
    at gclosure.c line 437
  • #13 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #14 IA__g_signal_emit_valist
    at gsignal.c line 2254
  • #15 IA__g_signal_emit
    at gsignal.c line 2288
  • #16 gtk_widget_event_internal
    at gtkwidget.c line 3631
  • #17 IA__gtk_propagate_event
    at gtkmain.c line 2145
  • #18 IA__gtk_main_do_event
    at gtkmain.c line 1383
  • #19 gdk_event_dispatch
    at gdkevents-x11.c line 2220
  • #20 IA__g_main_context_dispatch
    at gmain.c line 1947
  • #21 g_main_context_iterate
    at gmain.c line 2578
  • #22 IA__g_main_loop_run
    at gmain.c line 2782
  • #23 IA__gtk_main
    at gtkmain.c line 963
  • #24 main
    at gossip-main.c line 170

Comment 1 Bastien Nocera 2005-03-29 22:15:20 UTC
The "Connect..." button probably shouldn't be available if no accounts have been
setup. I have no idea where to plug this stuff in though.
Comment 2 Martyn Russell 2005-04-24 09:39:10 UTC
I would say that might be slightly confusing and that perhaps on Connect if
there is no account, the accounts dialog should be shown instead? At the very
least a dialog box telling the user why they can not connect. 
Comment 3 Martyn Russell 2005-04-27 20:40:26 UTC
Created attachment 45756 [details] [review]
Fixes the bug.

This patch does a few things:

* Stops the crash from occuring.
* Added dialog to tell the user they can't connect when there are no accounts
set up and then take them to the accounts dialog.
* Makes it able to now change the account settings and connect to a server
without needing to restart the client first.

Basically to do this, the GossipProtocol code needs to send the account
information up just before a login is attempted.  What I have done is added a
gossip_protocol_setup() function which the backend implements and that gets
passed the GossipAccount.  Not sure if this could be done better using basic
constructors of the init functions here?

Also - just a thought, but the GossipProtocols are iterated and initiated that
way, wouldn't it be better to iterate the GossipAccounts (which perhaps should
have a protocol associated with them) and initiate that way?
Comment 4 Bastien Nocera 2005-05-02 15:47:30 UTC
Great work Martyn.
Comment 5 Mikael Hallendal 2005-05-05 14:55:04 UTC
Martyn, great, could this be reworked to apply to the new structure too?

Cheers,
Comment 6 Martyn Russell 2005-05-07 12:05:34 UTC
Created attachment 46128 [details] [review]
Reworked to fit in with the new code reorg.
Comment 7 Martyn Russell 2005-05-08 14:00:28 UTC
Fixed without the changes to gossip_startup_druid which are unused.