diff --git a/azure-pipelines-arcade.yml b/azure-pipelines-arcade.yml index 3ff43fbb9ac..1f4b60c75a2 100644 --- a/azure-pipelines-arcade.yml +++ b/azure-pipelines-arcade.yml @@ -80,16 +80,12 @@ stages: # Internal/Official Build Variables - ${{ if eq(variables._RunAsInternal, True) }}: # Only enable publishing in non-public, non PR scenarios. - # DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1 # Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT # DotNet-HelixApi-Access provides: HelixApiAccessToken - - group: DotNet-Blob-Feed - group: Publish-Build-Assets - group: DotNet-HelixApi-Access - _PublishBlobFeedUrl: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json - _InternalBuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) - /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) - /p:DotNetPublishBlobFeedUrl=$(_PublishBlobFeedUrl) /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed) /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory) diff --git a/src/System.ServiceModel.NetTcp/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs b/src/System.ServiceModel.NetTcp/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs index 6c9e3644690..9dfe83bbf12 100644 --- a/src/System.ServiceModel.NetTcp/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs +++ b/src/System.ServiceModel.NetTcp/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs @@ -20,7 +20,11 @@ internal class SocketAwaitableEventArgs : SocketAsyncEventArgs, IValueTaskSource { private static readonly Action _continuationCompleted = _ => { }; - private Action _continuation; + // There are places where we read the _continuation field and then read some other state which we assume to be consistent + // with the value we read in _continuation. Without a fence, those secondary reads could be reordered with respect to the first. + // https://github.com/dotnet/runtime/pull/84432 + // https://github.com/dotnet/aspnetcore/issues/50623 + private volatile Action _continuation; public SocketAwaitableEventArgs() : base(unsafeSuppressExecutionContextFlow: true) { } diff --git a/src/System.ServiceModel.UnixDomainSocket/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs b/src/System.ServiceModel.UnixDomainSocket/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs index 6c9e3644690..9dfe83bbf12 100644 --- a/src/System.ServiceModel.UnixDomainSocket/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs +++ b/src/System.ServiceModel.UnixDomainSocket/src/System/ServiceModel/Channels/SocketAwaitableEventArgs.cs @@ -20,7 +20,11 @@ internal class SocketAwaitableEventArgs : SocketAsyncEventArgs, IValueTaskSource { private static readonly Action _continuationCompleted = _ => { }; - private Action _continuation; + // There are places where we read the _continuation field and then read some other state which we assume to be consistent + // with the value we read in _continuation. Without a fence, those secondary reads could be reordered with respect to the first. + // https://github.com/dotnet/runtime/pull/84432 + // https://github.com/dotnet/aspnetcore/issues/50623 + private volatile Action _continuation; public SocketAwaitableEventArgs() : base(unsafeSuppressExecutionContextFlow: true) { }