Skip to content

Commit 240dc0a

Browse files
committed
PSTRESS-162: Don't start pstress when RocksDB initialization failed
1 parent b484db1 commit 240dc0a

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

pstress/pstress-run.sh

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,6 +1165,9 @@ pstress_test(){
11651165
ISSTARTED=0
11661166
PS_EXTRA="${MYEXTRA}"
11671167
if [[ ${PXC} -eq 0 && ${GRP_RPL} -eq 0 ]]; then
1168+
if [ ${ENGINE} == "RocksDB" ]; then
1169+
PS_EXTRA="--plugin-load-add=rocksdb=ha_rocksdb.so ${PS_EXTRA}"
1170+
fi
11681171
if check_for_version $MYSQL_VERSION "8.0.0" ; then
11691172
mkdir -p ${RUNDIR}/${TRIAL}/data ${RUNDIR}/${TRIAL}/tmp ${RUNDIR}/${TRIAL}/log # Cannot create /data/test, /data/mysql in 8.0
11701173
else
@@ -1512,7 +1515,7 @@ EOF
15121515
echoit "Node #1: `echo ${MYSQLD_BIN} | sed 's|/mysqld|/mysql|'` -uroot -S${SOCKET1}"
15131516
echoit "Node #2: `echo ${MYSQLD_BIN} | sed 's|/mysqld|/mysql|'` -uroot -S${SOCKET2}"
15141517
echoit "Node #3: `echo ${MYSQLD_BIN} | sed 's|/mysqld|/mysql|'` -uroot -S${SOCKET3}"
1515-
break
1518+
break
15161519
fi
15171520
if [ $X -eq 3 ]; then
15181521
echoit "Node inconsistency detected or server crashed. Check error logs for details."
@@ -1521,33 +1524,32 @@ EOF
15211524
fi
15221525

15231526
if [ ${ISSTARTED} -eq 1 ]; then
1524-
rm -f ${RUNDIR}/${TRIAL}/startup_failure_thread-0.sql # Remove the earlier created fake (SELECT 1; only) file present for startup issues (server is started OK now)
1525-
if [[ "${TRIAL}" == "1" || $REINIT_DATADIR -eq 1 ]]; then
1526-
echoit "Creating metadata randomly using random seed ${SEED} ..."
1527-
else
1528-
echoit "Loading metadata from ${WORKDIR}/step_$((${TRIAL}-1)).dll ..."
1529-
fi
1530-
15311527
if [ ${ENGINE} == "RocksDB" ]; then
1532-
if [[ ${TRIAL} -eq 1 || $REINIT_DATADIR -eq 1 ]]; then
1533-
${BASEDIR}/bin/ps-admin --enable-rocksdb -uroot -S${SOCKET}
1534-
fi
1535-
15361528
# Check if RocksDB plugin is active
15371529
ACTIVE_COUNT=$(${BASEDIR}/bin/mysql -uroot -S${SOCKET} -Nse \
15381530
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='rocksdb' AND PLUGIN_STATUS='ACTIVE';")
15391531

15401532
if [ "${ACTIVE_COUNT}" -gt 0 ]; then
15411533
echoit "RocksDB is active."
15421534
else
1543-
echoit "RocksDB is NOT active."
1535+
echoit "RocksDB is NOT active." Reinitializing the data directory.
15441536
REINIT_DATADIR=1
1537+
ISSTARTED=2 # don't run pstress (ISSTARTED=1) and don't report server didn't start (ISSTARTED=0)
15451538
fi
15461539
fi
1540+
fi
1541+
1542+
if [ ${ISSTARTED} -eq 1 ]; then
1543+
rm -f ${RUNDIR}/${TRIAL}/startup_failure_thread-0.sql # Remove the earlier created fake (SELECT 1; only) file present for startup issues (server is started OK now)
1544+
if [[ "${TRIAL}" == "1" || $REINIT_DATADIR -eq 1 ]]; then
1545+
echoit "Creating metadata randomly using random seed ${SEED} ..."
1546+
else
1547+
echoit "Loading metadata from ${WORKDIR}/step_$((${TRIAL}-1)).dll ..."
1548+
fi
15471549

15481550
if [[ ${TRIAL} -eq 1 || $REINIT_DATADIR -eq 1 ]]; then
15491551
if [[ ${PXC} -eq 1 || ${GRP_RPL} -eq 1 ]]; then
1550-
SOCKET=${SOCKET1}
1552+
SOCKET=${SOCKET1}
15511553
fi
15521554
COMP_SETUP_ERR_FILE=${WORKDIR}/component_setup_${TRIAL}.err
15531555
if [ -n "${COMPONENT_NAME}" ]; then
@@ -1585,10 +1587,10 @@ EOF
15851587
| sed -e "s|\/tmp|${RUNDIR}\/${TRIAL}|" \
15861588
> ${RUNDIR}/${TRIAL}/pstress-cluster-run.cfg
15871589
CMD="${PSTRESS_BIN} --database=test --config-file=${RUNDIR}/${TRIAL}/pstress-cluster-run.cfg --queries-per-thread=${QUERIES_PER_THREAD} --seed ${SEED} --step ${TRIAL} --metadata-path ${WORKDIR}/ --seconds ${PSTRESS_RUN_TIMEOUT} ${DYNAMIC_QUERY_PARAMETER}"
1588-
else
1590+
else
15891591
CMD="${PSTRESS_BIN} --database=test --threads=${THREADS} --queries-per-thread=${QUERIES_PER_THREAD} --logdir=${RUNDIR}/${TRIAL}/ --user=root --socket=${SOCKET1} --seed ${SEED} --step ${TRIAL} --metadata-path ${WORKDIR}/ --seconds ${PSTRESS_RUN_TIMEOUT} ${DYNAMIC_QUERY_PARAMETER}"
15901592
fi
1591-
if [ "$REINIT_DATADIR" -eq 1 ] && [ "$ENGINE" != "RocksDB" ]; then
1593+
if [ "$REINIT_DATADIR" -eq 1 ]; then
15921594
CMD="$CMD --prepare"
15931595
REINIT_DATADIR=0
15941596
fi
@@ -1625,7 +1627,7 @@ EOF
16251627
break
16261628
fi
16271629
done
1628-
else
1630+
elif [ ${ISSTARTED} -eq 0 ]; then
16291631
if [[ ${PXC} -eq 0 && ${GRP_RPL} -eq 0 ]]; then
16301632
echoit "Server (PID: ${MPID} | Socket: ${SOCKET}) failed to start after ${MYSQLD_START_TIMEOUT} seconds. Will issue extra kill -9 to ensure it's gone..."
16311633
kill_server 9 ${MPID}
@@ -1655,7 +1657,7 @@ EOF
16551657
done
16561658
SERVER_FAIL_TO_START_COUNT=$[ $SERVER_FAIL_TO_START_COUNT + 1 ]
16571659
if [ $SERVER_FAIL_TO_START_COUNT -gt 0 ]; then
1658-
echoit "Server failed to start. Reinitializing the data directory"
1660+
echoit "Server failed to start. Reinitializing the data directory"
16591661
REINIT_DATADIR=1
16601662
fi
16611663
fi

pstress/pstress_log_to_sql_converter.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ echo "Reading the pstress logfile: $LOG_FILENAME"
9999

100100
# Filtering out all the successfully executed SQLs from the pstress log
101101
sed -n 's/.* S //p' $LOG_FILENAME > $OUTPUT_FILENAME
102+
# Keep both S (success) and F (failure) SQLs
103+
#sed -n 's/.* [SF] //p' "$LOG_FILENAME" > "$OUTPUT_FILENAME"
102104

103105
# Trimming off un-necessary information at the beginning of each SQL
104106
sed -i 's/^ S //g' $OUTPUT_FILENAME

0 commit comments

Comments
 (0)