From: | Valentin Bogdanov <valiouk(at)yahoo(dot)co(dot)uk> |
---|---|
To: | ext Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "K, Niranjan \(NSN - IN/Bangalore\)" <niranjan(dot)k(at)nsn(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: Psql or test application hangs when interface is down for the DB server |
Date: | 2008-07-16 14:52:50 |
Message-ID: | 266574.35866.qm@web25806.mail.ukl.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
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) <niranjan(dot)k(at)nsn(dot)com> wrote:
> From: K, Niranjan (NSN - IN/Bangalore) <niranjan(dot)k(at)nsn(dot)com>
> Subject: Re: [BUGS] Psql or test application hangs when interface is down for the DB server
> To: "ext Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
> Cc: pgsql-bugs(at)postgresql(dot)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:tgl(at)sss(dot)pgh(dot)pa(dot)us]
> Sent: Tuesday, July 15, 2008 8:16 PM
> To: K, Niranjan (NSN - IN/Bangalore)
> Cc: pgsql-bugs(at)postgresql(dot)org
> Subject: Re: [BUGS] Psql or test application hangs when
> interface is
> down for the DB server
>
> "K, Niranjan (NSN - IN/Bangalore)"
> <niranjan(dot)k(at)nsn(dot)com> 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(at)postgresql(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Gregory Stark | 2008-07-16 17:33:23 | Re: Psql or test application hangs when interface is down for the DB server |
Previous Message | Tom Lane | 2008-07-16 14:33:07 | Re: Psql or test application hangs when interface is down for the DB server |