Summary:
This disables Linux/amd64 builds in Travis for PRs, and adds a
gcc-10+c++20 build in CircleCI, which should fill out sufficient coverage
vs. what we had in Travis
Fixed a use of std::is_pod, which is deprecated in c++20
Fixed ++ on a volatile in db_repl_stress.cc, with bigger refactoring.
Although ++ on this volatile was probably ok with one thread writer and
one thread reader, the code was still overly complex. There was a
deadcode check for error
`if (replThread.no_read < dataPump.no_records)` which can be proven
never to happen based on the structure of the code. It infinite loops
instead for the case intended to be checked. I just simplified the code
for what should be the same checking power.
Also most configurations seem to be using make parallelism = 2 * vcores,
so fixing / using that.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/7791
Test Plan:
CI
and `while ./db_repl_stress; do echo again; done` for a while
Reviewed By: siying
Differential Revision: D25669834
Pulled By: pdillinger
fbshipit-source-id: b2c688053d0b1d52c989903449d3cd27a04130d6
main
Peter Dillinger4 years agocommitted byFacebook GitHub Bot
- run:CC=clang CXX=clang++ USE_CLANG=1 PORTABLE=1 make V=1 -j32 all | .circleci/cat_ignore_eagain
- run:CC=clang CXX=clang++ USE_CLANG=1 PORTABLE=1 make V=1 -j16 all | .circleci/cat_ignore_eagain
- post-steps
- post-steps
build-linux-clang10-asan:
build-linux-clang10-asan:
@ -271,33 +271,63 @@ jobs:
- run:CC=clang-10 CXX=clang++-10 ROCKSDB_DISABLE_ALIGNED_NEW=1 CLANG_ANALYZER="/usr/bin/clang++-10" CLANG_SCAN_BUILD=scan-build-10 USE_CLANG=1 make V=1 -j32 analyze | .circleci/cat_ignore_eagain# aligned new doesn't work for reason we haven't figured out. For unknown, reason passing "clang++-10" as CLANG_ANALYZER doesn't work, and we need a full path.
- run:CC=clang-10 CXX=clang++-10 ROCKSDB_DISABLE_ALIGNED_NEW=1 CLANG_ANALYZER="/usr/bin/clang++-10" CLANG_SCAN_BUILD=scan-build-10 USE_CLANG=1 make V=1 -j32 analyze | .circleci/cat_ignore_eagain# aligned new doesn't work for reason we haven't figured out. For unknown, reason passing "clang++-10" as CLANG_ANALYZER doesn't work, and we need a full path.
- post-steps
- post-steps
build-linux-cmake:
build-linux-cmake-no_test_run:
machine:
machine:
image:ubuntu-1604:202007-01
image:ubuntu-1604:202007-01
resource_class:2xlarge
resource_class:large
steps:
steps:
- checkout# check out the code in the project directory
- checkout# check out the code in the project directory
- run:(mkdir build && cd build && cmake -DWITH_GFLAGS=0 .. && make V=1 -j32) | .circleci/cat_ignore_eagain
- run:(mkdir build && cd build && cmake -DWITH_GFLAGS=0 .. && make V=1 -j8) | .circleci/cat_ignore_eagain
- post-steps
- post-steps
build-linux-unity:
build-linux-unity:
docker:# executor type
docker:# executor type
- image:gcc:latest
- image:gcc:latest
resource_class:xlarge
resource_class:large
steps:
steps:
- checkout# check out the code in the project directory
- checkout# check out the code in the project directory
- run:CC=gcc-10 CXX=g++-10 V=1 SKIP_LINK=1 ROCKSDB_CXX_STANDARD=c++20 make -j16 all | .circleci/cat_ignore_eagain# Linking broken because libgflags compiled with newer ABI
- post-steps
- post-steps
build-windows:
build-windows:
@ -547,9 +577,6 @@ workflows:
build-linux-lite-release:
build-linux-lite-release:
jobs:
jobs:
- build-linux-lite-release
- build-linux-lite-release
build-linux-clang-no-test:
jobs:
- build-linux-clang-no-test
build-linux-clang10-asan:
build-linux-clang10-asan:
jobs:
jobs:
- build-linux-clang10-asan
- build-linux-clang10-asan
@ -562,9 +589,6 @@ workflows:
build-linux-clang10-clang-analyze:
build-linux-clang10-clang-analyze:
jobs:
jobs:
- build-linux-clang10-clang-analyze
- build-linux-clang10-clang-analyze
build-linux-cmake:
jobs:
- build-linux-cmake
build-linux-unity:
build-linux-unity:
jobs:
jobs:
- build-linux-unity
- build-linux-unity
@ -608,9 +632,14 @@ workflows:
- build-linux-non-shm:
- build-linux-non-shm:
start_test:"statistics_test"# make sure unique in src.mk
start_test:"statistics_test"# make sure unique in src.mk