> > I've done some test to find where libpq hang. It does hang on the
> > call of fe-misc.c line 444. When it hangs, all datas have already been
> > successfully on the socket, so recv should return 0 on a non blocking
> > socket?
> recv should return -1 with errno set to EAGAIN in nonblocking mode when
> no data is available.
OK, it does make sense. But the call to recv just block forever when all
datas are received. I suspect the problem is in cygwin (using cygwin 1.3.1-1
doens't show this problem, but there is the slow update on large fields
> Did you workaround this problem by modifying the PostgreSQL code? If
> so, then please try to determine whether the problem is in Cygwin (most
> likely) or PostgreSQL. If in Cygwin, then please report it to the Cygwin
> list (cygwin(at)cygwin(dot)com) with a small test case, if possible.
Yes, the workaround is a small modification of fe-misc.c to test data
availability before calling recv. I can make a report to cygwin, but I'm not
enought a sockets guru to write a small test case. Perhaps the strace output
of a session which hang at the end migh help them?
> You can find the above at:
This lib also have a problem with large reads, but instead of
hanging completly, an error is returned. I have eared recently some
discussion on Hacker regarding some problems with large queries with win32
libpq. Maybe it's related ?
I'm using win2000 sp2 if it matters.
pgsql-cygwin by date
|Next:||From: Bruce Momjian||Date: 2001-08-21 20:41:35|
|Subject: Re: PostgreSQL CVS does not compile under Cygwin (was Re: Cygwin test
|Previous:||From: Tigran||Date: 2001-08-21 18:31:10|
|Subject: Re: new install|