Merge pull request #305 from TheGrandWazoo/chore/release-4.0.3

chore: release housekeeping for v4.0.3
This commit is contained in:
Kevin Scott Adams
2026-10-14 23:11:45 -04:00
committed by GitHub
5 changed files with 50 additions and 2 deletions
+9 -1
View File
@@ -8,7 +8,9 @@ See each [GitHub Release](https://github.com/TheGrandWazoo/truenas-proxmox/relea
---
## [Unreleased] — 4.0.3
## [4.0.3] — 2026-10-14
WebSocket reliability. No config changes. Milestone: *v4.0.3 — WebSocket reliability*.
### Fixed
- **WebSocket calls failed after the connection sat idle in a PVE daemon**
@@ -25,12 +27,18 @@ See each [GitHub Release](https://github.com/TheGrandWazoo/truenas-proxmox/relea
2–4 ms, compared with 1–4 s for a reconnect and login.
- Read-only calls (`*.query`, `*.config`) that still hit a closed socket
reconnect and retry once. Writes are never retried.
- The cached connection is also discarded after a call times out, after
a failed write (SIGPIPE is ignored, so a reset peer shows up as a
retryable "closed" error), and after a failed login, so a stale or
unauthenticated socket is never reused.
### Verified
- Read-only idle probe on pve01: 4.0.2 fails after 60 s and 90 s of idle
time on SCALE 25.04 and 25.10. A long-lived process with the fix ran
`status` plus `list_images` every 45 s for 5 minutes against both hosts,
14/14 OK.
- Retest of the final code (f8c2d4b) with 75 s idle gaps, so TrueNAS closed
the connection before every round: 14/14 OK on SCALE 25.04.2.6 and 25.10.6.
## [4.0.2] — 2026-10-13
+23
View File
@@ -237,6 +237,29 @@ Closes the volume-lifecycle gaps found while running real workloads (Terraform c
---
## Released — v4.0.3 (WebSocket reliability)
**Released:** 2026-10-14
**Branch:** `main`
**GitHub Release:** https://github.com/TheGrandWazoo/freenas-proxmox/releases/tag/v4.0.3
TrueNAS closes idle WebSockets after 30–60 s, and long-lived PVE daemons reused the dead cached connection. VM creates failed, content listings returned HTTP 500, and SCALE storages flapped to inactive. The CLI never showed it. Found by the slm-saas-poc Terraform session. v3.x is unaffected because it is REST only.
### Confirmed tested
| Component | Versions |
|-----------|---------|
| Proxmox VE | 9.2.21 |
| TrueNAS SCALE | 25.04.2.6, 25.10.6 (WebSocket transport) |
### What shipped
| # | Title | Commit |
|---|-------|--------|
| [#303](https://github.com/TheGrandWazoo/freenas-proxmox/issues/303) | Check and ping a cached WebSocket before reuse; retry read-only calls once; drop the connection on timeout, write failure or failed login | d4ef4a4 |
---
## Process Rules
- Every business decision (defer, hold, change scope) is recorded here **and** as a comment on the relevant GitHub issue — not only in conversation or AI memory.
@@ -1,3 +1,10 @@
truenas-proxmox-multipath (4.0.3-1) trixie; urgency=medium
* Version bump to match truenas-proxmox 4.0.3; WebSocket idle-reconnect
fix inherited from TrueNAS.pm (#303)
-- KSA Technologies, LLC <theprofessor@ksatechnologies.com> Wed, 14 Oct 2026 00:00:00 +0000
truenas-proxmox-multipath (4.0.2-1) trixie; urgency=medium
* volume_resize: rescan kernel iSCSI sessions and multipathd resize map
+10
View File
@@ -1,3 +1,13 @@
truenas-proxmox (4.0.3-1) trixie; urgency=medium
* Don't reuse a WebSocket that TrueNAS closed while idle: check the
socket and core.ping before reuse, retry read-only calls once, and
drop the cached connection on timeout, write failure or failed login.
Fixes random "closed unexpectedly" failures and SCALE storages
flapping to inactive in pvedaemon/pvestatd (#303)
-- KSA Technologies, LLC <theprofessor@ksatechnologies.com> Wed, 14 Oct 2026 00:00:00 +0000
truenas-proxmox (4.0.2-1) trixie; urgency=medium
* Add volume_resize (zvol grow via pool/dataset update; WebSocket PUT
+1 -1
View File
@@ -58,7 +58,7 @@ use PVE::Storage::Plugin;
use base qw(PVE::Storage::Plugin);
our $VERSION = '4.0.2';
our $VERSION = '4.0.3';
# Per-host runtime state cache
my $state = {};