Skip to content

Commit 1c9a130

Browse files
committed
test: add RAC soak test and valgrind profiling support
- Add soak-test.sh: sustained OLR test with randomized DML (INSERT/UPDATE/DELETE/LOB mix) across both RAC nodes, memory monitoring, and Debezium twin-test data accuracy verification. Validates issue #14 fix holds under prolonged usage. - Add Dockerfile.valgrind: builds OLR without sanitizers with valgrind for heap profiling (massif). - Set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 in RAC container env (DEPLOY.md) to fix nchar-nclob charset corruption.
1 parent 3e1d814 commit 1c9a130

2 files changed

Lines changed: 674 additions & 0 deletions

File tree

Dockerfile.valgrind

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Dockerfile.valgrind — Build without sanitizers, with valgrind for heap profiling
2+
# Usage: docker build -f Dockerfile.valgrind -t olr-valgrind:latest .
3+
4+
FROM olr-dev:latest AS base
5+
6+
USER root
7+
8+
# Install valgrind
9+
RUN apt-get update && apt-get -y install valgrind && rm -rf /var/lib/apt/lists/*
10+
11+
# Rebuild OLR without sanitizers (RelWithDebInfo = optimized + debug symbols)
12+
RUN --mount=type=cache,target=/root/.ccache,id=olr-ccache \
13+
set -eu && \
14+
export CCACHE_DIR=/root/.ccache && \
15+
cd /opt/OpenLogReplicator-local && \
16+
rm -rf cmake-build-valgrind && \
17+
mkdir cmake-build-valgrind && \
18+
cd cmake-build-valgrind && \
19+
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
20+
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g -DCTXASSERT=1" \
21+
-DWITH_RAPIDJSON=/opt/rapidjson \
22+
-DWITH_RDKAFKA=/opt/librdkafka \
23+
-DWITH_PROMETHEUS=/opt/prometheus \
24+
-DWITH_OCI=/opt/instantclient_23_26 \
25+
-DWITH_PROTOBUF=/opt/protobuf \
26+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
27+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
28+
-S ../ -B ./ && \
29+
cmake --build ./ --target OpenLogReplicator -j && \
30+
cp ./OpenLogReplicator /opt/OpenLogReplicator/OpenLogReplicator
31+
32+
USER user1:oracle

0 commit comments

Comments
 (0)