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
29 lines
898 B
Bash
Executable File
29 lines
898 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.6.12/#' --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-0.6.12$(rpm --eval '%dist').tar.gz *
|