Hi,
I'm Sorry, Time was short today. To answer your questions.
1. I can run a psql and other client programs. Everything works fine.
But while doing it, I get a lot of zombies in the tcpview and
eventually, I think I run out of ports. Psql just hangs when I try to
connect. When that happens, I have two choices; a) Stop the service and
then kill off all processes by hand (there's now a *lot* of them), or b)
reboot.
2. It happens while the postmaster is idle. If I leave it idle for a
while and then come back, I'll have a whole bunch of new processes in my
task-manager and zombies in tcpview.
3. I don't have another machine handy for this right now.
It sounds like you know where it happens. Martijn requested a
stacktrace. Do you still need that? If you do, I'll try to get some time
over this weekend.
Regards,
Thomas Hallgren
Magnus Hagander wrote:
Hmm. Bummer.
Anyway. The netstat indicates that the pipe() call works. The order is
pretty much:
parent: create socket pair, connected to each other.
parent: Duplicate socket [this is what fails]
parent: close own copy of socket
child: recreate socket from structure [this is never called, thus the
new socket is never "attached" to a process]
Now *why* it's doing this, I hav eno idea.
Questions:
1) Does it actually work? ;-) And just logs the error anyway?
2) Does this happen on *every* connection?
3) Can you reproduce this on a different machine, or just one?
//Magnus
-----Original Message-----
From: Thomas Hallgren [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 29, 2005 9:48 AM
To: Magnus Hagander
Cc: PostgreSQL-development
Subject: Re: [HACKERS] Socket problem using beta2 on Windows-XP
Nope, no anti-virus and no firewall (other then the box that
fronts my home-network to the outside world).
- thomas
Magnus Hagander wrote:
Hi,
I've installed PostgreSQL 8.1-beta2 as a service on my
Windows-XP box.
It runs fine but I get repeated messages like this in the log:
2005-09-29 00:41:09 FATAL: could not duplicate socket
1880 for use
in backend: error code 10038
and for each message printed, a new postgres process is created. To
make things worse, those processes do not die when I stop
the service.
I use sysinternals tcpview to monitor my sockets. I know
that no other
process is using 1880. Each started postgres process will
occupy two,
seemingly random ports that apparently form a loop somehow.
This is a
typical entry:
<non-existent>:3136 TCP 127.0.0.1:1554
127.0.0.1:1555 ESTABLISHED
<non-existent>:3136 TCP 127.0.0.1:1555
127.0.0.1:1554 ESTABLISHED
The weird thing is that there is no process with pid 3136
(hence the
name <non-existent>). There is a postgres process with
another pid in
my process listing. If I kill that, the <non-existstent> entries go
away.
Looks like pid 3136 is talking to itself. A pipe() followed
by failure
to start the new process perhaps?
Do you by any chance run any antivirus or firewall software?
If so, can
you try removing it (note! actual uninstall, not just disabling it!)
//Magnus
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster