Ticket #266 (closed defect: fixed)

Opened 6 years ago

Last modified 5 years ago

Gobby 0.4.3 segfault on join session

Reported by: greendragon37@… Owned by: armin
Priority: normal Milestone:
Component: Gobby Version:
Severity: major Keywords: segfault join session
Cc: Launchpad Bug:

Description

Gobby 0.4.3 installed on Slackware Linux. When connecting to a remote session, program segfaults.

Backtrace attached.

Attachments

0001-Fixing-segfaults-when-gobby-is-compiled-with-ZeroCon.patch (1.7 kB) - added by Yannick_LM 5 years ago.
git patch

Change History

  Changed 6 years ago by armin

Sorry, I don't see any backtrace. I cannot reproduce the problem, either. What versions of obby and net6 are used by server and client?

  Changed 6 years ago by greendragon37@…

Client and server are both net6 1.3.4 and obby 0.4.4. Client is running on slackware 10.2, server on ubuntu feisty. Connecting the windows client to the server works fine, and the server does actually see the client connect for a split second. A client on fiesty to the server also works.

I can't seem to actually post the backtrace, it keeps getting rejected as potential spam. I'll try attaching it again.

in reply to: ↑ description   Changed 5 years ago by Yannick_LM

Hi, same problem here.

Zeroconf initialisation failed. Probably you need to run avahi-daemon or mDNSResponder, depending on the library you use, as root prior to Gobby. Zeroconf support is deactivated for this session.
**
gtkmm:ERROR:treeiter.cc:149:bool Gtk::TreeIter::equal(const Gtk::TreeIter&) const: assertion failed: (model_ == other.model_)

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6d2e6d0 (LWP 17440)]
0xb8061424 in __kernel_vsyscall ()
(gdb) bt
#0  0xb8061424 in __kernel_vsyscall ()
#1  0xb7076720 in raise () from /lib/libc.so.6
#2  0xb7078058 in abort () from /lib/libc.so.6
#3  0xb732d17c in g_assertion_message () from /usr/lib/libglib-2.0.so.0
#4  0xb732d5cd in g_assertion_message_expr () from /usr/lib/libglib-2.0.so.0
#5  0xb7dee0b4 in Gtk::TreeIter::equal () from /usr/lib/libgtkmm-2.4.so.1
#6  0x080c13c1 in Gobby::JoinDialog::get_address (this=0x8d315b0)
    at /usr/include/gtkmm-2.4/gtkmm/treeiter.h:222
#7  0x0810f0d4 in Gobby::Window::session_join (this=0xbfc7bd20, 
    initial_dialog=true) at src/window.cpp:1241
#8  0x0810f309 in Gobby::Window::on_session_join (this=0xbfc7bd20)
    at src/window.cpp:443
#9  0xb7acf152 in Glib::SignalProxyNormal::slot0_void_callback ()
   from /usr/lib/libglibmm-2.4.so.1
#10 0xb739d254 in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#11 0xb738fbd3 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#12 0xb73a44d5 in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
#13 0xb73a5364 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#14 0xb73a57c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#15 0xb75815f5 in _gtk_action_emit_activate ()
   from /usr/lib/libgtk-x11-2.0.so.0
#16 0xb75825d4 in gtk_action_activate () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) frame 8
#8  0x0810f309 in Gobby::Window::on_session_join (this=0xbfc7bd20)
    at src/window.cpp:443
443		session_join(true);
(gdb) down
#7  0x0810f0d4 in Gobby::Window::session_join (this=0xbfc7bd20, 
    initial_dialog=true) at src/window.cpp:1241
1241			const net6::address* addr = m_join_dlg->get_address();
(gdb) down
#6  0x080c13c1 in Gobby::JoinDialog::get_address (this=0x8d315b0)
    at /usr/include/gtkmm-2.4/gtkmm/treeiter.h:222
222	  { return !lhs.equal(rhs); }

Doing a /etc/init.d/avahi-daemon start solves the problem ...

Changed 5 years ago by Yannick_LM

git patch

  Changed 5 years ago by Yannick_LM

Here is a patch that fixed the problem for me.

HTH

  Changed 5 years ago by armin

I think the original reporter refers to a different bug since he says "and the server does actually see the client connect for a split second." The Bug fixed by your patch however already segfaults before a connection attempt.

However, thanks for the patch anyway. I'll commit your changes to joindialog.cpp (in a slightly modified form to fit my taste). I don't think the change to window.cpp is correct though: It is allowed that the address is NULL, for example when entering a hostname directly without zeroconf. Does it still crash for you when you omit that part of the patch?

  Changed 5 years ago by armin

  • status changed from new to closed
  • resolution set to fixed

Fixed in [404dd8435cecf6f9de866b9b0d51b3db4bb1aa5c].

I'm closing this bug now. If the original problem is still present in Gobby 0.4.7, please open a new bug.

Note: See TracTickets for help on using tickets.