summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2023-05-02 11:54:38 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-05-02 02:10:10 +0000
commit33fa2c6f6729f50cf93e6b6c9cd32484d9a15f14 (patch)
tree703550e3b55d0cd98e2dd2e253696345b243e4a9
parentcba4cc6bd8a4bbfeaed4631bba55ac50e8dde706 (diff)
downloadmongo-33fa2c6f6729f50cf93e6b6c9cd32484d9a15f14.tar.gz
Import wiredtiger: 7331817f4ac5f5725be905a976bb0654497b4ff6 from branch mongodb-4.4
ref: 8380156d01..7331817f4a for: 4.4.22 WT-8981 Enable evergreen testing for RHEL8 on PPC (v4.4 backport)
-rw-r--r--src/third_party/wiredtiger/dist/s_string.ok1
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/os_posix/os_fs.c11
-rwxr-xr-xsrc/third_party/wiredtiger/test/evergreen.yml77
4 files changed, 47 insertions, 44 deletions
diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok
index 7505a3ba634..e5f73374344 100644
--- a/src/third_party/wiredtiger/dist/s_string.ok
+++ b/src/third_party/wiredtiger/dist/s_string.ok
@@ -377,6 +377,7 @@ STAILQ
STEC
STR
STRUCT
+SYSCALL
Scalability
Scalable
Sedgewick
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 7adb06847ad..c1df1117f2f 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-4.4",
- "commit": "8380156d01dc67c73ce83aa1afe01d60ad3f59a2"
+ "commit": "7331817f4ac5f5725be905a976bb0654497b4ff6"
}
diff --git a/src/third_party/wiredtiger/src/os_posix/os_fs.c b/src/third_party/wiredtiger/src/os_posix/os_fs.c
index 3898eb74343..7e9c88e293f 100644
--- a/src/third_party/wiredtiger/src/os_posix/os_fs.c
+++ b/src/third_party/wiredtiger/src/os_posix/os_fs.c
@@ -401,6 +401,7 @@ static int
__posix_file_read(
WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, wt_off_t offset, size_t len, void *buf)
{
+ WT_DECL_RET;
WT_FILE_HANDLE_POSIX *pfh;
WT_SESSION_IMPL *session;
size_t chunk;
@@ -420,10 +421,16 @@ __posix_file_read(
len >= S2C(session)->buffer_alignment && len % S2C(session)->buffer_alignment == 0));
/* Break reads larger than 1GB into 1GB chunks. */
+ nr = 0;
for (addr = buf; len > 0; addr += nr, len -= (size_t)nr, offset += nr) {
chunk = WT_MIN(len, WT_GIGABYTE);
- if ((nr = pread(pfh->fd, addr, chunk, offset)) <= 0)
- WT_RET_MSG(session, nr == 0 ? WT_ERROR : __wt_errno(),
+ /*
+ * The WT_SYSCALL_RETRY macro expects 0 for success. pread returns > 0 when successful,
+ * adjust the return value.
+ */
+ WT_SYSCALL_RETRY((nr = pread(pfh->fd, addr, chunk, offset)) <= 0 ? -1 : 0, ret);
+ if (ret != 0)
+ WT_RET_MSG(session, nr == 0 ? WT_ERROR : ret,
"%s: handle-read: pread: failed to read %" WT_SIZET_FMT " bytes at offset %" PRIuMAX,
file_handle->name, chunk, (uintmax_t)offset);
}
diff --git a/src/third_party/wiredtiger/test/evergreen.yml b/src/third_party/wiredtiger/test/evergreen.yml
index d55e4bd1eb9..5be96ee2bc6 100755
--- a/src/third_party/wiredtiger/test/evergreen.yml
+++ b/src/third_party/wiredtiger/test/evergreen.yml
@@ -649,6 +649,22 @@ variables:
vars:
format_test_script_args: -e "SEGFAULT_SIGNALS=all" -b "catchsegv ./t" -t 360
+ - &format-stress-sanitizer-ppc-test
+ exec_timeout_secs: 25200
+ commands:
+ - func: "get project"
+ - func: "compile wiredtiger"
+ vars:
+ posix_configure_flags: --enable-lz4 --enable-snappy --enable-zlib
+ - func: "format test script"
+ vars:
+ # Always disable mmap for PPC due to issues on variant setup.
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=1686261#c10 for the potential cause.
+ format_test_script_args: -t 360 -- -C "mmap=false,mmap_all=false"
+ test_env_vars:
+ ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1"
+ ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v4/bin/llvm-symbolizer
+
- &format-stress-sanitizer-test
exec_timeout_secs: 25200
commands:
@@ -2696,9 +2712,8 @@ tasks:
set -o verbose
for i in {1..10}; do ${test_env_vars|} ${python_binary|python3} split_stress.py; done
- # The task name is ppc-zseries because this task will be used in both buildVariants
- - name: format-stress-ppc-zseries-test
- tags: ["stress-test-ppc-1", "stress-test-zseries-1"]
+ - name: format-stress-zseries-test
+ tags: ["stress-test-zseries-1"]
# Set 2.5 hours timeout (60 * 60 * 2.5)
exec_timeout_secs: 9000
commands:
@@ -2730,11 +2745,12 @@ tasks:
posix_configure_flags: --enable-diagnostic --with-builtins=lz4,snappy,zlib
- func: "format test script"
vars:
+ # Always disable mmap for PPC due to issues on variant setup.
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=1686261#c10 for the potential cause.
+ format_test_script_args: -t 120 -- -C "mmap=false,mmap_all=false"
test_env_vars:
- ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0"
- ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-6.0/bin/llvm-symbolizer
- # Run for 2 hours (2 * 60 = 120 minutes), don't stop at failed tests, use default config
- format_test_script_args: -t 120
+ ASAN_OPTIONS="detect_leaks=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1"
+ ASAN_SYMBOLIZER_PATH=/opt/mongodbtoolchain/v4/bin/llvm-symbolizer
# Replace this test with format-stress-sanitizer-smoke-test after BUILD-10248 fix.
- name: format-stress-sanitizer-smoke-ppc-test
@@ -2777,12 +2793,18 @@ tasks:
- <<: *format-stress-test
name: format-stress-test-4
tags: ["stress-test-4"]
+ - <<: *format-stress-sanitizer-ppc-test
+ name: format-stress-sanitizer-ppc-test-1
+ tags: ["stress-test-ppc-1"]
+ - <<: *format-stress-sanitizer-ppc-test
+ name: format-stress-sanitizer-ppc-test-2
+ tags: ["stress-test-ppc-2"]
- <<: *format-stress-sanitizer-test
name: format-stress-sanitizer-test-1
- tags: ["stress-test-1"]
+ tags: ["stress-test-sanitizer-1"]
- <<: *format-stress-sanitizer-test
name: format-stress-sanitizer-test-2
- tags: ["stress-test-2"]
+ tags: ["stress-test-sanitizer-2"]
- <<: *format-stress-sanitizer-test
name: format-stress-sanitizer-test-3
tags: ["stress-test-3"]
@@ -3622,14 +3644,15 @@ buildvariants:
- name: verify-datafile-big-endian
- name: verify-datafile-from-little-endian
-- name: ubuntu1804-ppc
- display_name: "~ Ubuntu 18.04 PPC"
+- name: rhel8-ppc
+ display_name: "~ RHEL8 PPC"
run_on:
- - ubuntu1804-power8-test
+ - rhel81-power8-small
batchtime: 120 # 2 hours
expansions:
format_test_setting: ulimit -c unlimited
- smp_command: -j $(grep -c ^processor /proc/cpuinfo)
+ # Use quarter of the vCPUs to avoid OOM kill failure and disk issues on this variant.
+ smp_command: -j $(echo $(grep -c ^processor /proc/cpuinfo) / 4 | bc)
make_command: PATH=/opt/mongodbtoolchain/v3/bin:$PATH make
test_env_vars:
PATH=/opt/mongodbtoolchain/v3/bin:$PATH
@@ -3653,34 +3676,6 @@ buildvariants:
- name: ".stress-test-ppc-1"
- name: ".stress-test-ppc-2"
-- name: ubuntu1804-ppc-cmake
- display_name: "* Ubuntu 18.04 PPC CMake"
- run_on:
- - ubuntu1804-power8-test
- batchtime: 10080 # 7 days
- expansions:
- test_env_vars:
- WT_BUILDDIR=$(git rev-parse --show-toplevel)/cmake_build
- LD_LIBRARY_PATH=$WT_BUILDDIR
- posix_configure_flags:
- -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/mongodbtoolchain_v3_gcc.cmake
- -DCMAKE_C_FLAGS="-ggdb"
- -DHAVE_DIAGNOSTIC=1
- -DENABLE_PYTHON=1
- -DENABLE_ZLIB=1
- -DENABLE_SNAPPY=1
- -DENABLE_STRICT=1
- -DCMAKE_INSTALL_PREFIX=$(pwd)/LOCAL_INSTALL
- python_binary: '/opt/mongodbtoolchain/v3/bin/python3'
- smp_command: -j $(grep -c ^processor /proc/cpuinfo)
- cmake_generator: Ninja
- make_command: ninja
- is_cmake_build: true
- tasks:
- - name: compile
- - name: make-check-test
- - name: unit-test
-
- name: ubuntu1804-zseries
display_name: "~ Ubuntu 18.04 zSeries"
run_on: