Re: RE: PostgreSQL and Unicode - Mailing list pgsql-hackers

From Tatsuo Ishii
Subject Re: RE: PostgreSQL and Unicode
Date
Msg-id 20000517100701W.t-ishii@sra.co.jp
Whole thread Raw
In response to Re: RE: PostgreSQL and Unicode  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: RE: PostgreSQL and Unicode  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
> > What about adding KEEPALIVE option to the socket?
> 
> Of course, since whatever OS he's using on the client side is too broken
> to notice that the socket is orphaned and close it, it might be so
> broken as to respond to the keepalive pings :-(.  Still, it'd be an easy
> thing to try...
> 
> Even though the stated case sounds more like an OS bug than anything
> else, setting KEEPALIVE on our TCP connections is probably still a good
> idea.  If the client machine were to crash completely then it wouldn't
> be reasonable to expect it to close the connection, and we'd want to
> have some method of ensuring that the connected backend shuts down
> eventually.  KEEPALIVE seems sufficiently low-overhead (and easy to
> implement) to be the right answer for this scenario.

Ok. Here are patches against 7.0. BTW, does this break some platforms
such as Windows NT or QUNX4?

*** postgresql-7.0/src/backend/libpq/pqcomm.c.orig    Tue May 16 18:06:42 2000
--- postgresql-7.0/src/backend/libpq/pqcomm.c    Wed May 17 08:23:09 2000
***************
*** 375,381 ****         if (setsockopt(port->sock, pe->p_proto, TCP_NODELAY,                        &on, sizeof(on)) <
0)        {
 
!             perror("postmaster: StreamConnection: setsockopt");             return STATUS_ERROR;         }     }
--- 375,387 ----         if (setsockopt(port->sock, pe->p_proto, TCP_NODELAY,                        &on, sizeof(on)) <
0)        {
 
!             perror("postmaster: StreamConnection: setsockopt(TCP_NODELAY)");
!             return STATUS_ERROR;
!         }
!         if (setsockopt(port->sock, SOL_SOCKET, SO_KEEPALIVE,
!                        &on, sizeof(on)) < 0)
!         {
!             perror("postmaster: StreamConnection: setsockopt(SO_KEEPALIVE)");             return STATUS_ERROR;
}     }
 


pgsql-hackers by date:

Previous
From: "Michael A. Olson"
Date:
Subject: Re: Berkeley DB license
Next
From: "Michael A. Olson"
Date:
Subject: Re: Berkeley DB license