Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 52144b6

Browse files
committed
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 e890ce7 commit 52144b6

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/fe_utils/parallel_slot.c

+1-1
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)