Files
abap-llm/docs/epod-lock-leak.md

1.6 KiB

EPOD: stale lock after a write (one case, not reproduced)

2026-10-05 15:09, run 200102 (task G1034, class Z4AEE0SQ_STORAGE_PRICER, two trajectory workers and three generators running on A4H, one MCP session each):

  1. sap_push_source main, sap_push_source includeType=testclasses (twice, the second with two activation warnings), sap_check_object, sap_run_unit_test all returned success.
  2. sap_push_element then failed: [LOCK] The object ... could not be locked. HTTP 403, ExceptionResourceNoAccess. Server message: User KESELI is currently editing Z4AEE0SQ_STORAGE_PRICER. Twice, minutes apart.
  3. Teardown (ADT deletion API, after the MCP session was closed) failed: You are already editing .... The lock stayed until it was deleted in SM12 (2026-10-05 evening).

So a lock was left behind by an earlier call of the same run and it did not end with the MCP session. The other worker's sap_run_unit_test started 0.64 s after the second testclasses write (another session's call during a write).

Not reproduced (A4H, probe objects, 2026-10-05): 25 write cycles alone; 60 write cycles overlapping 2690 unit test calls of a second session; 40 cycles of testclasses write + sap_check_object (ATC, unit tests, coverage) + sap_object_members + second testclasses write + push_element, with a second session running sap_check_object; push_element on a method of the test class (returns "lives in the testclasses include", no lock). Frequency: 1 in about 90 trajectory runs.

Wish for EPOD: release the lock in a finally path of every write tool, also after a failed or warned activation, and release all locks of a session when the MCP session ends.