Re: strange parallel query behavior after OOM crashes
Kuntal Ghosh <kuntalghosh.2007@gmail.com>
From: Kuntal Ghosh <kuntalghosh.2007@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Thomas Munro <thomas.munro@enterprisedb.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-04-03T10:08:56Z
Lists: pgsql-hackers
Attachments
- 0001-Fix-parallel-worker-counts-after-a-crash.patch (binary/octet-stream) patch 0001
On Fri, Mar 31, 2017 at 6:50 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Thu, Mar 30, 2017 at 4:35 PM, Kuntal Ghosh > <kuntalghosh.2007@gmail.com> wrote: >> 2. the server restarts automatically, initialize >> BackgroundWorkerData->parallel_register_count and >> BackgroundWorkerData->parallel_terminate_count in the shared memory. >> After that, it calls ForgetBackgroundWorker and it increments >> parallel_terminate_count. > > Hmm. So this seems like the root of the problem. Presumably those > things need to be reset AFTER forgetting any background workers from > before the crash. > IMHO, the fix would be not to increase the terminated parallel worker count whenever ForgetBackgroundWorker is called due to a bgworker crash. I've attached a patch for the same. PFA. -- Thanks & Regards, Kuntal Ghosh EnterpriseDB: http://www.enterprisedb.com
Commits
-
Add an Assert() to max_parallel_workers enforcement.
- 6599c9ac3340 10.0 landed
-
Fix confusion of max_parallel_workers mechanism following crash.
- 8ff518699f19 10.0 landed
-
Add max_parallel_workers GUC.
- b460f5d66931 10.0 cited