u70b3 opened a new pull request, #68669:
URL: https://github.com/apache/doris/pull/68669

   ### What problem does this PR solve?
   
   Issue Number: #66497
   
   Related PR: #67978 (PR3D), and the stacked worker PR (PR4A) — this PR stacks 
on PR4A's head; only the top commits belong to this PR
   
   Problem Summary: PR4A delivers the isolated worker and supervisor; this 
stacked PR delivers the slice-4 acceptance evidence — the IVF_PQ tracer bullet 
through the real isolated path and the worker-fault/UNKNOWN-convergence suites 
(v5.1 §9.4 G3), plus the BE debug points they need. The 
`enable_lance_index_mutation` gate stays off.
   
   What lands:
   
   1. **Worker fault-injection debug points** (gated by `enable_debug_points`, 
default off):
      - `LanceIndexWorker.hang` — blocks after dispatch validation, before the 
first FFI call (wall-clock escalation → UNKNOWN);
      - `LanceIndexWorker.skip_report` — executes the FFI, exits 0 without a 
result frame (silent-worker → UNKNOWN);
      - `LanceIndexSupervisor.reject_after_enqueue` — the supervisor rejects 
after dequeue, before any fork, through the production async-rejection path 
(full `PRE_INVOCATION_RESOURCE_REJECTED` + `NEVER_LAUNCHED` envelope).
      The exec'd worker starts with an empty debug-point registry, so the 
supervisor hands the two worker-side point names across the exec boundary 
through the controlled environment allowlist 
(`DORIS_LANCE_WORKER_DEBUG_POINTS`) — names only, derived from the supervisor's 
own registry, never operator-inherited.
   
   2. **Tracer suite** (`test_lance_index_worker_tracer.groovy`) — CREATE INDEX 
(4 partitions / 8 bits / 4 subvectors on the preinstalled 16-dim float32 table) 
→ COMMITTED with PossibleLive=NO → refresh REQUIRED→DONE → 
`lance_index_entries` shows the new index with an advanced dataset version → 
`vector_search` consumption proof (exact flat ladder baseline, indexed top-1 
hit, recall floor, nprobes discriminator) → DROP INDEX second job closes the 
loop. The suite derives the runner's delegation profile from the first job's 
terminal state and loudly skips the positive remainder on a delegation-less 
runner (that profile is covered by the negative suite).
   
   3. **Faults suite** (`test_lance_index_worker_faults.groovy`) — exact-PID 
kill of a hung worker (attributed via `/proc/<pid>/cgroup` matching the 
invocation group; an unattributed PID is never killed — the case degrades to 
the supervisor wall-clock path) → UNKNOWN convergence with the termination 
proof releasing the possible-live slot and the BE surviving; hang + shortened 
deadline; skip_report on a DROP job → UNKNOWN at the deadline sweep; 
reject_after_enqueue → NOT_COMMITTED, never UNKNOWN.
   
   Existing 3C/3D negative suites are untouched. The dispatcher-promptness need 
this PR originally carried its own fix for was solved upstream in PR3D's sleep 
slicing; nothing here duplicates that.
   
   Positive-path acceptance still requires a CI runner with a writable cgroup 
v2 delegation (v5.1 §5.2 has no soft fallback — a delegation-less runner 
correctly rejects, and the negative suite covers exactly that). The delegation 
evidence is recorded by the suites themselves from the observed terminal states.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test
       - [ ] Regression test
       - [ ] Unit Test
       - [ ] Manual test (add detailed scripts or steps below)
       - [ ] No need to test or manual test. Explain why:
           - [ ] This is a refactor/code format and no logic has been changed.
           - [ ] Previous test can cover this change.
           - [ ] No code files have been changed.
           - [x] Other reason <!-- Add your reason?  -->
   
   The debug points carry unit coverage (delegated runner: 72/72); the two 
groovy suites need the external docker fixture and run in the 
`external`/`nonConcurrent` pipelines.
   
   - Behavior changed:
       - [x] No.
       - [ ] Yes. <!-- Explain the behavior change -->
   
   - Does this need documentation?
       - [x] No.
       - [ ] Yes. <!-- Add document PR link here. eg: 
https://github.com/apache/doris-website/pull/1214 -->
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label <!-- Add branch pick label that this PR should 
merge into -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to