agent-substrate / agent-substrate/substrate
atenet-router: requests to running actors consume parking-lot slots
- 主要言語
- Go
- スター
- 1.8k
- フォーク
- 316
- 平均マージ
- 2日 43分
- マージ済み PR(30日)
- 287
説明
The parking lot admits every request, not just ones waiting for a resume: [HandleRequestHeaders](https://github.com/agent-substrate/substrate/blob/a0523de4e7e81a70734511b32665b3072d2d9682/cmd/atenet/internal/router/ingress/ingress.go#L119-L130) calls parking.enter() before ResumeActor, so even a request to a RUNNING actor holds a slot during its ateapi lookup.
This breaks the [design's own guarantee](https://github.com/agent-substrate/substrate/blob/main/docs/request-parking.md#behavior)
> a saturated lot cannot starve requests to already-running actors, at any lot size
[TestHandleRequestHeaders_ParkingLotFull](https://github.com/agent-substrate/substrate/blob/a0523de4e7e81a70734511b32665b3072d2d9682/cmd/atenet/internal/router/ingress/ingress_test.go#L343) explicitly asserts the contradicting behavior: a request to an already-running actor "is shed with a 503 before any resume is attempted" when the lot is full - i.e., the starvation the design doc says cannot happen is locked in as expected behavior.
コントリビューションガイド
評価
この issue はまだ評価されていません。