Hi!
This is a bigger bug fix release for the 1.35 branch, with a few
important fixes.
Since 1.34.0 snapshots and clones also suspended I/O on a LUKS layer
below DRBD. With DRBD 9.3 or later this could stall snapshots and
clones until DRBD's ko-count was reached, if the Primary replicates to
a diskful LUKS replica on another node. Now only the topmost layer
(and WRITECACHE/CACHE layers below it) is suspended again.
Kubernetes (CRD) setups upgrading from 1.33.x or older could end up
with a crash-looping controller, because the SpaceTracking service
died on stale "SpaceHistory" entries. A migration now removes them.
Storage pools with LVM PVs on partitions no longer end up in a
never-ending update loop causing high CPU load and constant
DeviceManager cycles.
We also fixed a couple of race conditions: resource deletion vs. a
concurrent restore or un-delete (satellites shut down with a UUID
mismatch), the BalanceResourcesTask recreating a resource the user
just deleted, and "Access to deleted Node" after a node deletion.
Prometheus users get two new metrics, linstor_node_flag and
linstor_resource_flag. linstor_resource_state now carries a "resource"
label to join it with the linstor_volume_* metrics, and volumes
without DRBD are now reported as Created instead of DUnknown.
DrbdOptions/auto-diskful can now also be set on nodes and resources,
and a value of -1 disables it.
[1.35.3] - 2026-10-21
Added
- Prometheus: New metric
linstor_node_flagexports the node flags
DELETE,EVICTEDandEVACUATEas 0/1 per node - Prometheus: New metric
linstor_resource_flagexports the resource
flagsINACTIVEandEVICTEDas 0/1 - Controller: A controller-only node now reports the platform and OS
variant of the host the controller runs on
Changed
DrbdOptions/auto-diskfulcan also be set on nodes and resources,
and-1disables it- Satellite: drbd-reactor is reloaded after one of its snippets is
written, changed or deleted as an external file, so the
drbd-reactor-reload.path unit is no longer needed for that - Satellite: The ErrorReport of a
drbdadm adjustthat fails after a
.res file was regenerated now includes the regenerated content, which
is otherwise lost when the previous file is restored from its backup - SOS report now includes the LVM devices file
/etc/lvm/devices/system.devices - Prometheus:
linstor_resource_statealso carries the resource name
asresourcelabel, allowing joins with thelinstor_volume_*
metrics linstor-database export-dbrefuses to export a database with
pending migrations unless--migrate-before-exportis given, instead
of producing a mislabeled or failing export
Fixed
- Externally locked shared storage pools: after moving a resource, its
LV is locked exclusively again instead of shared, as inactive copies
no longer count as users of the LV - Web UI: Requests no longer hang for about 30 seconds after the
controller served a large web UI file again - Prometheus:
linstor_volume_statereports volumes without DRBD as
Created(2) instead ofDUnknown(-1) (GitHub #420) - RPM: Start scripts now use the distribution's JVM directory, fixing
startup on SLES/openSUSE 16 - Satellite: Fixed a never-ending storage pool update loop (high CPU,
constant DeviceManager cycles) when LVM PVs are partitions; block size
and discard granularity of partition PVs are now read from their disk - Resource group create/modify and resource definition modify now
reject invalid layer stacks instead of failing later when a resource
definition is spawned or a resource is created - Fixed a race between a resource deletion and a concurrent restore or
un-delete of the same resource, which made the affected satellites
shut down (and restart) with a UUID mismatch - Satellite: Fixed .res file's 'disk' (drbd-peer-options) section not
including controller properties when a resource-connection exists. Now
node-connection and controller properties are also included. - Fixed rare race condition where after deleting a node the same node
could cause "Access to deleted Node" - Fixed ConcurrentModificationException when serializing
SatelliteVolumeState for /metrics and listing resources or volumes - Fixed "Storage pool '...' on node '...' not found" error when
satellite tries to update props right after a storage pool was
deleted. Instead of an ErrorReport only a warning is logged now - Token authentication: A token's IP filter now matches IPv6 clients
in any notation; before, satellite tokens were always rejected on IPv6
clusters - Satellite: Node-connection paths are no longer lost on reconnect if
the satellite shares no resource with the other node, which made new
resources fall back to the default interfaces - REST: Resource groups now also list their diskless storage pools and
node list (storage_pool_diskless_list,node_name_list), which
could be set but were never returned - Fixed rare race condition between BalanceResourcesTask and a user
deleting a resource. The result was that a resource deleted by the
user might have been recreated by the BalanceResourcesTask. - Controller (K8s CRD): Fixed the SpaceTracking service dying with
"Resource SpaceHistory/... not found" and the controller crash-looping
after an upgrade from 1.33.x or older; a migration removes the stale
entries - Controller: Snapshots and clones only flag the topmost layer and
WRITECACHE/CACHE layers below it for suspend-IO. Since 1.34.0 a LUKS
layer below DRBD was suspended too, which with DRBD 9.3 or later
stalled snapshots and clones until DRBD's ko-count when the Primary
replicates to a diskful LUKS replica on another node