[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pan-devel] [PATCH] Pan crashes during fetch-headers, possible workaroun

From: SciFi
Subject: [Pan-devel] [PATCH] Pan crashes during fetch-headers, possible workaround patch…
Date: Sat, 28 Aug 2010 01:01:12 +0000 (UTC)
User-agent: Pan/0.133 (House of Butterflies; GIT 92b33b5 testing)


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 [staying away from Guugle™] to search for
> pan::GIOChannelSocket::gio_func
and got only a couple hits.
The one here seems quite spot-on:
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/      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 */
+    /*     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?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]