From d75334ddf00487d91f30cf6dd64ea655f2ee5cf0 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 25 Jan 2026 16:08:02 +0300 Subject: [PATCH] Release 3.0.2 - Antietcd is now officially safe to use: the release includes a fixed version of antietcd which passes Jepsen transaction serializability tests. - Fix a huge checksum bug in the old store: incorrect checksums for small initial writes. The bug affected writes of exactly csum_block_size (4k by default) into new (unallocated) objects and generated invalid checksums in the store for the written 4k block. Moreover, generation of these invalid checksums was very slow because it was calculating CRC32 for 4 GB of zeroes. If the block wasn't then overwritten as a part of a larger write request it became unreadable even though the stored data was correct. The bug affected all versions since 1.0.0, or since 2.3.0 because vitastor-disk didn't allow to enable checksums prior to 2.3.0 because of another bug. O:-) - Prevent OSD disconnections due to long blocking of event-loop caused by PG resharding (moving objects between old and new PGs in memory) when changing pool PG count or just on restart of an OSD with a large database (for example, with a filled 8 TB SSD). The issue should now be fixed because OSD now performs resharding in chunks with pauses between chunks. - Prevent pools stuck in paused state on an aborted PG count change. - Fix a possible OSD crash with "division by zero" when trying to handle an operation before pool PG count is applied to the in-memory store. --- CMakeLists.txt | 2 +- csi/Makefile | 2 +- csi/deploy/004-csi-nodeplugin.yaml | 2 +- csi/deploy/007-csi-provisioner.yaml | 2 +- csi/src/config.go | 2 +- debian/changelog | 2 +- docker/Makefile | 2 +- docker/etc/vitastor/docker.conf | 2 +- docs/installation/docker.en.md | 4 ++-- docs/installation/docker.ru.md | 4 ++-- mon/package.json | 2 +- node-binding/package.json | 2 +- patches/cinder-vitastor.py | 2 +- rpm/vitastor-el7.spec | 4 ++-- rpm/vitastor-el8.spec | 4 ++-- rpm/vitastor-el9.spec | 4 ++-- src/CMakeLists.txt | 2 +- src/client/vitastor.pc.in | 2 +- 18 files changed, 23 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 199974d1..9f12741d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.12) project(vitastor) -set(VITASTOR_VERSION "3.0.1") +set(VITASTOR_VERSION "3.0.2") include(CTest) diff --git a/csi/Makefile b/csi/Makefile index 272761fe..30c827cd 100644 --- a/csi/Makefile +++ b/csi/Makefile @@ -1,4 +1,4 @@ -VITASTOR_VERSION ?= v3.0.1 +VITASTOR_VERSION ?= v3.0.2 all: build push diff --git a/csi/deploy/004-csi-nodeplugin.yaml b/csi/deploy/004-csi-nodeplugin.yaml index 9049d73e..83a7bd76 100644 --- a/csi/deploy/004-csi-nodeplugin.yaml +++ b/csi/deploy/004-csi-nodeplugin.yaml @@ -49,7 +49,7 @@ spec: capabilities: add: ["SYS_ADMIN"] allowPrivilegeEscalation: true - image: vitalif/vitastor-csi:v3.0.1 + image: vitalif/vitastor-csi:v3.0.2 args: - "--node=$(NODE_ID)" - "--endpoint=$(CSI_ENDPOINT)" diff --git a/csi/deploy/007-csi-provisioner.yaml b/csi/deploy/007-csi-provisioner.yaml index ea013f1f..15ae6ecc 100644 --- a/csi/deploy/007-csi-provisioner.yaml +++ b/csi/deploy/007-csi-provisioner.yaml @@ -121,7 +121,7 @@ spec: privileged: true capabilities: add: ["SYS_ADMIN"] - image: vitalif/vitastor-csi:v3.0.1 + image: vitalif/vitastor-csi:v3.0.2 args: - "--node=$(NODE_ID)" - "--endpoint=$(CSI_ENDPOINT)" diff --git a/csi/src/config.go b/csi/src/config.go index 13104ad8..0e347597 100644 --- a/csi/src/config.go +++ b/csi/src/config.go @@ -5,7 +5,7 @@ package vitastor const ( vitastorCSIDriverName = "csi.vitastor.io" - vitastorCSIDriverVersion = "3.0.1" + vitastorCSIDriverVersion = "3.0.2" ) // Config struct fills the parameters of request or user input diff --git a/debian/changelog b/debian/changelog index 7f6dce2a..408a127c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -vitastor (3.0.1-1) unstable; urgency=medium +vitastor (3.0.2-1) unstable; urgency=medium * Bugfixes diff --git a/docker/Makefile b/docker/Makefile index 1bb122db..ab11461d 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -1,4 +1,4 @@ -VITASTOR_VERSION ?= v3.0.1 +VITASTOR_VERSION ?= v3.0.2 all: build push diff --git a/docker/etc/vitastor/docker.conf b/docker/etc/vitastor/docker.conf index be9b868a..ff3626ba 100644 --- a/docker/etc/vitastor/docker.conf +++ b/docker/etc/vitastor/docker.conf @@ -4,7 +4,7 @@ # # Desired Vitastor version -VITASTOR_VERSION=v3.0.1 +VITASTOR_VERSION=v3.0.2 # Additional arguments for all containers # For example, you may want to specify a custom logging driver here diff --git a/docs/installation/docker.en.md b/docs/installation/docker.en.md index 7935b08b..c151c9f8 100644 --- a/docs/installation/docker.en.md +++ b/docs/installation/docker.en.md @@ -26,9 +26,9 @@ at Vitastor Kubernetes operator: https://github.com/Antilles7227/vitastor-operat The instruction is very simple. 1. Download a Docker image of the desired version: \ - `docker pull vitalif/vitastor:v3.0.1` + `docker pull vitalif/vitastor:v3.0.2` 2. Install scripts to the host system: \ - `docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.1 install.sh` + `docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.2 install.sh` 3. Reload udev rules: \ `udevadm control --reload-rules` diff --git a/docs/installation/docker.ru.md b/docs/installation/docker.ru.md index 2799edeb..a142fd56 100644 --- a/docs/installation/docker.ru.md +++ b/docs/installation/docker.ru.md @@ -25,9 +25,9 @@ Vitastor можно установить в Docker/Podman. При этом etcd, Инструкция по установке максимально простая. 1. Скачайте Docker-образ желаемой версии: \ - `docker pull vitalif/vitastor:v3.0.1` + `docker pull vitalif/vitastor:v3.0.2` 2. Установите скрипты в хост-систему командой: \ - `docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.1 install.sh` + `docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.2 install.sh` 3. Перезагрузите правила udev: \ `udevadm control --reload-rules` diff --git a/mon/package.json b/mon/package.json index f22a31a0..220c6a24 100644 --- a/mon/package.json +++ b/mon/package.json @@ -1,6 +1,6 @@ { "name": "vitastor-mon", - "version": "3.0.1", + "version": "3.0.2", "description": "Vitastor SDS monitor service", "main": "mon-main.js", "scripts": { diff --git a/node-binding/package.json b/node-binding/package.json index 69a68765..6577581a 100644 --- a/node-binding/package.json +++ b/node-binding/package.json @@ -1,6 +1,6 @@ { "name": "vitastor", - "version": "3.0.1", + "version": "3.0.2", "description": "Low-level native bindings to Vitastor client library", "main": "index.js", "keywords": [ diff --git a/patches/cinder-vitastor.py b/patches/cinder-vitastor.py index d13741ba..717af749 100644 --- a/patches/cinder-vitastor.py +++ b/patches/cinder-vitastor.py @@ -50,7 +50,7 @@ from cinder.volume import configuration from cinder.volume import driver from cinder.volume import volume_utils -VITASTOR_VERSION = '3.0.1' +VITASTOR_VERSION = '3.0.2' LOG = logging.getLogger(__name__) diff --git a/rpm/vitastor-el7.spec b/rpm/vitastor-el7.spec index 1b6e0ccf..27387a3a 100644 --- a/rpm/vitastor-el7.spec +++ b/rpm/vitastor-el7.spec @@ -1,11 +1,11 @@ Name: vitastor -Version: 3.0.1 +Version: 3.0.2 Release: 1%{?dist} Summary: Vitastor, a fast software-defined clustered block storage License: Vitastor Network Public License 1.1 URL: https://vitastor.io/ -Source0: vitastor-3.0.1.el7.tar.gz +Source0: vitastor-3.0.2.el7.tar.gz BuildRequires: gperftools-devel BuildRequires: devtoolset-9-gcc-c++ diff --git a/rpm/vitastor-el8.spec b/rpm/vitastor-el8.spec index ea92fd81..c4712c37 100644 --- a/rpm/vitastor-el8.spec +++ b/rpm/vitastor-el8.spec @@ -1,11 +1,11 @@ Name: vitastor -Version: 3.0.1 +Version: 3.0.2 Release: 1%{?dist} Summary: Vitastor, a fast software-defined clustered block storage License: Vitastor Network Public License 1.1 URL: https://vitastor.io/ -Source0: vitastor-3.0.1.el8.tar.gz +Source0: vitastor-3.0.2.el8.tar.gz BuildRequires: gperftools-devel BuildRequires: gcc-toolset-9-gcc-c++ diff --git a/rpm/vitastor-el9.spec b/rpm/vitastor-el9.spec index 88113954..2fc0f1e5 100644 --- a/rpm/vitastor-el9.spec +++ b/rpm/vitastor-el9.spec @@ -1,11 +1,11 @@ Name: vitastor -Version: 3.0.1 +Version: 3.0.2 Release: 1%{?dist} Summary: Vitastor, a fast software-defined clustered block storage License: Vitastor Network Public License 1.1 URL: https://vitastor.io/ -Source0: vitastor-3.0.1.el9.tar.gz +Source0: vitastor-3.0.2.el9.tar.gz BuildRequires: gperftools-devel BuildRequires: gcc-c++ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f0d02ef6..39582a09 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,7 +21,7 @@ if("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/local/?$") endif() set(ENABLE_COVERAGE false CACHE BOOL "Enable code coverage") -add_definitions(-DVITASTOR_VERSION="3.0.1") +add_definitions(-DVITASTOR_VERSION="3.0.2") add_definitions(-D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wno-sign-compare -Wno-comment -Wno-parentheses -Wno-pointer-arith -fdiagnostics-color=always -fno-omit-frame-pointer -fvisibility=hidden -I ${CMAKE_SOURCE_DIR}/src) add_link_options(-fno-omit-frame-pointer) if (${WITH_ASAN}) diff --git a/src/client/vitastor.pc.in b/src/client/vitastor.pc.in index 1115e191..8908d4dd 100644 --- a/src/client/vitastor.pc.in +++ b/src/client/vitastor.pc.in @@ -6,7 +6,7 @@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ Name: Vitastor Description: Vitastor client library -Version: 3.0.1 +Version: 3.0.2 Libs: -L${libdir} -lvitastor_client Cflags: -I${includedir}