Fix query cancellation.

In commit fe0a0b59, the datatype used for MyCancelKey and other variables
that store cancel keys were changed from long to uint32, but I missed this
one. That broke query cancellation on platforms where long is wider than 32
bits.

Report by Andres Freund, fix by Michael Paquier.
pull/18/head
Heikki Linnakangas 9 years ago
parent 9790b87f59
commit 81f2e514a9
  1. 4
      src/backend/postmaster/postmaster.c

@ -2216,7 +2216,7 @@ processCancelRequest(Port *port, void *pkt)
{
CancelRequestPacket *canc = (CancelRequestPacket *) pkt;
int backendPID;
long cancelAuthCode;
int32 cancelAuthCode;
Backend *bp;
#ifndef EXEC_BACKEND
@ -2226,7 +2226,7 @@ processCancelRequest(Port *port, void *pkt)
#endif
backendPID = (int) ntohl(canc->backendPID);
cancelAuthCode = (long) ntohl(canc->cancelAuthCode);
cancelAuthCode = (int32) ntohl(canc->cancelAuthCode);
/*
* See if we have a matching backend. In the EXEC_BACKEND case, we can no

Loading…
Cancel
Save