Vitastor 3.0.1 released

2025-12-22

Important fixes

  • Disable RWF_ATOMIC by default because Linux incorrectly requires all atomic writes to be power-of-2-sized and length-aligned. Details: use_atomic_flag
  • Fix cross-pool snapshots not working at all - always reading old data after taking the snapshot
  • Fix level_placement (broken in 2.2.0)
  • Fix CAS write return values in the client library (broken in 2.4.4, also breaking unaligned writes in VitastorFS)
  • Fix VitastorFS possibly losing some of intersecting parallel unaligned writes
  • Prevent possible reads of the old data during unfinished intent writes in the new store
  • Tests added for all of above problems to prevent future regressions

Other fixes

  • Allow to specify OSD tags and weights during prepare
  • Only clear the first block instead of whole OSD metadata and journal areas during vitastor-disk prepare - OSD anyway clears them on the first run
  • Fix vitastor-cli dd non-seekable detection and error status
  • Do not stop OSD on zero-copy tcp short send errors - these aren’t a bug, but just caused by TCP client disconnections
  • Fix modify-osd not working after deleting the OSD configuration key from etcd
  • Fix regular antietcd websocket disconnections in OSD due to lack of WS_PONG responses to WS_PING
  • Reduce the number of allocated RDMA memory regions
  • Allow routed RoCE