Stmt timeout error can be sent after a CommandComplete

Started by Anthonin Bonnefoy3 months ago3 messageshackers
Jump to latest
#1Anthonin Bonnefoy
anthonin.bonnefoy@datadoghq.com

Hi,

At the end of a command, disable_statement_timeout is called as the
timeout applies to a specific command and a CommandComplete message is
sent.

However, it's possible for the stmt timeout to have been fired between
the last message and the call to disable_statement_timeout. The
timeout won't be active anymore, so disable_timeout will be skipped.
However, the timeout is still queued, and the next call to
CHECK_FOR_INTERRUPTS will process and generate a stmt timeout error.

This leads to the confusing situation where we can have a
CompleteCommand message followed by a stmt timeout error for the same
command.

This patch fixes this issue by resetting the timeout indicator if the
timeout is inactive, relying on get_timeout_indicator to reset the
timeout indicator.

Regards,
Anthonin Bonnefoy

Attachments:

v1-0001-Reset-stmt-timeout-indicator-on-disable_statement.patchapplication/octet-stream; name=v1-0001-Reset-stmt-timeout-indicator-on-disable_statement.patchDownload+5-2
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Anthonin Bonnefoy (#1)
Re: Stmt timeout error can be sent after a CommandComplete

Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com> writes:

At the end of a command, disable_statement_timeout is called as the
timeout applies to a specific command and a CommandComplete message is
sent.
However, it's possible for the stmt timeout to have been fired between
the last message and the call to disable_statement_timeout. The
timeout won't be active anymore, so disable_timeout will be skipped.
However, the timeout is still queued, and the next call to
CHECK_FOR_INTERRUPTS will process and generate a stmt timeout error.

I think this overlaps the discussion we're having over here:

/messages/by-id/CAGECzQQD5f9ce-D1v6vCTT94hG=JbGdTHuf8vQ=HBLz9T4dA1g@mail.gmail.com

I agree that this area is a bit buggy, but I think it's got more
problems than just this.

regards, tom lane

#3Anthonin Bonnefoy
anthonin.bonnefoy@datadoghq.com
In reply to: Tom Lane (#2)
Re: Stmt timeout error can be sent after a CommandComplete

On Tue, Jan 13, 2026 at 6:30 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

I think this overlaps the discussion we're having over here:

/messages/by-id/CAGECzQQD5f9ce-D1v6vCTT94hG=JbGdTHuf8vQ=HBLz9T4dA1g@mail.gmail.com

I agree that this area is a bit buggy, but I think it's got more
problems than just this.

Yeah, that's definitely the same kind of issue. Thanks for the link, I
will catch up with the thread.