Skip to content

[Windows]:[Driver] Prevent accept-queue stalls that can trigger missing redirect context (10022) #273

Open

Description

@dentatli

Problem

On Windows, slow connection setup inside the TCP accept loop can let the accept queue fill. This can trigger an early RST followed by a SYN retry. On the tested Windows build (26200.9711), the retry reaches the proxy without WFP redirect metadata: both redirect-record/context queries fail with 10022, although the original context still exists on the source endpoint.

We traced this on one connection through kernel accept and the failing socket query. An independent WFPSampler-based reproduction also fails with ProxyBridge's driver stopped. This points to a Windows TCP/WFP issue exposed by the traffic pattern.

Options

  • Recommended: accept before setup. Keep the accept loop short; move context/process/rule lookup and connection setup to a worker through a bounded queue. Separate workload trials with this approach prevented the queue-refusal trigger.
  • Increase the listen backlog: a simpler mitigation, but sustained slow setup can still fill it.
  • Windows fix: preserve redirect metadata on SYN retry after an early RST. Fast accept prevents our queue-related trigger, but cannot repair every possible instance of this OS behavior.

I have prepared an implementation using a bounded queue and one setup worker, without driver changes. Product runtime validation of this implementation is still pending.

Would you like me to open a separate PR with this accept-before-setup implementation (independent of #243)?

Activity

  1. changed the title [-][Windows] Prevent accept-queue stalls that can trigger missing redirect context (10022)[/-] [+][Driver branch][Windows] Prevent accept-queue stalls that can trigger missing redirect context (10022)[/+] on Oct 22, 2026
  2. changed the title [-][Driver branch][Windows] Prevent accept-queue stalls that can trigger missing redirect context (10022)[/-] [+][Windows]:[Driver] Prevent accept-queue stalls that can trigger missing redirect context (10022)[/+] on Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions