vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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@mailblocks.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 > > > > > > > ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org |
| |||
| 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@mailblocks.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 >>> >>> >>> >>> >> >> >> ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster |
| ||||
| On Thu, Sep 29, 2005 at 11:43:37PM +0200, Thomas Hallgren wrote: > 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. Hmm ... how many processes? Did you enable autovacuum perchance? If so, does the number of processes correspond approximately to the "autovacuum_naptime"? -- Alvaro Herrera http://www.advogato.org/person/alvherre "La espina, desde que nace, ya pincha" (Proverbio africano) ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |
| Thread Tools | |
| Display Modes | |
|
|