Skip to content

Conversation

@aitap
Copy link
Member

@aitap aitap commented Jun 8, 2025

Closes: #7051. Tested manually by running the reproducer in the same configuration that previously showed the warning. The NEWS item is technically correct but may be overly detailed.

Looking at the remaining memcpy() calls, I wasn't able to find any definite examples of the same thing happening; there's usually a way to prove that the size is above 0. Possible issues in the new froll code are tracked in #7054.

aitap added 2 commits June 8, 2025 21:13
During thread contention, it's possible for a thread to not call push()
even once, leaving gs_thread[me] unallocated. The resulting call to
memcpy() was noticed by a sanitizer during additional CRAN checks.
@aitap aitap requested a review from MichaelChirico as a code owner June 8, 2025 19:03
@codecov
Copy link

codecov bot commented Jun 8, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.69%. Comparing base (5bbc4d5) to head (ac7ac01).
Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #7055   +/-   ##
=======================================
  Coverage   98.69%   98.69%           
=======================================
  Files          79       79           
  Lines       14676    14676           
=======================================
  Hits        14485    14485           
  Misses        191      191           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Jun 8, 2025

  • HEAD=fix-7051 slower P<0.001 for memrecycle regression fixed in #5463
    Comparison Plot

Generated via commit ac7ac01

Download link for the artifact containing the test results: ↓ atime-results.zip

Task Duration
R setup and installing dependencies 2 minutes and 57 seconds
Installing different package versions 38 seconds
Running and plotting the test cases 2 minutes and 15 seconds

@MichaelChirico MichaelChirico requested a review from jangorecki June 8, 2025 19:42
@MichaelChirico
Copy link
Member

LGTM (needs a test); I'll let Jan review based on how it will fit into the ongoing froll workstream.

Copy link
Member

@jangorecki jangorecki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, could have nocov marker because codecov now complaints about added line

Currently, the condition is only encountered during thread contention,
which is prohibitively expensive to test or at least requires
non-portable tricks.
@aitap
Copy link
Member Author

aitap commented Jun 9, 2025 via email

@aitap aitap merged commit 2642b84 into master Jun 10, 2025
11 checks passed
@aitap aitap deleted the fix-7051 branch June 10, 2025 11:19
TysonStanley pushed a commit that referenced this pull request Jun 15, 2025
* flush(): avoid memcpy(<dst>, NULL, 0)

During thread contention, it's possible for a thread to not call push()
even once, leaving gs_thread[me] unallocated. The resulting call to
memcpy() was noticed by a sanitizer during additional CRAN checks.

* NEWS item

* Add nocov to the hard-to-test branch

Currently, the condition is only encountered during thread contention,
which is prohibitively expensive to test or at least requires
non-portable tricks.

* Explain why the branch is #nocov
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gcc-UBSAN on CRAN errors on forder.c:137:3: runtime error: null pointer passed as argument 2

3 participants