shim: serialize log-forward start/stop across Container clones - #1337
shim: serialize log-forward start/stop across Container clones#1337lkml-likexu wants to merge 1 commit into
Conversation
f6f5e6c to
d037f4f
Compare
d037f4f to
a7048e6
Compare
a7048e6 to
f43f5bc
Compare
f43f5bc to
d0f2611
Compare
d0f2611 to
c1de67f
Compare
c1de67f to
8309e5a
Compare
8309e5a to
ac3e433
Compare
ac3e433 to
aae90c1
Compare
OverviewThis PR fixes a real bug: Assessment: the fix is correct and well-constructed. The shared-slot + semaphore design is sound: Findings1. [Medium — residual risk, explicitly documented] Unbounded
|
stop_log_forward and start_log_forward took an Arc<JoinHandle> and fell back to abort() when the handle was shared, skipping the IO drain pause/snapshot/destroy rely on. Share ownership through a mutexed slot and serialize start/stop with a semaphore so exactly one caller awaits clean task termination. Co-developed-by: AlexSun <alexsun@alexsun.top> Assisted-by: Claude Code:claude-opus-4-7 Signed-off-by: AlexSun <alexsun@alexsun.top> Signed-off-by: Like Xu <likexu@tencent.com>
aae90c1 to
0473d4f
Compare
|
Great PR! I'll pick this up later。 |
stop_log_forward and start_log_forward took an Arc and fell back to abort() when the handle was shared, skipping the IO drain pause/snapshot/destroy rely on. Share ownership through a mutexed slot and serialize start/stop with a semaphore so exactly one caller awaits clean task termination.
Co-developed-by: AlexSun alexsun@alexsun.top
Assisted-by: Claude Code:claude-opus-4-7