Skip to content

Verify ReplicationHandler abort and async fetch lifecycle #259

Open

Description

@vsimko

Context

The one-shot leader/follower fetchindex workflow and follower read-back are verified on Solr 8.11.4, 9.11.0, and 10.1.0. The exported abortfetch command and any polling/status lifecycle remain outside that verified behavior; they must not be inferred from the one-shot fetch test.

Scope

  • Determine the documented abortfetch semantics and whether the ReplicationHandler exposes a reliable observable completion/status signal for an in-flight fetch.
  • Add isolated leader/follower integration coverage only where the lifecycle can be made deterministic and safe.
  • Cover timeout, abort, and cleanup behavior without affecting shared integration cores.
  • If a deterministic runtime test is not practical, document the limitation and keep the operation explicitly unverified.

Acceptance criteria

  • Behavior is tested per pinned Solr version or explicitly marked deferred/unverified with rationale.
  • Any async wait is bounded and cleanup cannot leave a shared core in a changed state.
  • Replication docs, API coverage, compatibility docs, and api-inventory.json agree.
  • Existing one-shot fetch verification remains separately stated.

Reference review (2026-11-04)

  • Apache Solr 10.1 documents abortfetch as aborting an index copy, details as returning configuration/current status, and enablepoll/disablepoll as controlling follower polling: https://solr.apache.org/guide/solr/10_1/deployment-guide/user-managed-index-replication.html
  • The public guide does not define a stable field-level status schema or a dedicated fetch-status polling command. A deterministic test must therefore establish a controlled in-progress transfer before invoking abortfetch, and must assert the resulting follower state rather than infer success from the command response.
  • Keep the test isolated to disposable cores and bounded; if a deterministic in-progress state cannot be established reliably, document the limitation and leave live cancellation explicitly unverified.

Implementation progress (2026-11-04)

  • PR test: verify ReplicationHandler abort lifecycle #262 adds an isolated leader/follower abort test using disposable cores and bounded polling.
  • Initial CI run #650 exposed that the transfer completed before the test observed isReplicating=true on Solr 8.11.4. The test now configures the leader's maxWriteMBPerSec default to 0.05 to hold the transfer open deterministically before issuing abortfetch.
  • The revised CI run is #654; keep this issue open until all pinned-version jobs pass and the docs/API inventory are reconciled.

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions