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

Reply via email to