[PATCH] Log crashed backend's query (activity string)
Marti Raudsepp <marti@juffo.org>
From: Marti Raudsepp <marti@juffo.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2011-09-06T20:52:18Z
Lists: pgsql-hackers
Attachments
- 0001-Log-crashed-backend-s-query-activity-string.patch (text/x-patch)
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