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 594712 - SIGSEGV @ socket-impl-gio.cc:502 (abort_flag)
SIGSEGV @ socket-impl-gio.cc:502 (abort_flag)
Status: RESOLVED DUPLICATE of bug 478619
Product: Pan
Classification: Other
Component: general
pre-1.0 betas
Other Linux
: Normal normal
: ---
Assigned To: Charles Kerr
Pan QA Team
: 593414 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-09-10 04:44 UTC by Heinrich Müller
Modified: 2009-09-26 20:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
backtrace of error (6.66 KB, application/octet-stream)
2009-09-10 04:44 UTC, Heinrich Müller
Details
runlog extract (24.93 KB, application/octet-stream)
2009-09-10 04:45 UTC, Heinrich Müller
Details

Description Heinrich Müller 2009-09-10 04:44:55 UTC
Created attachment 142851 [details]
backtrace of error

sorry for crossposting this, put it in the wrong "bin"
so to say, Bug 593414 is a dupe of this one.

OS: 64 bit ubuntu jaunty 9.04, latest version from SVN. (rev 370)



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-09-10 04:45:18 UTC
Created attachment 142852 [details]
runlog extract
Comment 2 Heinrich Müller 2009-09-10 04:46:35 UTC
removed other bug report, sorry
Comment 3 Heinrich Müller 2009-09-10 04:48:03 UTC
*** Bug 593414 has been marked as a duplicate of this bug. ***
Comment 4 Charles Kerr 2009-09-26 20:03:18 UTC

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