-
Notifications
You must be signed in to change notification settings - Fork 5.1k
[release/8.0] Merge release/8.0-staging changes #118763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ures test on CI runs (#117489) Co-authored-by: Jeremy Koritzinsky <[email protected]> Co-authored-by: Jeremy Koritzinsky <[email protected]>
….0-staging [automated] Merge branch 'release/8.0' => 'release/8.0-staging'
…ild 20250728.2 (#118128) Microsoft.DotNet.HotReload.Utils.Generator.BuildTool From Version 8.0.0-alpha.0.25330.2 -> To Version 8.0.0-alpha.0.25378.2 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Backport of #117968 to release/8.0-staging
…protocol on macOS26. (#118213) Backport of #118120 * Add support for new startup handshake protocol over pipes instead of sempahores. * Remove NonBlocking runtime support. * Renames, logging and simplification. * Improve tracing. * Make open check non blocking. * Fold access into open calls and track ENOENT | ENOACCES * Review feedback. --------- Co-authored-by: lateralusX <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR merges changes from the release/8.0-staging branch into the release/8.0 branch, bringing in multiple fixes and improvements across different components of the .NET runtime.
Key changes include:
- Implementation of a pipe-based runtime event notification system as a fallback for macOS debugging issues
- Fixes to X509 certificate chain validation test logic
- Performance improvements in garbage collection card marking
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
src/coreclr/pal/src/thread/process.cpp | Adds pipe-based runtime event notification system for macOS debugging with semaphore fallback |
src/coreclr/gc/gc.cpp | Improves card clearing logic in garbage collection with feature-specific optimizations |
src/libraries/System.Security.Cryptography/tests/X509Certificates/ChainTests.cs | Fixes certificate chain validation test to properly handle allowed status flags |
src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/CollectionMarshallingFails.cs | Renames test method and adds CI skip attribute for memory-intensive test |
eng/Versions.props | Updates Microsoft.DotNet.HotReload.Utils.Generator.BuildTool version |
eng/Version.Details.xml | Updates dependency details for HotReload utils with new SHA |
NuGet.config | Removes obsolete package source entries and adds new ones |
|
||
do | ||
{ | ||
bytesWritten = write(startupPipeFd, buffer + offset, bytesToWrite - offset); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The offset
variable is declared at function scope but used within a local block scope. This could lead to incorrect behavior as offset
is initialized to 0 at the top of the function but then reused for a different purpose in the read operation later.
Copilot uses AI. Check for mistakes.
} | ||
while ((bytesRead > 0 && offset < bytesToRead) || (bytesRead == -1 && errno == EINTR)); | ||
|
||
if (offset == bytesToRead && event == (unsigned char)RuntimeEvent_Continue) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable offset
is being reused for both write and read operations. Consider using separate variables (e.g., writeOffset
and readOffset
) to improve code clarity and prevent potential bugs.
if (offset == bytesToRead && event == (unsigned char)RuntimeEvent_Continue) | |
int readOffset = 0; | |
do | |
{ | |
bytesRead = read(continuePipeFd, buffer + readOffset, bytesToRead - readOffset); | |
if (bytesRead > 0) | |
{ | |
readOffset += bytesRead; | |
} | |
} | |
while ((bytesRead > 0 && readOffset < bytesToRead) || (bytesRead == -1 && errno == EINTR)); | |
if (readOffset == bytesToRead && event == (unsigned char)RuntimeEvent_Continue) |
Copilot uses AI. Check for mistakes.
|
/ba-g
|
Copilot will generate this