[PATCH] Log crashed backend's query (activity string)

From: Marti Raudsepp <marti(at)juffo(dot)org>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: [PATCH] Log crashed backend's query (activity string)
Date: 2011-09-06 20:52:18
Message-ID: CABRT9RDuuV6a+zJN+DMJjt1ahwk1_50iEN0mPdRV9fjE7gHjuQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi list,

This patch adds the backend's current running query to the "backend
crash" message.

The crashing query is often a good starting point in debugging the
cause, and much more easily accessible than core dumps.

Example output:
LOG: server process (PID 31451) was terminated by signal 9: Killed
DETAIL: Running query: DO LANGUAGE plpythonu 'import os;os.kill(os.getpid(),9)'

The message "Running query" might not be entirely true, as it might be
e.g. a vacuum activity string too. But it sounds better than "Activity
string" or anything else I could come up with.

Also refactored pgstat_get_backend_current_activity() such that it
always returns consistent results. (Previously it returned a pointer to
shared memory that could theoretically change and was vulnerable to
races) The function can also deal with shared memory corruption (if
isCrashed is true), so that corruption doesn't cause a postmaster crash
or hang.

I'm not happy with the indenting depth in the function, but it would
be hard to split anything out.

Regards,
Marti

Attachment Content-Type Size
0001-Log-crashed-backend-s-query-activity-string.patch text/x-patch 8.2 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2011-09-06 20:58:48 Re: [v9.1] sepgsql - userspace access vector cache
Previous Message Tom Lane 2011-09-06 20:46:29 Re: timezone GUC