Skip to content

Commit 914d46b

Browse files
michaelpqpull[bot]
authored andcommitted
Use correct connection for cancellation in frontend's parallel slots
While waiting for slots to become available in wait_on_slots() in parallel_slot.c, the cancellation always relied on the first connection in the set to do the job. This could cause problems when this slot's socket is gone as PQgetCancel() would return NULL in this case. Rather than always using the first connection, this changes the logic to use the first valid connection for the cancellation. Author: Ranier Vilela Reviewed-by: Justin Pryzby Discussion: https://postgr.es/m/CAEudQAokk1h_pUwGXsYS4oVOuf35s1O2o3TXGHpV8=AWikvgHA@mail.gmail.com Backpatch-through: 14
1 parent bd0d22d commit 914d46b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/fe_utils/parallel_slot.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ wait_on_slots(ParallelSlotArray *sa)
235235
if (cancelconn == NULL)
236236
return false;
237237

238-
SetCancelConn(sa->slots->connection);
238+
SetCancelConn(cancelconn);
239239
i = select_loop(maxFd, &slotset);
240240
ResetCancelConn();
241241

0 commit comments

Comments
 (0)