A dropped stream and its subscription
Three lifelines: planner, test-runner and its task store. The planner opens SendStreamingMessage and receives four frames: the task in TASK_STATE_SUBMITTED, the working status, and two artifactUpdate chunks of test-log.txt. The planner then closes the connection. test-runner appends chunks 03 and 04 to the stored task while no stream is open, so no client sees them. The planner calls SubscribeToTask, test-runner reads the stored task, and the first frame is a Task snapshot whose test-log.txt already holds four parts. Frames 2 to 5 carry chunks 05 to 08, frame 6 the completed status, and the stream closes. A second SubscribeToTask on the finished task fails with -32004 UnsupportedOperationError.
planner
client agent
test-runner
localhost:41241
task store
inside test-runner
1
SendStreamingMessage
run the full suite at 9f3c2e1
2
frame 1 · task SUBMITTED
task 25239d4c
3
frame 2 · statusUpdate WORKING
4
frame 3 · artifactUpdate
test_suite_01, names test-log.txt
5
frame 4 · artifactUpdate
test_suite_02, append: true
client closes the connection
6
append test_suite_03
no stream is open
7
append test_suite_04
nobody receives a frame
8
SubscribeToTask 25239d4c
9
stored task
log parts 01 to 04 so far
10
frame 1 · task WORKING
snapshot: test-log.txt, 4 parts
11
frames 2 to 5 · artifactUpdate
test_suite_05 to 08, lastChunk on 08
12
frame 6 · statusUpdate COMPLETED
96 passed, then the stream closes
13
SubscribeToTask 25239d4c
again, after the end
14
-32004 UnsupportedOperationError
the task is TASK_STATE_COMPLETED