@mark1russell7/machines 0.3.27 → 0.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/build/index.d.ts +4 -2
- package/build/index.js +23 -8
- package/build/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -115,6 +115,13 @@ A change to the version of a system changes its sources too. Each fact of the do
|
|
|
115
115
|
|
|
116
116
|
In this repository, a snapshot of the predictions of the cells (`packages/cells/src/__snapshots__/predictions.json`) shows each prediction that a change to a document moves.
|
|
117
117
|
|
|
118
|
+
### 0.3.28
|
|
119
|
+
|
|
120
|
+
- **The release of the pool counts from the last checkout** (`ztunnel-hbone`). Each checkout of a connection, new or used again, puts it back in the pool with a new release timer (`pool.rs` of ztunnel 1.31.3, lines 150–176 and 338–341). The end of a stream does not start a timer.
|
|
121
|
+
- The timer `release` arms at the new event `local.checkout`, through the new transition `zt.checkout`. Before, it armed at the end of the last stream, and the cell of a gap cited that wrong fact.
|
|
122
|
+
- The release only drops the reference of the pool. HTTP/2 closes the connection when no reference and no stream is left (lines 142–146), thus an open flow keeps it.
|
|
123
|
+
- The cell T15.border-off.77 reads it. A fix of a fact is a PATCH.
|
|
124
|
+
|
|
118
125
|
### 0.3.27
|
|
119
126
|
|
|
120
127
|
- **The SIGKILL at the end of the grace** (`ztunnel-hbone`). The document has the grace of the ztunnel pod as a knob (`grace`, 30 s from the chart) and a timer from SIGTERM.
|
package/build/index.d.ts
CHANGED
|
@@ -522,8 +522,10 @@ export declare const DOCKER_PROXY_LINK: Machine;
|
|
|
522
522
|
* 30 s later.
|
|
523
523
|
*
|
|
524
524
|
* At the end of a stream or of its connection, ztunnel shuts down the socket of the app. The app then
|
|
525
|
-
* gets a FIN.
|
|
526
|
-
*
|
|
525
|
+
* gets a FIN. The release of the pool closes a connection with no stream, 5 min after its last
|
|
526
|
+
* checkout. No timer closes a connection with an open stream, or an old one.
|
|
527
|
+
*
|
|
528
|
+
* At SIGTERM, ztunnel sends GOAWAY, and it ends what is left at its deadline of 25 s. A deadline longer than the grace of 30 s does not
|
|
527
529
|
* come. The kubelet sends SIGKILL to ztunnel at the end of the grace, and the kernel closes each socket.
|
|
528
530
|
*/
|
|
529
531
|
export declare const ZTUNNEL_HBONE: Machine;
|
package/build/index.js
CHANGED
|
@@ -15153,8 +15153,10 @@ const I = "istio 1.31.3";
|
|
|
15153
15153
|
* 30 s later.
|
|
15154
15154
|
*
|
|
15155
15155
|
* At the end of a stream or of its connection, ztunnel shuts down the socket of the app. The app then
|
|
15156
|
-
* gets a FIN.
|
|
15157
|
-
*
|
|
15156
|
+
* gets a FIN. The release of the pool closes a connection with no stream, 5 min after its last
|
|
15157
|
+
* checkout. No timer closes a connection with an open stream, or an old one.
|
|
15158
|
+
*
|
|
15159
|
+
* At SIGTERM, ztunnel sends GOAWAY, and it ends what is left at its deadline of 25 s. A deadline longer than the grace of 30 s does not
|
|
15158
15160
|
* come. The kubelet sends SIGKILL to ztunnel at the end of the grace, and the kernel closes each socket.
|
|
15159
15161
|
*/
|
|
15160
15162
|
const ZTUNNEL_HBONE = machineSchema.parse({
|
|
@@ -15179,7 +15181,7 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15179
15181
|
rung: "implemented"
|
|
15180
15182
|
},
|
|
15181
15183
|
{
|
|
15182
|
-
ref: `${Z} src/config.rs:75, :105, :795 and src/proxy/pool.rs:142-
|
|
15184
|
+
ref: `${Z} src/config.rs:75, :105, :795 and src/proxy/pool.rs:142-176, :338-341 POOL_UNUSED_RELEASE_TIMEOUT is 5 min. Each checkout of a connection, new or used again, puts it back in the pool with a new release timer: the timer counts from the last checkout, the start of the last flow. A release does not close the connection: HTTP/2 closes it when no reference and no stream is left`,
|
|
15183
15185
|
rung: "implemented"
|
|
15184
15186
|
},
|
|
15185
15187
|
{
|
|
@@ -15270,6 +15272,10 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15270
15272
|
kind: "local",
|
|
15271
15273
|
note: "The connect to 15008 fails: a reset, a refusal or a failed handshake"
|
|
15272
15274
|
},
|
|
15275
|
+
"local.checkout": {
|
|
15276
|
+
kind: "local",
|
|
15277
|
+
note: "A new flow of an app takes the connection from the pool: the first flow, or each later flow to the same key"
|
|
15278
|
+
},
|
|
15273
15279
|
"local.stream-end": {
|
|
15274
15280
|
kind: "local",
|
|
15275
15281
|
note: "The last stream on the connection ends"
|
|
@@ -15312,7 +15318,7 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15312
15318
|
},
|
|
15313
15319
|
"timer.release": {
|
|
15314
15320
|
kind: "timer",
|
|
15315
|
-
note: "No
|
|
15321
|
+
note: "No checkout of the connection for the unused release timeout"
|
|
15316
15322
|
},
|
|
15317
15323
|
"timer.deadline": {
|
|
15318
15324
|
kind: "timer",
|
|
@@ -15471,10 +15477,9 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15471
15477
|
knob: "slack",
|
|
15472
15478
|
unit: "s"
|
|
15473
15479
|
},
|
|
15474
|
-
arms: ["local.
|
|
15475
|
-
cancels: ["local.accept"],
|
|
15480
|
+
arms: ["local.checkout"],
|
|
15476
15481
|
fires: "timer.release",
|
|
15477
|
-
note: "pool.rs:
|
|
15482
|
+
note: "pool.rs:150-176, :338-341: from the last checkout. Each checkout starts a new timer, and the end of a stream does not start one"
|
|
15478
15483
|
},
|
|
15479
15484
|
deadline: {
|
|
15480
15485
|
duration: {
|
|
@@ -15552,6 +15557,15 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15552
15557
|
emits: ["tx.app-close"],
|
|
15553
15558
|
source: "proxy.rs:645, :695"
|
|
15554
15559
|
},
|
|
15560
|
+
{
|
|
15561
|
+
id: "zt.checkout",
|
|
15562
|
+
from: "ready",
|
|
15563
|
+
to: "ready",
|
|
15564
|
+
on: "local.checkout",
|
|
15565
|
+
timer: "release",
|
|
15566
|
+
note: "A new flow takes the connection as a new stream, and the pool starts a new release timer",
|
|
15567
|
+
source: "pool.rs:150-176, :338-341"
|
|
15568
|
+
},
|
|
15555
15569
|
{
|
|
15556
15570
|
id: "zt.ping",
|
|
15557
15571
|
from: "ready",
|
|
@@ -15605,7 +15619,8 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15605
15619
|
timer: "release",
|
|
15606
15620
|
guard: "no stream is open and no other flow holds the connection",
|
|
15607
15621
|
emits: ["tx.close"],
|
|
15608
|
-
|
|
15622
|
+
note: "The pool drops its reference, and HTTP/2 closes the connection when no stream is left. Thus a flow that is open at the timer keeps the connection",
|
|
15623
|
+
source: "pool.rs:142-176, :338-341"
|
|
15609
15624
|
},
|
|
15610
15625
|
{
|
|
15611
15626
|
id: "zt.stop",
|