Unhandled exceptions on language server startup are not logged by E2E tests
- Dominant language
- Bicep
- Stars
- 3.6k
- Forks
- 830
- Avg merge
- 1d 21m
- Merged PRs (30d)
- 79
Description
I was investigating an issue with the language server E2E tests failing on the official build (worked on GH). Pulling the VSIX produced by the build immediately showed the failure, but the errors were missing in the log we're collecting.
The easiest way to repro, simply remove the snippet directory before launching the language server. You should see the errors similar to the ones below. We need to make sure that we collect these in the test logs to make debugging easier.
```
2021-03-27T10:18:43.785Z info: Current log level: debug.
2021-03-27T10:18:43.785Z info: Logger created
2021-03-27T10:18:43.786Z info: Launching Bicep language service...
2021-03-27T10:18:43.786Z info: Acquiring dotnet runtime...
2021-03-27T10:18:43.797Z debug: Found dotnet command at 'c:\Users\marci\AppData\Roaming\Code\User\globalStorage\ms-dotnettools.vscode-dotnet-runtime\.dotnet\5.0.4\dotnet.exe'.
2021-03-27T10:18:43.797Z debug: Found language server at 'c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\bicepLanguageServer\Bicep.LangServer.dll'.
2021-03-27T10:18:43.805Z info: Bicep language service started.
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\bicepLanguageServer\Snippets\Templates\res-aks-cluster.bicep'.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks)
at System.IO.File.InternalReadAllText(String path, Encoding encoding)
at System.IO.File.ReadAllText(String path)
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider.Initialize() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 46
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider..ctor() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 36
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Rules.<>c__DisplayClass62_1.b__2(Request req)
at DryIoc.Factory.CheckCondition(Request request)
at DryIoc.RequestTools.MatchFactoryConditionAndMetadata(Request request, Factory factory)
at DryIoc.Container.GetRuleSelectedServiceFactoryOrDefault(Request request, Type serviceType)
at DryIoc.Container.DryIoc.IContainer.GetServiceFactoryOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.ResolveFactory(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.JsonRpc.JsonRpcHandlerCollectionExtensions.Populate(IJsonRpcHandlerCollection collection, IResolverContext resolverContext, IHandlersManager handlersManager)
at OmniSharp.Extensions.LanguageServer.Shared.LanguageProtocolServiceCollectionExtensions.<>c__0`1.b__0_2(SharedHandlerCollection manager, IResolverContext context)
at DryIoc.Registrator.Initializer[TTarget,TService](TService service, IResolverContext resolver, Action`2 initialize)
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.GetDecoratorExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Resolver.Resolve[TService](IResolver resolver, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(LanguageServerOptions options, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.PreInit(Action`1 optionsAction)
at Bicep.LanguageServer.Server..ctor(CreationOptions creationOptions, Action`1 onOptionsFunc) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 48
at Bicep.LanguageServer.Server..ctor(Stream input, Stream output, CreationOptions creationOptions) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 41
at Bicep.LanguageServer.Program.<>c.<b__0_0>d.MoveNext() in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 18
--- End of stack trace from previous location ---
at Bicep.LanguageServer.Program.RunWithCancellationAsync(Func`2 runFunc) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 47
at Bicep.LanguageServer.Program.Main(String[] args) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 14
at Bicep.LanguageServer.Program.(String[] args)
Error: Connection closed
[Info - 3:18:45 AM] Connection to server got closed. Server will restart.
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\bicepLanguageServer\Snippets\Templates\res-aks-cluster.bicep'.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks)
at System.IO.File.InternalReadAllText(String path, Encoding encoding)
at System.IO.File.ReadAllText(String path)
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider.Initialize() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 46
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider..ctor() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 36
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Rules.<>c__DisplayClass62_1.b__2(Request req)
at DryIoc.Factory.CheckCondition(Request request)
at DryIoc.RequestTools.MatchFactoryConditionAndMetadata(Request request, Factory factory)
at DryIoc.Container.GetRuleSelectedServiceFactoryOrDefault(Request request, Type serviceType)
at DryIoc.Container.DryIoc.IContainer.GetServiceFactoryOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.ResolveFactory(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.JsonRpc.JsonRpcHandlerCollectionExtensions.Populate(IJsonRpcHandlerCollection collection, IResolverContext resolverContext, IHandlersManager handlersManager)
at OmniSharp.Extensions.LanguageServer.Shared.LanguageProtocolServiceCollectionExtensions.<>c__0`1.b__0_2(SharedHandlerCollection manager, IResolverContext context)
at DryIoc.Registrator.Initializer[TTarget,TService](TService service, IResolverContext resolver, Action`2 initialize)
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.GetDecoratorExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Resolver.Resolve[TService](IResolver resolver, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(LanguageServerOptions options, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.PreInit(Action`1 optionsAction)
at Bicep.LanguageServer.Server..ctor(CreationOptions creationOptions, Action`1 onOptionsFunc) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 48
at Bicep.LanguageServer.Server..ctor(Stream input, Stream output, CreationOptions creationOptions) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 41
at Bicep.LanguageServer.Program.<>c.<b__0_0>d.MoveNext() in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 18
--- End of stack trace from previous location ---
at Bicep.LanguageServer.Program.RunWithCancellationAsync(Func`2 runFunc) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 47
at Bicep.LanguageServer.Program.Main(String[] args) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 14
at Bicep.LanguageServer.Program.(String[] args)
Error: Connection closed
[Info - 3:18:45 AM] Connection to server got closed. Server will restart.
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\bicepLanguageServer\Snippets\Templates\res-aks-cluster.bicep'.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks)
at System.IO.File.InternalReadAllText(String path, Encoding encoding)
at System.IO.File.ReadAllText(String path)
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider.Initialize() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 46
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider..ctor() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 36
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Rules.<>c__DisplayClass62_1.b__2(Request req)
at DryIoc.Factory.CheckCondition(Request request)
at DryIoc.RequestTools.MatchFactoryConditionAndMetadata(Request request, Factory factory)
at DryIoc.Container.GetRuleSelectedServiceFactoryOrDefault(Request request, Type serviceType)
at DryIoc.Container.DryIoc.IContainer.GetServiceFactoryOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.ResolveFactory(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.JsonRpc.JsonRpcHandlerCollectionExtensions.Populate(IJsonRpcHandlerCollection collection, IResolverContext resolverContext, IHandlersManager handlersManager)
at OmniSharp.Extensions.LanguageServer.Shared.LanguageProtocolServiceCollectionExtensions.<>c__0`1.b__0_2(SharedHandlerCollection manager, IResolverContext context)
at DryIoc.Registrator.Initializer[TTarget,TService](TService service, IResolverContext resolver, Action`2 initialize)
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.GetDecoratorExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Resolver.Resolve[TService](IResolver resolver, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(LanguageServerOptions options, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.PreInit(Action`1 optionsAction)
at Bicep.LanguageServer.Server..ctor(CreationOptions creationOptions, Action`1 onOptionsFunc) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 48
at Bicep.LanguageServer.Server..ctor(Stream input, Stream output, CreationOptions creationOptions) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 41
at Bicep.LanguageServer.Program.<>c.<b__0_0>d.MoveNext() in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 18
--- End of stack trace from previous location ---
at Bicep.LanguageServer.Program.RunWithCancellationAsync(Func`2 runFunc) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 47
at Bicep.LanguageServer.Program.Main(String[] args) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 14
at Bicep.LanguageServer.Program.(String[] args)
Error: Connection closed
[Info - 3:18:46 AM] Connection to server got closed. Server will restart.
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\bicepLanguageServer\Snippets\Templates\res-aks-cluster.bicep'.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks)
at System.IO.File.InternalReadAllText(String path, Encoding encoding)
at System.IO.File.ReadAllText(String path)
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider.Initialize() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 46
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider..ctor() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 36
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Rules.<>c__DisplayClass62_1.b__2(Request req)
at DryIoc.Factory.CheckCondition(Request request)
at DryIoc.RequestTools.MatchFactoryConditionAndMetadata(Request request, Factory factory)
at DryIoc.Container.GetRuleSelectedServiceFactoryOrDefault(Request request, Type serviceType)
at DryIoc.Container.DryIoc.IContainer.GetServiceFactoryOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.ResolveFactory(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.JsonRpc.JsonRpcHandlerCollectionExtensions.Populate(IJsonRpcHandlerCollection collection, IResolverContext resolverContext, IHandlersManager handlersManager)
at OmniSharp.Extensions.LanguageServer.Shared.LanguageProtocolServiceCollectionExtensions.<>c__0`1.b__0_2(SharedHandlerCollection manager, IResolverContext context)
at DryIoc.Registrator.Initializer[TTarget,TService](TService service, IResolverContext resolver, Action`2 initialize)
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.GetDecoratorExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Resolver.Resolve[TService](IResolver resolver, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(LanguageServerOptions options, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.PreInit(Action`1 optionsAction)
at Bicep.LanguageServer.Server..ctor(CreationOptions creationOptions, Action`1 onOptionsFunc) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 48
at Bicep.LanguageServer.Server..ctor(Stream input, Stream output, CreationOptions creationOptions) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 41
at Bicep.LanguageServer.Program.<>c.<b__0_0>d.MoveNext() in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 18
--- End of stack trace from previous location ---
at Bicep.LanguageServer.Program.RunWithCancellationAsync(Func`2 runFunc) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 47
at Bicep.LanguageServer.Program.Main(String[] args) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 14
at Bicep.LanguageServer.Program.(String[] args)
Error: Connection closed
[Info - 3:18:47 AM] Connection to server got closed. Server will restart.
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\bicepLanguageServer\Snippets\Templates\res-aks-cluster.bicep'.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks)
at System.IO.File.InternalReadAllText(String path, Encoding encoding)
at System.IO.File.ReadAllText(String path)
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider.Initialize() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 46
at Bicep.LanguageServer.Snippets.ResourceSnippetsProvider..ctor() in C:\__w\1\s\src\Bicep.LangServer\Snippets\ResourceSnippetsProvider.cs:line 36
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Rules.<>c__DisplayClass62_1.b__2(Request req)
at DryIoc.Factory.CheckCondition(Request request)
at DryIoc.RequestTools.MatchFactoryConditionAndMetadata(Request request, Factory factory)
at DryIoc.Container.GetRuleSelectedServiceFactoryOrDefault(Request request, Type serviceType)
at DryIoc.Container.DryIoc.IContainer.GetServiceFactoryOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.ResolveFactory(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.JsonRpc.JsonRpcHandlerCollectionExtensions.Populate(IJsonRpcHandlerCollection collection, IResolverContext resolverContext, IHandlersManager handlersManager)
at OmniSharp.Extensions.LanguageServer.Shared.LanguageProtocolServiceCollectionExtensions.<>c__0`1.b__0_2(SharedHandlerCollection manager, IResolverContext context)
at DryIoc.Registrator.Initializer[TTarget,TService](TService service, IResolverContext resolver, Action`2 initialize)
at DryIoc.ReflectionTools.TryRethrowWithPreservedStackTrace(Exception ex)
at DryIoc.Interpreter.TryInterpretAndUnwrapContainerException(IResolverContext r, Expression expr, Boolean useFec, Object& result)
at DryIoc.Factory.ApplyReuse(Expression serviceExpr, Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.DryIoc.IContainer.GetDecoratorExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request)
at DryIoc.Factory.GetExpressionOrDefault(Request request)
at DryIoc.Container.ResolveAndCache(Int32 serviceTypeHash, Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, IfUnresolved ifUnresolved)
at DryIoc.Resolver.Resolve[TService](IResolver resolver, IfUnresolved ifUnresolved)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(LanguageServerOptions options, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction, IServiceProvider outerServiceProvider)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.Create(Action`1 optionsAction)
at OmniSharp.Extensions.LanguageServer.Server.LanguageServer.PreInit(Action`1 optionsAction)
at Bicep.LanguageServer.Server..ctor(CreationOptions creationOptions, Action`1 onOptionsFunc) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 48
at Bicep.LanguageServer.Server..ctor(Stream input, Stream output, CreationOptions creationOptions) in C:\__w\1\s\src\Bicep.LangServer\Server.cs:line 41
at Bicep.LanguageServer.Program.<>c.<b__0_0>d.MoveNext() in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 18
--- End of stack trace from previous location ---
at Bicep.LanguageServer.Program.RunWithCancellationAsync(Func`2 runFunc) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 47
at Bicep.LanguageServer.Program.Main(String[] args) in C:\__w\1\s\src\Bicep.LangServer\Program.cs:line 14
at Bicep.LanguageServer.Program.(String[] args)
Error: Connection closed
[Error - 3:18:47 AM] Connection to server got closed. Server will not be restarted.
2021-03-27T10:18:47.616Z error: Connection to server got closed. Server will not be restarted. - Error: Connection to server got closed. Server will not be restarted.
at x.handleConnectionClosed (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1471791)
at x.handleConnectionClosed (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1532008)
at t (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1469566)
at invoke (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1392642)
at o.fire (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1393403)
at X (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1380283)
at invoke (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1392642)
at o.fire (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1393403)
at fireClose (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1401292)
at Socket. (c:\Users\marci\.vscode\extensions\ms-azuretools.vscode-bicep-0.3.169-g23f55d7e81\out\extension.js:2:1402877)
at Socket.emit (events.js:327:22)
at Pipe. (net.js:674:12)
```
Contributor guide
Research direction
Reproduce the failure by removing the snippet directory before launching the language server, then inspect the E2E test log collection. Start with the startup path in src/Bicep.LangServer/Program.cs and the related Server.cs and ResourceSnippetsProvider.cs stack-trace entries. Done means unhandled startup exceptions appear in the E2E logs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, vscode
- Domain
- devtools, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100