public inbox for [email protected]  
help / color / mirror / Atom feed
pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
7+ messages / 1 participants
[nested] [flat]

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
REL_17_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/4eaceec97ae2add49413918dc6ed9383fc6680b1

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
REL_16_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/0e93895f02c0d696d78eea610435d4fa8e3293e0

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/4c0d53791f13852be41f25cc80666b8ad4454eb0

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/f59a592f9b2fe64affdbc63187d2da763df0caf0

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/75e201bf95d8825f1c025792eed0f13d65657c5d

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/4746a35e45ab360fa3408da0367c4165a5cb8837

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: pg_dump: check for _beginthreadex() failure in parallel dump
@ 2026-07-07 15:24 Heikki Linnakangas <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Heikki Linnakangas @ 2026-07-07 15:24 UTC (permalink / raw)
  To: [email protected]

pg_dump: check for _beginthreadex() failure in parallel dump

ParallelBackupStart() stored _beginthreadex()'s return value as the
worker's thread handle without checking it.  On failure that value is 0,
which would later reach WaitForMultipleObjects() as a null handle, caught
only by an Assert.  The fork() path already calls pg_fatal() when it
fails; do the same for _beginthreadex(), as pgbench does.

Author: Bryan Green <[email protected]>
Discussion: https://www.postgresql.org/message-id/[email protected]
Backpatch-through: 14

Branch
------
REL_18_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/50313f8f015efd8d4f2de89e4d7fa83a8205aa6d

Modified Files
--------------
src/bin/pg_dump/parallel.c | 2 ++
1 file changed, 2 insertions(+)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread


end of thread, other threads:[~2026-07-07 15:24 UTC | newest]

Thread overview: 7+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>
2026-07-07 15:24 pgsql: pg_dump: check for _beginthreadex() failure in parallel dump Heikki Linnakangas <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox