diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index f3ddf828bbe..2eb1fdadd85 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -5663,6 +5663,15 @@ bgworker_forkexec(int shmem_slot) } #endif +static int +chaos_monkey_fork_process(void) +{ + if (rand() < (RAND_MAX / 2)) + return fork_process(); + else + return -1; +} + /* * Start a new bgworker. * Starting time conditions must have been checked already. @@ -5701,7 +5710,7 @@ do_start_bgworker(RegisteredBgWorker *rw) #ifdef EXEC_BACKEND switch ((worker_pid = bgworker_forkexec(rw->rw_shmem_slot))) #else - switch ((worker_pid = fork_process())) + switch ((worker_pid = chaos_monkey_fork_process())) #endif { case -1: