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 593414 - SIGSEGV @ socket-impl-gio.cc:502 (abort_flag)
SIGSEGV @ socket-impl-gio.cc:502 (abort_flag)
Status: RESOLVED DUPLICATE of bug 594712
Product: Pan
Classification: Other
Component: general
0.13.3
Other Linux
: Normal normal
: ---
Assigned To: Charles Kerr
Pan QA Team
Depends on:
Blocks:
 
 
Reported: 2009-08-28 17:46 UTC by Heinrich Müller
Modified: 2009-09-10 04:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
backtrace of error (6.66 KB, text/plain)
2009-09-05 14:05 UTC, Heinrich Müller
Details
runlog (extract) (24.93 KB, application/octet-stream)
2009-09-06 11:05 UTC, Heinrich Müller
Details

Description Heinrich Müller 2009-08-28 17:46:15 UTC
OS: 64 bit ubuntu jaunty 9.04, latest version from SVN. 



socket-impl-gio.cc:
if (_abort_flag)
 {
   _listener->on_socket_abort (this);
 }
 else if (!(cond & (G_IO_IN | G_IO_OUT)))
 {
   _listener->on_socket_error (this);
 }
 else // G_IO_IN or G_IO_OUT
 {
   const DoResult result = (cond & G_IO_IN) ? do_read () : do_write ();
   /*  if (_abort_flag)        _listener->on_socket_abort (this);
   else*/ if (result == IO_ERR)   _listener->on_socket_error (this);
   else if (result == IO_READ)  set_watch_mode (READ_NOW);
   else if (result == IO_WRITE) set_watch_mode (WRITE_NOW);
 }

uncommenting line above leads to random segfaults on my machine.
in my opinion polling the status of "abort_flag" is done twice (unneeded).
commenting this out leads to no segfaults, perfectly working (at least the
hours i tried until today)

it seems that the second request for _abort_flag triggers the segfault.

output from gdb is this:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f61faa28790 (LWP 12446)]
0x000000000052431a in pan::GIOChannelSocket::gio_func (this=0x3281b60,
   channel=0x8e98340, cond=G_IO_IN) at socket-impl-gio.cc:502
502             if (_abort_flag)        _listener->on_socket_abort (this);
Comment 1 Heinrich Müller 2009-08-28 17:47:16 UTC
pan version is 0.133
Comment 2 Heinrich Müller 2009-09-05 14:05:33 UTC
Created attachment 142539 [details]
backtrace of error
Comment 3 Heinrich Müller 2009-09-06 11:05:19 UTC
Created attachment 142590 [details]
runlog (extract)
Comment 4 Heinrich Müller 2009-09-10 04:45:54 UTC

*** This bug has been marked as a duplicate of bug 142852 ***
Comment 5 Heinrich Müller 2009-09-10 04:48:03 UTC

*** This bug has been marked as a duplicate of bug 594712 ***