DataClient.Create(string, string) fails during authentication in NET8
- Dominant language
- PowerShell
- Stars
- 34
- Forks
- 19
- Avg merge
- 41m
- Merged PRs (30d)
- 4
Description
#### Problem Description
Microsoft.Hpc.Scheduler.Session.Data.DataClient.Create(string, string) throws an exception when running on NET8. The same code runs successfully when running in .NET Framework. I use microsoft.hpc.sdk 6.3.8328. See callstack below.
I already was able to track it down: the internal method DataServiceAgent.GetEndpoint() prepends "HOST/" to the URL, which should't be done.
The only workaround that I could find is to explicitely provide user and password, which I'd like to avoid.
#### Additional Logs
```
Microsoft.Hpc.Scheduler.Session.Data.DataException: Failed to connect to data service.
---> System.ServiceModel.Security.SecurityNegotiationException: Authentication failed, see inner exception.
---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
---> System.ComponentModel.Win32Exception (0x8009030D): The credentials supplied to the package were not recognized
--- End of inner exception stack trace ---
at System.Net.Security.NegotiateStream.SendAuthResetSignalAndThrowAsync[TIOAdapter](Byte[] message, Exception exception, CancellationToken cancellationToken)
at System.Net.Security.NegotiateStream.SendBlobAsync[TIOAdapter](Byte[] message, CancellationToken cancellationToken)
at System.Net.Security.NegotiateStream.AuthenticateAsync[TIOAdapter](CancellationToken cancellationToken)
at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgradeAsync(Stream stream)
--- End of inner exception stack trace ---
at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgradeAsync(Stream stream)
at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgradeAsync(Stream stream)
at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgradeAsync(StreamUpgradeInitiator upgradeInitiator, IConnection connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreambleAsync(IConnection connection, Memory`1 preamble, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnectionAsync(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpenAsync(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.OnOpenAsyncInternal(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.System.ServiceModel.IAsyncCommunicationObject.OpenAsync(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpenAsync(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.OnOpenAsyncInternal(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.System.ServiceModel.IAsyncCommunicationObject.OpenAsync(TimeSpan timeout)
at System.Runtime.TaskHelpers.ToApmEnd(IAsyncResult iar)
at System.ServiceModel.Channels.CommunicationObject.EndOpen(IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.EndCall(ServiceChannel channel, IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.EndCallOnce(IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndEnsureOpened(IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.FinishEnsureOpen(IAsyncResult result, Boolean completedSynchronously)
--- End of stack trace from previous location ---
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeEndService(MethodCall methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(MethodInfo targetMethod, Object[] args)
at generatedProxy_1.EndCreateDataClientV4(IAsyncResult)
at Microsoft.Hpc.Scheduler.Session.Data.Internal.DataServiceAgent.CreateDataClientV4(String dataClientId, String[] allowedUsers, DataLocation location)
at Microsoft.Hpc.Scheduler.Session.Data.DataClient.<>c__DisplayClass43_0.b__0(IDataService agent)
at Microsoft.Hpc.Scheduler.Session.Data.DataClient.InvokeDataOperation[T](IDataService agent, DataOperation`1 operation)
--- End of inner exception stack trace ---
at Microsoft.Hpc.Scheduler.Session.Data.DataClient.InvokeDataOperation[T](IDataService agent, DataOperation`1 operation)
at Microsoft.Hpc.Scheduler.Session.Data.DataClient.CreateInternal(String headNode, String dataClientId, String[] allowedUsers, TransportScheme scheme, DataLocation location, String userName, String password)
at Microsoft.Hpc.Scheduler.Session.Data.DataClient.Create(String headNode, String dataClientId)
```
#### Additonal Comments
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.