@mark1russell7/machines 0.3.27 → 0.3.29

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
@@ -37,7 +37,7 @@ The algebra reads these documents. It gives the closed form of each timer, the f
37
37
  | `UNDICI_RETRY` | `undici-retry-agent` | One request through a `RetryAgent` of undici 8.12.2 | driver | 7 implemented, 1 normative |
38
38
  | `GO_TRANSPORT` | `go-nethttp-transport` | One connection of the `http.Transport` of Go 1.27.2 | driver | 7 implemented |
39
39
  | `PROCEDURES_WS_CLIENT` | `procedures-ws-client` | The WebSocket client of `@procedures/client` 0.22.0 (client 2408cea) | driver | 9 implemented, 1 documented |
40
- | `PROCEDURES_WS_SERVER` | `procedures-ws-server` | The WebSocket server of `@procedures/client` 0.22.0 (client 2408cea) | server | 4 implemented |
40
+ | `PROCEDURES_WS_SERVER` | `procedures-ws-server` | The WebSocket server of `@procedures/client` 0.22.0 (client 2408cea) | server | 5 implemented |
41
41
  | `MONGODB_NODE` | `mongodb-node` | The MongoDB Node driver 7.7.0, for one server of a replica set | driver | 19 implemented |
42
42
  | `MONGOD_REPL` | `mongod-replication` | The replication of mongod 9.0.4: one member of a replica set | server | 29 implemented |
43
43
  | `MONGOD_SESSION` | `mongod-session` | One client connection of mongod 9.0.4 | server | 6 implemented |
@@ -62,6 +62,7 @@ The algebra reads these documents. It gives the closed form of each timer, the f
62
62
  | `CADDY_HTTP2` | `caddy-http2` | Caddy 2.11.7 as an HTTP/2 proxy of gRPC: one connection of a client, its idle close, its replies and its stop | proxy | 12 implemented |
63
63
  | `NGINX_GRPC` | `nginx-grpc` | nginx 1.29.6 as an HTTP/2 proxy of gRPC: one connection of a client, its idle close, the read timer of a call, and a stopped worker | proxy | 12 implemented, 1 documented |
64
64
  | `TRAEFIK_HTTP2` | `traefik-http2` | Traefik 3.7.15 as an HTTP/2 proxy of gRPC: one connection of a client, its idle close, a reload of its dynamic file and its stop | proxy | 10 implemented, 1 observed |
65
+ | `HAPROXY_TCP` | `haproxy-tcp` | HAProxy 3.2.25 in TCP mode: one proxied connection, the idle timeout of each side and the FIN at each timeout | proxy | 13 implemented |
65
66
  | `ISTIO_SIDECAR_OUTBOUND` | `istio-sidecar-outbound` | The client sidecar of Istio 1.31.3: Envoy 1.39.4 between the app and the mesh, its retries, an update of LDS and the SIGKILL | proxy | 31 implemented |
66
67
  | `ISTIO_SIDECAR_INBOUND` | `istio-sidecar-inbound` | The server sidecar of Istio 1.31.3: Envoy 1.39.4 between the mesh and the app, the policy, an update of LDS and the SIGKILL | proxy | 31 implemented |
67
68
  | `PILOT_AGENT` | `pilot-agent` | pilot-agent of Istio 1.31.3: the drain and the SIGKILL of the Envoy of a sidecar at the stop of its pod | proxy | 12 implemented |
@@ -115,6 +116,13 @@ A change to the version of a system changes its sources too. Each fact of the do
115
116
 
116
117
  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
118
 
119
+ ### 0.3.28
120
+
121
+ - **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.
122
+ - 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.
123
+ - 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.
124
+ - The cell T15.border-off.77 reads it. A fix of a fact is a PATCH.
125
+
118
126
  ### 0.3.27
119
127
 
120
128
  - **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
@@ -425,6 +425,25 @@ export declare const CADDY_HTTP2: Machine;
425
425
  */
426
426
  export declare const ENVOY_HTTP2: Machine;
427
427
  //#endregion
428
+ //#region src/proxy/haproxy.d.ts
429
+ /**
430
+ * This document is one connection of HAProxy 3.2.25 in TCP mode, with the configuration of T02:
431
+ * `mode tcp`, `timeout client`, `timeout server`, `option clitcpka` and `option srvtcpka`. It sets
432
+ * no `timeout tunnel`, `timeout client-fin`, `timeout server-fin` or `option independent-streams`.
433
+ *
434
+ * - Each side has one inactivity timer: `timeout client` toward the client, and `timeout server`
435
+ * toward the server. It counts from the last read of bytes from that side, or the last send of
436
+ * bytes to that side.
437
+ * - Thus each byte that goes through resets the two timers. Its read resets the timer of its
438
+ * source, and its send resets the timer of its destination. A WebSocket ping and its pong reset both.
439
+ * - A TCP keepalive probe carries no byte. It resets no timer.
440
+ * - `timeout server` sends a FIN to the client at once. `timeout client` sends a FIN to the server
441
+ * first. The client gets its FIN when the server closes its side.
442
+ * - The clock of HAProxy is in whole ms, read at each wake of its loop. Thus a timer can fire one ms
443
+ * and one step of the loop early or late.
444
+ */
445
+ export declare const HAPROXY_TCP: Machine;
446
+ //#endregion
428
447
  //#region src/proxy/istio.d.ts
429
448
  /** A side of a sidecar is the listener of the connection: outbound from the app, or inbound to the app. */
430
449
  type SidecarSide = "outbound" | "inbound";
@@ -522,8 +541,10 @@ export declare const DOCKER_PROXY_LINK: Machine;
522
541
  * 30 s later.
523
542
  *
524
543
  * 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
544
+ * gets a FIN. The release of the pool closes a connection with no stream, 5 min after its last
545
+ * checkout. No timer closes a connection with an open stream, or an old one.
546
+ *
547
+ * 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
548
  * come. The kubelet sends SIGKILL to ztunnel at the end of the grace, and the kernel closes each socket.
528
549
  */
529
550
  export declare const ZTUNNEL_HBONE: Machine;