[PATCH] Pan crashes during fetch-headers, possible workaround patch…

SciFi <[email protected]>
Newsgroups gmane.comp.gnome.apps.pan.devel
Message-ID <[email protected]>

Hi,

Suddenly over the past few days, I’m getting a similar Pan crash that
I’ve seen in the past.  It seems to happen during fetching new headers,
not all the time tho (perhaps the header is “already sent” on a restart,
so we are skipping around it/them in that manner), yet my gut feeling is
some kind of post(er) is (knowingly?) causing it out in the public arena
(I use GN and AW both) — funny how it seems to occur more often when
school/college starts [I do luv conspiracy theories <lol>].

A snip from my OSX crashreport:
>>>>
[…]
Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000011
Crashed Thread:  0

Thread 0 Crashed:
0   pan                           	0x0010128c pan::GIOChannelSocket::gio_func(_GIOChannel*, GIOCondition) + 172
1   libglib-2.0.0.dylib           	0x00ea9688 g_main_context_dispatch + 440
[…]
<<<<
(I can send the whole report if it’s needed)

I used Ask.com [staying away from Guugle™] to search for
> pan::GIOChannelSocket::gio_func
and got only a couple hits.
The one here seems quite spot-on:
> http://ubuntuforums.org/showthread.php?t=1116729
So I put this modification on, and will be testing it:

>>>>
--- ./pan/tasks/socket-impl-gio.cc_orig	2010-08-27 18:57:21 -0500
+++ ./pan/tasks/socket-impl-gio.cc	2010-08-27 18:58:57 -0500
@@ -500,8 +500,9 @@ GIOChannelSocket :: gio_func (GIOChannel
   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);
+		/* per http://ubuntuforums.org/showthread.php?t=1116729 */
+    /*     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);
   }
<<<<
… i.e. commenting–out the “if (_abort_flag)” piece.

Any (other) ideas?

Thanks.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.