@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 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. No timer closes an idle connection or an old one. At SIGTERM, ztunnel sends GOAWAY, and
526
- * it ends what is left at its deadline of 25 s. A deadline longer than the grace of 30 s does not
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. No timer closes an idle connection or an old one. At SIGTERM, ztunnel sends GOAWAY, and
15157
- * it ends what is left at its deadline of 25 s. A deadline longer than the grace of 30 s does not
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-146 POOL_UNUSED_RELEASE_TIMEOUT is 5 min. A release does not close the connection: HTTP/2 closes it when no reference and no stream is left`,
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 stream on the connection for the unused release timeout"
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.stream-end"],
15475
- cancels: ["local.accept"],
15480
+ arms: ["local.checkout"],
15476
15481
  fires: "timer.release",
15477
- note: "pool.rs:142-146: from the end of the last stream"
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
- source: "pool.rs:142-146"
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",