Re: Socket problem using beta2 on Windows-XP

From: Thomas Hallgren <thhal(at)mailblocks(dot)com>
To: Magnus Hagander <mha(at)sollentuna(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Socket problem using beta2 on Windows-XP
Date: 2005-09-29 21:43:37
Message-ID: thhal-0jPgXBKGn8bQb2BpcCE3pDDNgOtXjX9@mailblocks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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:thhal(at)mailblocks(dot)com]
>>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
>>>
>>>
>>>
>>>
>>
>>
>>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-09-29 21:50:47 Re: horology regression test failure
Previous Message Tatsuo Ishii 2005-09-29 21:41:50 Re: pgbench: undefined reference to strndup()