AIStore 4.7 is a small patch release for improved long-term stability and observability.
The primary changes fix unbounded growth of xaction notification metadata passed between IC members, extend Prometheus with Go runtime metrics and a per-node primary-proxy gauge, and tighten outbound network policy for the external downloader.
IC Notification Listener Cleanup
Finished xaction notification listeners were not being reclaimed reliably in long-lived clusters, causing IC ownership-table metadata to grow without bound.
Cleanup timing and IC synchronization of listener state are corrected.
Commits
- 47628799e: core: fix notification listener time-based cleanup
- d23009750: core: use consistent nl unmarshal, test atomic marshal round trips
Observability
Prometheus can now include a low-cardinality subset of Go runtime metrics (goroutines, GC, heap) alongside the existing AIS counters.
These are off by default and gated by the cluster Enable-Go-Runtime-Metrics feature flag.
Each node also exports ais_node_primary_info, a gauge labeled with primary_id for the primary proxy reflected in its cluster map.
Commits
- 7e08a8461: stats: register subset of go runtime metrics with prometheus
- da930ae0c: observability: conditionally publish Go-runtime Prometheus metrics
- 0c395682c: stats: add primary info metric
Downloader egress controls
The downloader now applies egress policy to its outbound HTTP connections.
By default, destinations in non-public address space are not reachable.
Clusters that need to fetch from private networks can enable the Dload-Allow-Private-Egress feature flag; a subset of sensitive ranges stays blocked regardless of configuration.
Reported by tonghuaroot
<tonghuaroot@gmail.com>. Thanks for the detailed write-up.
Commits
- 06f8bfc83: ext/dload: restrict downloader egress to mitigate SSRF
Other Changes
- Sendfile transmit — the GET sendfile path held back in 4.6 is now enabled for eligible plain-HTTP, file-backed objects, including range reads.
- Shard index summary — new target-side
summary-shardxaction aggregates indexed vs unindexed TAR coverage for a bucket. - Space cleanup — completed chunk manifests are validated by load, not LOM flag alone.
- S3 compatibility — response XML root element names match the AWS spec for strict clients.