Skip to content

Fix background scanner deadlock#44109

Merged
agu-z merged 1 commit intomainfrom
bg-scanner-avoid-block
Dec 4, 2025
Merged

Fix background scanner deadlock#44109
agu-z merged 1 commit intomainfrom
bg-scanner-avoid-block

Conversation

@agu-z
Copy link
Contributor

@agu-z agu-z commented Dec 4, 2025

Fixes a deadlock in the background scanner that occurs on single-core Linux devices. This happens because the background scanner would block on a background thread waiting for a future, but on single-core Linux devices there would be no other thread to pick it up. This mostly affects SSH remoting use cases where it's common for servers to have 1 vCPU.

Closes #43884
Closes #43809

Release Notes:

  • Fix SSH remoting hang when connecting to 1 vCPU servers

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Dec 4, 2025
agu-z added a commit that referenced this pull request Dec 4, 2025
Related to #44109,
#43884,
#43809.

In the Linux dispatcher, we create one background thread per CPU, but
when a single core is available, having a single background thread
significantly hinders the perceived performance of Zed. This is
particularly helpful when SSH remoting to low-resource servers.

We may want to bump this to more than two threads actually, but I wanted
to be conservative, and this seems to make a big difference already.

Release Notes:

- N/A
@agu-z agu-z merged commit c978db8 into main Dec 4, 2025
25 checks passed
@agu-z agu-z deleted the bg-scanner-avoid-block branch December 4, 2025 14:30
@agu-z
Copy link
Contributor Author

agu-z commented Dec 4, 2025

/cherry-pick preview

github-actions bot pushed a commit that referenced this pull request Dec 4, 2025
Fixes a deadlock in the background scanner that occurs on single-core
Linux devices. This happens because the background scanner would `block`
on a background thread waiting for a future, but on single-core Linux
devices there would be no other thread to pick it up. This mostly
affects SSH remoting use cases where it's common for servers to have 1
vCPU.

Closes #43884 
Closes #43809

Release Notes:

- Fix SSH remoting hang when connecting to 1 vCPU servers
github-actions bot pushed a commit that referenced this pull request Dec 4, 2025
Related to #44109,
#43884,
#43809.

In the Linux dispatcher, we create one background thread per CPU, but
when a single core is available, having a single background thread
significantly hinders the perceived performance of Zed. This is
particularly helpful when SSH remoting to low-resource servers.

We may want to bump this to more than two threads actually, but I wanted
to be conservative, and this seems to make a big difference already.

Release Notes:

- N/A
zed-zippy bot added a commit that referenced this pull request Dec 4, 2025
… preview) (#44157)

Cherry-pick of #44110 to preview

----
Related to #44109,
#43884,
#43809.

In the Linux dispatcher, we create one background thread per CPU, but
when a single core is available, having a single background thread
significantly hinders the perceived performance of Zed. This is
particularly helpful when SSH remoting to low-resource servers.

We may want to bump this to more than two threads actually, but I wanted
to be conservative, and this seems to make a big difference already.

Release Notes:

- N/A

Co-authored-by: Agus Zubiaga <agus@zed.dev>
zed-zippy bot added a commit that referenced this pull request Dec 4, 2025
…4156)

Cherry-pick of #44109 to preview

----
Fixes a deadlock in the background scanner that occurs on single-core
Linux devices. This happens because the background scanner would `block`
on a background thread waiting for a future, but on single-core Linux
devices there would be no other thread to pick it up. This mostly
affects SSH remoting use cases where it's common for servers to have 1
vCPU.

Closes #43884 
Closes #43809

Release Notes:

- Fix SSH remoting hang when connecting to 1 vCPU servers

Co-authored-by: Agus Zubiaga <agus@zed.dev>
AlpSha pushed a commit to AlpSha/zed that referenced this pull request Dec 5, 2025
Related to zed-industries#44109,
zed-industries#43884,
zed-industries#43809.

In the Linux dispatcher, we create one background thread per CPU, but
when a single core is available, having a single background thread
significantly hinders the perceived performance of Zed. This is
particularly helpful when SSH remoting to low-resource servers.

We may want to bump this to more than two threads actually, but I wanted
to be conservative, and this seems to make a big difference already.

Release Notes:

- N/A
AlpSha pushed a commit to AlpSha/zed that referenced this pull request Dec 5, 2025
Fixes a deadlock in the background scanner that occurs on single-core
Linux devices. This happens because the background scanner would `block`
on a background thread waiting for a future, but on single-core Linux
devices there would be no other thread to pick it up. This mostly
affects SSH remoting use cases where it's common for servers to have 1
vCPU.

Closes zed-industries#43884 
Closes zed-industries#43809

Release Notes:

- Fix SSH remoting hang when connecting to 1 vCPU servers
CherryWorm pushed a commit to CherryWorm/zed that referenced this pull request Dec 16, 2025
Related to zed-industries#44109,
zed-industries#43884,
zed-industries#43809.

In the Linux dispatcher, we create one background thread per CPU, but
when a single core is available, having a single background thread
significantly hinders the perceived performance of Zed. This is
particularly helpful when SSH remoting to low-resource servers.

We may want to bump this to more than two threads actually, but I wanted
to be conservative, and this seems to make a big difference already.

Release Notes:

- N/A
CherryWorm pushed a commit to CherryWorm/zed that referenced this pull request Dec 16, 2025
Fixes a deadlock in the background scanner that occurs on single-core
Linux devices. This happens because the background scanner would `block`
on a background thread waiting for a future, but on single-core Linux
devices there would be no other thread to pick it up. This mostly
affects SSH remoting use cases where it's common for servers to have 1
vCPU.

Closes zed-industries#43884 
Closes zed-industries#43809

Release Notes:

- Fix SSH remoting hang when connecting to 1 vCPU servers
someone13574 pushed a commit to someone13574/zed that referenced this pull request Dec 16, 2025
Related to zed-industries#44109,
zed-industries#43884,
zed-industries#43809.

In the Linux dispatcher, we create one background thread per CPU, but
when a single core is available, having a single background thread
significantly hinders the perceived performance of Zed. This is
particularly helpful when SSH remoting to low-resource servers.

We may want to bump this to more than two threads actually, but I wanted
to be conservative, and this seems to make a big difference already.

Release Notes:

- N/A
someone13574 pushed a commit to someone13574/zed that referenced this pull request Dec 16, 2025
Fixes a deadlock in the background scanner that occurs on single-core
Linux devices. This happens because the background scanner would `block`
on a background thread waiting for a future, but on single-core Linux
devices there would be no other thread to pick it up. This mostly
affects SSH remoting use cases where it's common for servers to have 1
vCPU.

Closes zed-industries#43884 
Closes zed-industries#43809

Release Notes:

- Fix SSH remoting hang when connecting to 1 vCPU servers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remote SSH Connection drops almost immediately Remote development becomes unstable on 1 vCPU servers after Zed 0.200+ (heartbeat timeouts)

1 participant