I have noticed this as well. Blocks in poll(), timeout parameter -1, meaning 
infinite then after 4 minutes on my system poll() returns 1 and 
getsockopt() is called with SO_ERROR. SYN packets are tried only for the 
default tcp timeout of 20 seconds.

Consider using threads that way you can set your own timeout value.


Regards

Val

--- On Wed, 16/7/08, K, Niranjan (NSN - IN/Bangalore) <[EMAIL PROTECTED]> wrote:

> From: K, Niranjan (NSN - IN/Bangalore) <[EMAIL PROTECTED]>
> Subject: Re: [BUGS] Psql or test application hangs when interface is down for 
> the DB server
> To: "ext Tom Lane" <[EMAIL PROTECTED]>
> Cc: pgsql-bugs@postgresql.org
> Date: Wednesday, 16 July, 2008, 6:55 AM
> Currently the test application or the psql will unblock
> after ~15
> minutes. This is a very huge time to realize for programs
> this situation
> which do database updates.
> As far as I have debugged, I see that the execution is
> waiting on
> 'poll()' system call in the function pqSocketPoll()
> which is called as a
> result of 'PQexec()' and the timeout paramater
> provided will be -1,
> which means infinite wait time. It not clear how this is
> getting
> unblocked after 15 minutes. Who will write to the socket or
> who will
> interrupt the poll() system call?
> 
> Is there any other workaround or alternative so that the
> situation about
> the interface is down is known and based on that the
> 'PQexec' does not
> get blocked for ~15 minutes.
> 
> regards,
> Niranjan
> 
> -----Original Message-----
> From: ext Tom Lane [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 15, 2008 8:16 PM
> To: K, Niranjan (NSN - IN/Bangalore)
> Cc: pgsql-bugs@postgresql.org
> Subject: Re: [BUGS] Psql or test application hangs when
> interface is
> down for the DB server 
> 
> "K, Niranjan (NSN - IN/Bangalore)"
> <[EMAIL PROTECTED]> writes:
> > In the postgres database there is table
> 'COUNTER_TABLE' with column 
> > integer type 'COUNTER'. The test application
> attached in this mail, 
> > will start a transaction, gets the current value in
> the COUNTER, 
> > increments the value and updates the incremented value
> into the
> COUNTER column.
> > This is being done in a loop. The program is started
> in a remote 
> > client and after few transactions, the interface
> between the client & 
> > the database server is brought down (example I used
> "ifconfig eth0 
> > down" in the server). With this the test
> application hangs and does 
> > not return from the API of postgres (ex.
> 'PQexec').
> 
> If you waited long enough for the TCP connection to time
> out, it would
> return (with an error, of course).  This behavior is not a
> bug, it is
> the expected behavior of any program using a network
> connection.
> 
>                       regards, tom lane
> 
> -- 
> Sent via pgsql-bugs mailing list
> (pgsql-bugs@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs


      __________________________________________________________
Not happy with your email address?.
Get the one you really want - millions of new email addresses available now at 
Yahoo! http://uk.docs.yahoo.com/ymail/new.html

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to