From: | "Dan Armbrust" <daniel(dot)armbrust(dot)list(at)gmail(dot)com> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Erik Jones" <erik(at)myemma(dot)com>, "pgsql general" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Deadlock situation? |
Date: | 2008-04-30 14:55:25 |
Message-ID: | 82f04dc40804300755y6b261cau7e5e7959340709ef@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> Well, there went the evidence :-( ... but what exactly did you have
> to do to shut it down? I'm wondering whether the backends responded
> to SIGINT or SIGTERM.
Sorry :(
First, I tried issuing a kill to the pid of the vacuum process. It
didn't respond to kill.
Then, I tried a kill -9. It responded to that :)
However, postgres got very unhappy at this point - I tried to log in
to issue another query against the pg_stat_activity table, but every
command I issued at this point simply hung.
In this case, Postgres had been started in the foreground on a
terminal, so I went to that terminal, and did a ctrl-c. Eventually,
postgres stopped, but the terminal wouldn't respond either - and I had
to close it.
>
> Next time, it'd be good to confirm (with top or vmstat or similar)
> whether the backends are actually idle or are eating CPU or I/O.
I didn't notice any high load on the processor - the server seemed
idle. But I didn't look real close a the individual postgres
processes.
> Also try strace'ing a few of them; the pattern of kernel calls if
> any would be revealing.
>
> The lack of deadlock reports or 't' values in pg_stat_activity.waiting
> says that you weren't blocking on heavyweight locks. It's not
> impossible that there was a deadlock at the LWLock level, though.
>
> What sort of indexes are there on this table?
Here is the DDL for the table where vacuum was trying to run:
CREATE TABLE iphost
(
ethernetmacaddr char(17) NOT NULL,
cpemac char(11) NOT NULL,
ipaddr varchar(15) NOT NULL,
regtime timestamp NOT NULL,
leasetime timestamp,
last_updated timestamp NOT NULL DEFAULT now(),
CONSTRAINT pk_iphost PRIMARY KEY (ethernetmacaddr, ipaddr),
CONSTRAINT fk_iphost_cpe FOREIGN KEY (cpemac)
REFERENCES cpe (cpemac) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
ALTER TABLE iphost OWNER TO pslogin;
CREATE INDEX ix_iphost_cpemac
ON iphost
USING btree
(cpemac);
CREATE INDEX ix_iphost_ipaddr
ON iphost
USING btree
(ipaddr);
> Teodor just fixed
> an issue in GIN indexes that involved taking an unreasonable number of
> LWLocks, and if that code wasn't exposing itself to deadlock risks
> I'd be pretty surprised.
>
> regards, tom lane
Thanks. If/when I can recreate this, I'll try to gather more info.
Dan
From | Date | Subject | |
---|---|---|---|
Next Message | Craig Ringer | 2008-04-30 15:00:46 | Re: How to modify ENUM datatypes? |
Previous Message | Andy Anderson | 2008-04-30 14:33:19 | Re: Quoting " |