As soon as I try to do a deploy, the tentacle crashes. Can’t find any log, and if I try running the interactive version nothing happens. Octopus still reports success under Tasks, but the last reported step is “Completed download of NuGet package”.
Correction: Tentacle crashes even without doing a deploy. Seems to die after a minute or so.
I did manage to get an error when running against the interactive Tentacle (sorry 'bout the Swedish error message!):
2011-06-23 15:41:10 ERROR System.ServiceModel.Security.SecurityNegotiationException: SOAP-säkerhetsverifieringen misslyckades. Du hittar mer information i det interna undantaget. —> System.ArgumentException: Det är troligt att certifikatet CN=Octopus Portal inte innehåller någon privat nyckel som har kapacitet för nyckelutbyte. Processen kanske inte heller har åtkomsträttigheter till den privata nyckeln. Information finns i det ursprungliga undantaget. —> System.Security.Cryptography.CryptographicException: Nyckeluppsättningen finns inte
vid System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
vid System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
vid System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
vid System.Security.Cryptography.RSACryptoServiceProvider…ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
vid System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()
vid System.ServiceModel.Security.TlsSspiNegotiation.ValidatePrivateKey(X509Certificate2 certificate)
— Slut på stackspårning för interna undantag —
vid System.ServiceModel.Security.TlsSspiNegotiation.ValidatePrivateKey(X509Certificate2 certificate)
vid System.ServiceModel.Security.TlsSspiNegotiation…ctor(String destination, Boolean isServer, SchProtocols protocolFlags, X509Certificate2 serverCertificate, X509Certificate2 clientCertificate, Boolean clientCertRequired)
vid System.ServiceModel.Security.TlsnegoTokenProvider.CreateTlsSspiState(X509SecurityToken token)
vid System.ServiceModel.Security.TlsnegoTokenProvider.CreateNegotiationState(EndpointAddress target, Uri via, TimeSpan timeout)
vid System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
— Slut på stackspårning för interna undantag —
Server stack trace:
vid System.ServiceModel.Security.IssuanceTokenProviderBase1.DoNegotiation(TimeSpan timeout) vid System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout) vid System.ServiceModel.Security.TlsnegoTokenProvider.OnOpen(TimeSpan timeout) vid System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout) vid System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) vid System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open(TimeSpan timeout) vid System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout) vid System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout) vid System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) vid System.ServiceModel.Channels.SecurityChannelFactory
1.ClientSecurityChannel1.OnOpen(TimeSpan timeout) vid System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) vid System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation operation, EndpointAddress target, Uri via, SecurityToken currentToken, TimeSpan timeout) vid System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout) vid System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout) vid System.ServiceModel.Security.SecuritySessionClientSettings
1.ClientSecuritySessionChannel.OnOpen(TimeSpan timeout)
vid System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
vid System.ServiceModel.Channels.ReliableChannelBinder1.ChannelSynchronizer.SyncWaiter.TryGetChannel() vid System.ServiceModel.Channels.ReliableChannelBinder
1.ChannelSynchronizer.SyncWaiter.TryWait(TChannel& channel)
vid System.ServiceModel.Channels.ReliableChannelBinder1.ChannelSynchronizer.TryGetChannel(Boolean canGetChannel, Boolean canCauseFault, TimeSpan timeout, MaskingMode maskingMode, TChannel& channel) vid System.ServiceModel.Channels.ClientReliableChannelBinder
1.Request(Message message, TimeSpan timeout, MaskingMode maskingMode)
vid System.ServiceModel.Channels.RequestReliableRequestor.OnRequest(Message request, TimeSpan timeout, Boolean last)
vid System.ServiceModel.Channels.ReliableRequestor.Request(TimeSpan timeout)
vid System.ServiceModel.Channels.ClientReliableSession.Open(TimeSpan timeout)
vid System.ServiceModel.Channels.ReliableRequestSessionChannel.OnOpen(TimeSpan timeout)
vid System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
vid System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
vid System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
vid System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
vid System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
vid System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
vid System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
vid System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
vid System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
vid System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
vid Octopus.Core.Contracts.IPackageService.BeginUpload(PackageMetadata metadata)
vid Octopus.Deployment.PackagePusher.Push(FetchedPackage package, String tentacleEndpoint) i l:\Stovell Australia\Octopus\source\Octopus\Deployment\PackagePusher.cs:rad 29
vid Octopus.Deployment.DeployTaskExecutor.DeployPackagesToEnvironment(Deployment deployment, Project project, Dictionary`2 packageCache) i l:\Stovell Australia\Octopus\source\Octopus\Deployment\DeployTaskExecutor.cs:rad 94
vid Octopus.Deployment.DeployTaskExecutor.Execute(String arguments) i l:\Stovell Australia\Octopus\source\Octopus\Deployment\DeployTaskExecutor.cs:rad 62
vid Octopus.Tasks.TaskQueue.<>c__DisplayClass3.b__0(Object ) i l:\Stovell Australia\Octopus\source\Octopus\Tasks\TaskQueue.cs:rad 91
Hi Peter,
Are you running the latest build here:
An issue with those certificates should have been fixed in the last build.
If so, can you try one more thing for me?
- Click Start, type “mmc”
- In the File menu, click Add/Remove Snap Ins
- Choose Certificates
- Choose Computer Account (not My User)
- Next, finish
- Expand Certificates->Personal->Certificates
- Right click the Octopus Portal certificate
- All Tasks -> Manage private keys…
- Click “Add”, and add “users” to the accounts list
- Click “OK”
Now re-start the services/re-run them in admin mode, and try a deploy again. Let me know if that works.
If this solves the problem, I’ll automate it as part of the install from now on.
Paul
Downloaded the latest build, same problem. Tentacle service dies within seconds of starting. Managed to get a deploy working by running in interactive mode though, and by fixing both the certificates (just the portal made no difference).
/Peter
Certificate related issues should be fixed in the latest build: