Skip to content

Commit 799203b

Browse files
authored
Merge branch 'main' into zgu/test_cmd_opts
2 parents 15dbbf7 + 0c8985a commit 799203b

53 files changed

Lines changed: 2032 additions & 160 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
5050

5151
- name: Setup Java
52-
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5.4.0
52+
uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5.5.0
5353
with:
5454
distribution: 'zulu'
5555
java-version: '21'
@@ -90,7 +90,7 @@ jobs:
9090
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
9191

9292
- name: Setup Java
93-
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5.4.0
93+
uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5.5.0
9494
with:
9595
distribution: 'zulu'
9696
java-version: '21'

.github/workflows/codecheck.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ jobs:
7676

7777
# Initializes the CodeQL tools for scanning.
7878
- name: Initialize CodeQL
79-
uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3
79+
uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
8080
with:
8181
languages: ${{ matrix.language }}
8282
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -85,4 +85,4 @@ jobs:
8585
# queries: ./path/to/local/query, your-org/your-repo/queries@main
8686
- run: ./gradlew -x test assembleReleaseJar
8787
- name: Perform CodeQL Analysis
88-
uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4.36.3
88+
uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0

.github/workflows/release-validated.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
fetch-depth: 0
4444

4545
- name: Setup Java
46-
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5.4.0
46+
uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5.5.0
4747
with:
4848
distribution: 'zulu'
4949
java-version: '21'
@@ -204,7 +204,7 @@ jobs:
204204
git checkout $GITHUB_REF_NAME
205205
206206
- name: Setup Java
207-
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5.4.0
207+
uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5.5.0
208208
with:
209209
distribution: 'zulu'
210210
java-version: '21'

.gitlab/reliability/chaos_check.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ case $ALLOCATOR in
123123
tcmalloc)
124124
echo "Running with tcmalloc"
125125
export LD_PRELOAD=$(find /usr/lib/ -name 'libtcmalloc_minimal.so.4')
126+
# thread-churn/dump-storm antagonists cycle many short-lived threads;
127+
# tcmalloc's defaults are slow to return their per-thread caches to the
128+
# OS, which was inflating container RSS past the OOM limit on aarch64.
129+
export TCMALLOC_RELEASE_RATE=10
130+
export TCMALLOC_AGGRESSIVE_DECOMMIT=1
126131
;;
127132
jemalloc)
128133
echo "Running with jemalloc"

AGENTS.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,19 @@ table: see [doc/build/JdkUpgrades.md](doc/build/JdkUpgrades.md).
439439
- All code needs to strive to be lean in terms of resources consumption and easy to follow -
440440
do not shy away from factoring out self containing code to shorter functions with explicit name
441441

442+
## CI / Automation Script Changes
443+
- Before rewriting or replacing a script invoked from `.gitlab-ci.yml`, `.gitlab/**/*.yml`, or any CI job,
444+
run `git log -p -- <script>` (or diff against the version being replaced) and enumerate every behavior
445+
branch it has — fallbacks, env-var-driven paths, error exits. Preserve all of them unless explicitly
446+
asked to drop one; do not silently narrow behavior while refactoring.
447+
- Grep the calling `.gitlab-ci.yml` / `.gitlab/**/*.yml` jobs for how the script is invoked (env vars set,
448+
exit codes expected) and confirm the rewrite still satisfies every caller, not just the common/local case.
449+
- When removing an item from a default list or config (an antagonist, a test tag, a feature flag), cite
450+
the exact file/line proving it is inert or unused in that context before removing it — never remove
451+
based on assumption alone.
452+
- After changing a CI-invoked script, run a syntax check (e.g. `bash -n <script>`) and trace through each
453+
CI job that calls it before considering the change complete.
454+
442455
### C/C++ Code Style
443456
- **Indentation**: Match the exact indentation style of the surrounding code in each file. Do not introduce inconsistent indentation — reviewers will flag it.
444457
- **Minimal complexity**: Do not split inline logic into separate helper functions unless the helpers are reused or the original is genuinely hard to follow. Unnecessary splits add indirection without value.

README.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,23 +169,40 @@ By default, the script clones the repository at the current commit for clean bui
169169
# Force rebuild of base image only (useful after Alpine/Ubuntu updates)
170170
./utils/run-containers-tests.sh --libc=musl --rebuild-base
171171

172+
# Preview all supported musl cells (sanitizer configs are skipped, matching CI policy)
173+
./utils/run-containers-tests.sh --matrix --libc=musl
174+
175+
# Run all supported musl cells without an interactive prompt
176+
./utils/run-containers-tests.sh --matrix --libc=musl --run
177+
178+
# Preview selected JDKs across every supported libc/architecture pair
179+
./utils/run-containers-tests.sh --libc=all --jdk=8,17,21 --arch=all
180+
181+
# Run all OpenJ9 cells
182+
./utils/run-containers-tests.sh --matrix --jdk=j9 --run
183+
172184
# Show options
173185
./utils/run-containers-tests.sh --help
174186
```
175187

176188
Supported options:
177-
- `--libc=glibc|musl` (default: glibc)
178-
- `--jdk=8|11|17|21|25|8-j9|11-j9|17-j9|21-j9|17-graal|21-graal|25-graal` (default: 21)
179-
- `--arch=x64|aarch64` (default: auto-detect)
180-
- `--config=debug|release|asan|tsan` (default: debug)
189+
- `--libc=glibc|musl|all[,..]` (default: glibc)
190+
- `--jdk=8|11|17|21|25|8-j9|11-j9|17-j9|21-j9|17-graal|21-graal|25-graal|regular|j9|graal|all[,..]` (default: 21)
191+
- `--arch=x64|aarch64|all[,..]` (default: auto-detect)
192+
- `--config=debug|release|asan|tsan|all[,..]` (default: debug)
181193
- `--container=podman|docker` (default: podman)
182194
- `--tests="TestPattern"`
183195
- `--gtest` (enable C++ gtests, disabled by default for faster runs)
184-
- `--gtest-task=Task` (run one C++ gtest task; accepts `elfparser_ut` or a full task path like `:ddprof-lib:gtestAsan_elfparser_ut`)
196+
- `--gtest-task=Task` (run one C++ gtest task; matrix runs require a short name like `elfparser_ut`, while single-cell runs also accept a full task path like `:ddprof-lib:gtestAsan_elfparser_ut`)
185197
- `--shell` (interactive shell instead of running tests)
186198
- `--mount` (mount local repo instead of cloning - faster but may have stale artifacts)
187199
- `--rebuild` (force rebuild of all container images)
188200
- `--rebuild-base` (force rebuild of base image only)
201+
- `--matrix` (preview a full test matrix; unset dimensions expand to `all`)
202+
- `--run` (execute an inferred matrix without prompting)
203+
- `--fail-fast` (stop matrix execution on first failure)
204+
205+
Single-value commands run one configuration immediately. When any dimension expands to multiple cells, the script prints a compact status table first; interactive terminals ask for confirmation, while non-interactive runs require `--run` to execute. Matrix execution prints the status table again after all cells finish and writes summaries to `build/reports/container-matrix/summary.md` and `build/reports/container-matrix/summary.json`. Cells not run because of `--fail-fast` are reported as cancelled separately from unsupported cells that are skipped.
189206

190207
## Unwinding Validation Tool
191208

ddprof-lib/src/main/cpp/counters.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
X(DICTIONARY_ENDPOINTS_ARENA_WASTE_BYTES, "dictionary_endpoints_arena_waste_bytes") \
4343
X(DICTIONARY_CONTEXT_ARENA_WASTE_BYTES, "dictionary_context_arena_waste_bytes") \
4444
X(DICTIONARY_DRAIN_TIMEOUTS, "dictionary_drain_timeouts") \
45+
X(CLASS_MAP_AT_CAPACITY, "class_map_at_capacity_drops") \
4546
X(CONTEXT_STORAGE_BYTES, "context_storage_bytes") \
4647
X(CONTEXT_STORAGE_PAGES, "context_storage_pages") \
4748
X(CONTEXT_BOUNDS_MISS_INITS, "context_bounds_miss_inits") \
@@ -73,6 +74,7 @@
7374
X(UNWINDING_TIME_JVMTI, "unwinding_ticks_jvmti") \
7475
X(CALLTRACE_STORAGE_DROPPED, "calltrace_storage_dropped_traces") \
7576
X(LINE_NUMBER_TABLES, "line_number_tables") \
77+
X(LINE_NUMBER_TABLE_UNREADABLE, "line_number_table_unreadable") \
7678
X(REMOTE_SYMBOLICATION_FRAMES, "remote_symbolication_frames") \
7779
X(REMOTE_SYMBOLICATION_LIBS_WITH_BUILD_ID, "remote_symbolication_libs_with_build_id") \
7880
X(REMOTE_SYMBOLICATION_BUILD_ID_CACHE_HITS, "remote_symbolication_build_id_cache_hits") \

0 commit comments

Comments
 (0)