Обсуждение: Re: ps and psql from PostgreSQL not working with cygwin-1.1.5-2
Chris,
On Tue, Oct 31, 2000 at 11:48:31AM -0500, Christopher Faylor wrote:
> I can't duplicate the ps problem and I don't use psql.exe so, unless someone
> can debug this, or provide more details, this will be a problem that is in
> 1.1.5.
Here is the requested details regarding the psql.exe problem. There is
difference in how non-blocking socket connects (i.e. using fcntl to
set O_NONBLOCK) are handled in 1.1.4 and 1.1.5-3. Specifically, in
1.1.4 connect returns 0, while in 1.1.5-3 connect returns -1 with errno
set to EAGAIN (i.e. No more processes). BTW, by reading the Solaris
man page for connect, 1.1.4 may not have got it quite right either.
connect should return -1 with errno set to EINPROGRESS for non-blocking
connects that cannot be established immediately.
Attached is code to duplicate the problem. Try running the client on a
1.1.5-3 machine, the server can run on any machine:
$ server -p 13131&
$ client -h <YourServerHostName> -p 13131
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corporation Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Вложения
This problem was introduced sometime between the 10/22/00 and 10/23/00
snapshots, since the DLL from the former does not exhibit the problem
and the latter does. Reading the ChangeLog, I conclude (possibly
erroneously) that the following are the most likely candidates:
Mon Oct 23 22:27:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_base::fcntl): Setting flags in F_SETFL
branch according to Linux documentation.
Mon Oct 23 21:43:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fcntl.cc (_fcntl): Rearrange as wrapper function. Move all
functionality except F_DUPFD to fhandler classes.
* fhandler.cc (fhandler_base::fcntl): New method.
* net.cc (fhandler_socket::fcntl): Ditto.
* fhandler.h (class fhandler_base): Add method prototype for fcntl().
(class fhandler_socket): Ditto.
I tried to figure out exactly what the problem was, but so far I have
been unsuccessful. Hopefully, the above will help those more intimate
with the code to locate and fix the problem.
Thanks,
Jason
--
Jason Tishler
Director, Software Engineering Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corporation Fax: +1 (732) 264-8798
82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA WWW: http://www.dothill.com