Skip to content

add PR template#13

Merged
jbachorik merged 1 commit into
mainfrom
rgs/pr-template
Aug 24, 2023
Merged

add PR template#13
jbachorik merged 1 commit into
mainfrom
rgs/pr-template

Conversation

@richardstartin
Copy link
Copy Markdown
Contributor

No description provided.

@github-actions
Copy link
Copy Markdown
Contributor

🔧 Report generated by pr-comment-cppcheck

CppCheck Report

Style Violations (151)

@github-actions
Copy link
Copy Markdown
Contributor

🔧 Report generated by pr-comment-scanbuild

Scan-Build Report

User:runner@fv-az257-595
Working Directory:/home/runner/work/java-profiler/java-profiler/ddprof-lib/src/test/make
Command Line:make -j4 clean all
Clang Version:Ubuntu clang version 14.0.0-1ubuntu1.1
Date:Wed Aug 23 18:34:39 2023

Bug Summary

Bug TypeQuantityDisplay?
All Bugs5
Logic error
Assigned value is garbage or undefined1
Dereference of null pointer2
Result of operation is garbage or undefined1
Unused code
Dead nested assignment1

Reports

Bug Group Bug Type ▾ File Function/Method Line Path Length
Logic errorAssigned value is garbage or undefineddwarf.cppparseInstructions23120
Unused codeDead nested assignmentvmStructs.cppcheckNativeBinding6491
Logic errorDereference of null pointersafeAccess.hload3512
Logic errorDereference of null pointersymbols_linux.cppElfParser15435
Logic errorResult of operation is garbage or undefineddwarf.hgetSLeb12325

@jbachorik
Copy link
Copy Markdown
Collaborator

/merge

@dd-devflow
Copy link
Copy Markdown

dd-devflow Bot commented Aug 24, 2023

🚂 MergeQueue

Pull request added to the queue.

This build is going to start soon! (estimated merge in less than 0s)

you can cancel this operation by commenting your pull request with /merge -c!

@dd-devflow
Copy link
Copy Markdown

dd-devflow Bot commented Aug 24, 2023

🚨 MergeQueue

Tests failed on this commit c67894a

You should fix those tests and then re-add your pull request to the queue!

Details

checks are failing:

  • test-linux-musl (11.0.18+10)

If you need support, contact us on slack #ci-interfaces with those details!

@jbachorik jbachorik merged commit 32352f7 into main Aug 24, 2023
@jbachorik jbachorik deleted the rgs/pr-template branch August 24, 2023 06:36
jbachorik added a commit that referenced this pull request May 25, 2026
Code review surfaced 7 findings — 4 CONFIRMED, 3 PLAUSIBLE.  This
commit addresses all 7:

  #8 (CONFIRMED) — split isInSignalContext into a strict variant.
     dlopen_hook was treating null ProfiledThread as "in signal" and
     deferring refresh on every dlopen from uninstrumented JVM threads
     (VM Thread, JIT, GC), delaying wasmtime sigaction patching by up
     to 500 ms.  Add isInTrackedSignalContext() that returns false on
     null (only true when one of our SignalHandlerScopes is positively
     on the stack); dlopen_hook now uses it so JVM-internal threads
     get synchronous refresh again.  isInSignalContext() retains its
     conservative semantics for any future caller that wants
     AS-safe-by-default.

  #7 (CONFIRMED) — switchLibraryTrap was called before startRefresher
     despite the invariant comment.  Reorder so the refresher is
     running before the trap can fire.

  #9 (CONFIRMED) — DEBUG_ASSERT_NOT_IN_SIGNAL was on the 1-arg and
     2-arg Dictionary::lookup overloads but missed the 4-arg form
     that actually mallocs.  bounded_lookup's runtime-decided
     for_insert path was uncovered.  Move the assertion into the
     4-arg lookup, gated on for_insert (read-only lookups are
     AS-safe).

  #4 (CONFIRMED) — Comments referenced "REFRESH_INTERVAL_NS (5s)"
     but the actual constant is 500 ms.  Fix both stale mentions.

  #13 (PLAUSIBLE) — SIGNAL_HANDLER_GUARD_RELEASE before chaining
     leaves depth == 0 inside a chained handler that returns
     normally; DEBUG_ASSERT_NOT_IN_SIGNAL inside such a handler
     would not fire.  Document the trade-off in segvHandler — the
     longjmp safety property is more important than the sanitizer
     coverage gap, which is bounded to third-party signal handler
     code we don't own.

  #2 (PLAUSIBLE) — refresherLoop used OS::sleep without an EINTR
     loop; any unmasked signal (SIGCHLD, SIGURG, RT signals) would
     cause premature ticks.  Wrap the sleep in an explicit
     elapsed-time loop using OS::nanotime so the refresher ticks at
     500 ms regardless of stray signals.

  #14 (PLAUSIBLE) — refresherLoop published _refresher_tid before
     blocking SIGPROF/SIGVTALRM; a stale per-thread timer from a
     previous lifecycle could fire on the refresher during the
     window.  Block signals first, then publish the TID.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants