Re: Unsuccessful SIGINT
От | Brian Wipf |
---|---|
Тема | Re: Unsuccessful SIGINT |
Дата | |
Msg-id | 488E022C-59FB-4409-90E2-1E894FA35169@clickspace.com обсуждение исходный текст |
Ответ на | Re: Unsuccessful SIGINT ("Albe Laurenz" <all@adv.magwien.gv.at>) |
Список | pgsql-general |
On 4-Dec-06, at 1:43 AM, Albe Laurenz wrote: >> lsof on the client machine (192.168.0.52) shows no connections on >> port 49333, so it doesn't appear to be a simple matter of killing the > >> client connection. If I have to, I can reboot the client machine, but > >> this seems like overkill and I'm not certain this will fix the >> problem. Anything else I can try on the server or the client short of > >> restarting the database or rebooting the client? > > Do I get it right that there is no process on the client machine > using port 49333? > Maybe you can reboot the client machine to make sure. > > I'd wait for some time, because the send() might be stuck in kernel > space, and I guess it should timeout at some point. Then the process > will go away. The Java process on the client machine that held the connection was killed off and lsof no longer showed a process with a connection on port 49333. I waited about 7 hours and the database server still showed the hung connection from port 49333 of the client. I finally reboot the client computer, which fixed the problem. I suppose something lower level than the application process was hanging on to the connection somehow and lsof couldn't even detect it. The client is a Mac OS X 10.4.8 box. It would have been nice if I could have killed the process from the server side as well, but I'm sure there's a good reason why you can't when it's in this state: send () from /lib64/libc.so.6 in internal_flush () in internal_putbytes () in pq_putmessage () in pq_endmessage () in printtup () in ExecutorRun () in PortalRunSelect () > If the server process is still there after a couple of hours, hmm, > I don't know. Maybe resort to a kill -9. If that does not get rid > of the server process, it is stuck in kernel space for good and > probably nothing except a reboot will get rid of it. The last time I tried a kill -9 on a server process the database instantly reboot itself and it had to perform some kind of crash recovery. Is a kill -9 okay in some cases? I suppose a restart of the database would have worked as well, but that was my last resort.
В списке pgsql-general по дате отправления: