This release includes a bunch of important bugfixes for erasure-coded setups with disabled immediate_commit. After these fixes, "test_heal" OSD killing test now passes fine with EC: - Fix cluster write stalls with "Error while doing flush on OSD xx: -16 (Device or resource busy)" in OSD logs possible in EC setups with disabled immediate_commit by selectively syncing nonsynced objects on STABILIZE/ROLLBACK (https://github.com/vitalif/vitastor/issues/51) - Fix other EC + disabled immediate_commit problems: - Fix "opcode=5 retval=-2" errors happening on SYNC retries - Fix non-working "pagination" during PG dirty object flushing - Fix write operations not continued correctly after dirty object flushing - Fix incorrect parity read-modify-write calculation when writing into a lost chunk - Fix OSDs losing left_on_dead PG state of non-clean PGs and thus not removing junk data in the cluster - Fix a small memory leak caused by bad indexing of EC recovery matrices - Fix a rare use-after-free in cluster_client caused by a reenterability issue - Fix vitastor-cli create command syntax in the CSI driver - Allow to start OSDs without local store for tests - Fix memory allocation error in disk_tool_meta for non-standard metadata block sizes - Fix delete operations received before loading pool metadata crashing OSDs with "null pointer exception" - Improve "theoretical performance" Russian documentation New features: - Implement online configuration update for some parameters. Documentation is coming soon :)
29 lines
896 B
Bash
Executable File
29 lines
896 B
Bash
Executable File
#!/bin/bash
|
|
# Vitastor depends on QEMU and/or FIO headers, but QEMU and FIO don't have -devel packages
|
|
# So we have to copy their headers into the source tarball
|
|
|
|
set -e
|
|
|
|
VITASTOR=$(dirname $0)
|
|
VITASTOR=$(realpath "$VITASTOR/..")
|
|
|
|
if [ -d /opt/rh/gcc-toolset-9 ]; then
|
|
# CentOS 8
|
|
EL=8
|
|
. /opt/rh/gcc-toolset-9/enable
|
|
else
|
|
# CentOS 7
|
|
EL=7
|
|
. /opt/rh/devtoolset-9/enable
|
|
fi
|
|
cd ~/rpmbuild/SPECS
|
|
rpmbuild -bp fio.spec
|
|
cd $VITASTOR
|
|
ln -s ~/rpmbuild/BUILD/fio*/ fio
|
|
sh copy-fio-includes.sh
|
|
rm fio
|
|
mv fio-copy fio
|
|
FIO=`rpm -qi fio | perl -e 'while(<>) { /^Epoch[\s:]+(\S+)/ && print "$1:"; /^Version[\s:]+(\S+)/ && print $1; /^Release[\s:]+(\S+)/ && print "-$1"; }'`
|
|
perl -i -pe 's/(Requires:\s*fio)([^\n]+)?/$1 = '$FIO'/' $VITASTOR/rpm/vitastor-el$EL.spec
|
|
tar --transform 's#^#vitastor-0.8.7/#' --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-0.8.7$(rpm --eval '%dist').tar.gz *
|