[PATCH] Log crashed backend's query (activity string) - Mailing list pgsql-hackers

From Marti Raudsepp
Subject [PATCH] Log crashed backend's query (activity string)
Date
Msg-id CABRT9RDuuV6a+zJN+DMJjt1ahwk1_50iEN0mPdRV9fjE7gHjuQ@mail.gmail.com
Whole thread Raw
Responses Re: [PATCH] Log crashed backend's query (activity string)
Re: [PATCH] Log crashed backend's query (activity string)
List 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

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: timezone GUC
Next
From: Robert Haas
Date:
Subject: Re: [v9.1] sepgsql - userspace access vector cache