Vitastor 0.6.12 released

2022-01-23

etcd connection stability, clang & elbrus support

  • Fix build under CLang and Elbrus LCC compilers, making Vitastor compatible with Elbrus CPUs :)
  • Completely fix the bug where OSDs didn’t connect to peers and incorrectly marked PGs as incomplete
  • Limit I/O depth for deletes the same way as for small writes. Makes OSD crashes with “Assertion failed: sqe != NULL” during image deletion go away
  • Fix a very old, but rare, journaling bug (credits to https://github.com/mirrorll)
  • Fix flushing of unclean journaled objects leading to OSDs sometimes hanging after failover in EC setups (bug was introduced in 0.6.7)
  • Fix several problems that could prevent smooth operation of a Vitastor cluster under the condition of partial etcd failure:
    • OSDs could randomly fail due to too strict error handling
    • New clients and OSDs could be unable to start because of the lack of retries
    • CLI could fail some commands because of the lack of retries
    • Monitor could stop receiving state updates because of the lack of websocket pings
  • Fix monitor being unable to rebalance PGs after a downscale of pool pg_size (3->2)
  • Exit with failure when trying to nbd map or benchmark a non-existing image
  • Use HTTP keep-alive for etcd connections
  • Allow to configure etcd request timeouts and retries
  • Allow to configure NBD timeout, max devices and partitions, and set default to up to 64 devices with up to 3 partitions each