Skip to content

fix(linux-core): keep a finished call from cancelling its caller - #3398

Merged
datlechin merged 1 commit into
linuxfrom
fix/linux-finished-call-cancels-caller
Oct 13, 2026
Merged

datlechin merged 1 commit into
linuxfrom
fix/linux-finished-call-cancels-caller

Conversation

@datlechin

@datlechin datlechin commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Why

Opening a table in the Linux app showed "Couldn't load rows" with "Stopped." on PostgreSQL, MySQL, MariaDB, SQL Server and ClickHouse. OwnedCalls held a drop guard on the caller's cancel token and never disarmed it, so every call that returned cancelled the token. A page reuses one set of call options for the table's columns, row identity and rows, so the second call started cancelled.

Change

  • A call that returns leaves its caller's token alone; only a caller dropped mid-call still stops the work. This is the pattern the PostgreSQL and ClickHouse editor sessions already use.
  • The row count of a newly opened table, which reads the columns first in the same way, now loads too.

Verified

A new OwnedCalls unit test and a new conformance case, calls_share_one_call_options, fail on linux and pass here; the case ran against PostgreSQL in Docker and runs for every engine in CI.

OwnedCalls never disarmed its drop guard, so every call that returned
cancelled the caller's token. A page reuses one set of options for its
columns, row identity and rows, so opening a table showed "Stopped."
@datlechin
datlechin merged commit 1155d3e into linux Oct 13, 2026
14 checks passed
@datlechin
datlechin deleted the fix/linux-finished-call-cancels-caller branch October 13, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant