Skip to content

Conversation

krwq
Copy link
Member

@krwq krwq commented Aug 15, 2025

Copilot will generate this

github-actions bot and others added 6 commits July 15, 2025 14:17
…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]>
@Copilot Copilot AI review requested due to automatic review settings August 15, 2025 08:32
Copy link
Contributor

@Copilot Copilot AI left a 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);
Copy link
Preview

Copilot AI Aug 15, 2025

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)
Copy link
Preview

Copilot AI Aug 15, 2025

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.

Suggested change
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.

@jozkee
Copy link
Member

jozkee commented Aug 15, 2025

Are we OK missing #117736?
EDIT: that's for next release, 8.0.21

@jozkee
Copy link
Member

jozkee commented Aug 15, 2025

@jozkee jozkee merged commit e6c1b03 into release/8.0 Aug 15, 2025
345 of 381 checks passed
@jozkee jozkee added this to the 8.0.20 milestone Aug 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants