Tom Ivar Helbekkmo <[email protected]> writes:

> I'm seeing occasional occurrences of 'Malformed "D" message received.",
> and I don't think it's an actual database problem, because it seems to
> be related to system load and query complexity.  (I'm running PostgreSQL
> and Archiveopteryx on an old Dell 2850.)

Reading the code, I'm afraid I eventually gave up on understanding the
details of how Archiveopteryx actually talks to PostgreSQL, but I did
find one place where a timeout *seemed* to be set by giving the RDBMS an
extra five seconds every time a (possibly partial) response was
received.

On a hunch, I made the following change, and, so far, it seems to work:

diff --git a/db/postgres.cpp b/db/postgres.cpp
index 2809c440..139a53f3 100644
--- a/db/postgres.cpp
+++ b/db/postgres.cpp
@@ -503,7 +503,7 @@ void Postgres::process( char type )
     if ( q && q->log() )
         x.setLog( q->log() );
 
-    extendTimeout( 5 );
+    extendTimeout( 30 );
 
     switch ( type ) {
     case '1':

-tih
-- 
Most people who graduate with CS degrees don't understand the significance
of Lisp.  Lisp is the most important idea in computer science.  --Alan Kay

Reply via email to