- Fix multiple bugs leading to OSDs sometimes being unable to correctly activate PGs when a lot of PG peering events occurred in a small amount of time - Fix a bug where OSDs could list incomplete object versions during peering. The bug manifested with "local rollback operation failed" messages in OSD logs - Fix a bug where misplaced chunks for degraded and incomplete objects were not removed from extra OSDs during recovery - Fix incorrect PG history configuration resulting in OSDs being unable to find some of the objects after a PG count change - Simplify block layer write ordering logic - Avoid extra data move when a lot of OSDs are first stopped for long time and then restarted - Fix incorrect degraded & misplaced object statistics after a completed rebalance - Fix incorrect usage of pg_minsize instead of the minimal possible object chunk count in EC pools
52 lines
1.7 KiB
Bash
Executable File
52 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Vitastor depends on QEMU and 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
|
|
perl -i -pe 's/^make V=1/exit 0; make V=1/' qemu*.spec
|
|
rpmbuild -bc qemu*.spec
|
|
perl -i -pe 's/^exit 0; make V=1/make V=1/' qemu*.spec
|
|
cd ~/rpmbuild/BUILD/qemu*/
|
|
rm -rf $VITASTOR/qemu $VITASTOR/fio
|
|
mkdir -p $VITASTOR/qemu/b/qemu
|
|
make -j8 config-host.h
|
|
cp config-host.h $VITASTOR/qemu/b/qemu
|
|
cp -r include $VITASTOR/qemu
|
|
if [ -f qapi-schema.json ]; then
|
|
# QEMU 2.0
|
|
make qapi-types.h
|
|
cp qapi-types.h $VITASTOR/qemu/b/qemu
|
|
else
|
|
# QEMU 3.0+
|
|
make qapi
|
|
cp -r qapi $VITASTOR/qemu/b/qemu
|
|
fi
|
|
cd $VITASTOR
|
|
sh copy-qemu-includes.sh
|
|
rm -rf qemu
|
|
mv qemu-copy qemu
|
|
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"; }'`
|
|
QEMU=`rpm -qi qemu qemu-kvm | 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
|
|
perl -i -pe 's/(Requires:\s*qemu(?:-kvm)?)([^\n]+)?/$1 = '$QEMU'/' $VITASTOR/rpm/vitastor-el$EL.spec
|
|
tar --transform 's#^#vitastor-0.5.7/#' --exclude 'rpm/*.rpm' -czf $VITASTOR/../vitastor-0.5.7$(rpm --eval '%dist').tar.gz *
|