Azure / Azure/hpcpack

DataClient.Create(string, string) fails during authentication in NET8

Open
#75 1 comment 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.