diff options
author | Luke Chen <luke.chen@mongodb.com> | 2023-05-02 11:54:38 +1000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-05-02 02:10:10 +0000 |
commit | 33fa2c6f6729f50cf93e6b6c9cd32484d9a15f14 (patch) | |
tree | 703550e3b55d0cd98e2dd2e253696345b243e4a9 | |
parent | cba4cc6bd8a4bbfeaed4631bba55ac50e8dde706 (diff) | |
download | mongo-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.ok | 1 | ||||
-rw-r--r-- | src/third_party/wiredtiger/import.data | 2 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/os_posix/os_fs.c | 11 | ||||
-rwxr-xr-x | src/third_party/wiredtiger/test/evergreen.yml | 77 |
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: |