Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

server-d process stuck in endless loop #336

Open
ryuukk opened this issue Aug 10, 2023 · 9 comments
Open

server-d process stuck in endless loop #336

ryuukk opened this issue Aug 10, 2023 · 9 comments

Comments

@ryuukk
Copy link
Contributor

ryuukk commented Aug 10, 2023

I'm not sure what causes it exactly, but in my project, after a while, serve-d becomes stuck and eat CPU

After i managed to attach a debugger and here are 2 call stacks from 2 runs:

serve-d.exe;;7FF6BD934F30
serve-d.exe;;7FF6BD928D5D
serve-d.exe;;7FF6BD830F9A
serve-d.exe;;7FF6BD877981
serve-d.exe;;7FF6BD828B83
serve-d.exe;core.internal.array.appending._d_arrayappendcTXImpl!(std.experimental.lexer.TokenStructure!(ubyte, "import dparse.lexer:TokenTriviaFields,TriviaToken; mixin TokenTriviaFields;")[], std.experimental.lexer.TokenStructure!(ubyte, "import dparse.lexer:TokenTriviaFields,TriviaToken; mixin TokenTriviaFields;"))._d_arrayappendcTX();7FF6BCDC5237
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A855
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A634
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A634
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A634
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.SpecifiedFunctionBody.accept();7FF6BD17A3C6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC6D
serve-d.exe;dparse.ast.FunctionBody.accept();7FF6BD114A23
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ADFD
serve-d.exe;dparse.ast.FunctionDeclaration.accept();7FF6BD117FE2
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10AE8D
serve-d.exe;dparse.ast.Declaration.accept();7FF6BD10CBB9
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A8ED
serve-d.exe;dparse.ast.Module.accept();7FF6BD17CD29
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10B5DD
serve-d.exe;workspaced.com.dcdext.DCDExtComponent.highlightRelated();7FF6BCCDAEE7
serve-d.exe;served.commands.highlight.fallbackDocumentHighlight();7FF6BC926387
serve-d.exe;served.commands.highlight.provideDocumentHighlight();7FF6BC925A5B
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.__lambda22(__T759, __T760, __T761, __T762)(name, symbol, arguments, uda)();7FF6BCA752AD
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.emitProtocolRaw!(served.utils.events.protocolMethod, (name, symbol, arguments, uda)
{
if (done)
return ;
trace("Calling request method ", name);
alias RequestResultT = typeof(symbol(arguments.expand));
static if (is(RequestResultT : JsonValue))
{
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
else
{
static if (!is(RequestResultT : _[], _) && isInputRange!RequestResultT)
{
handlePartialIterator(symbol, arguments);
return ;
}
else
{
static if (is(RequestResultT : T[], T))
{
if (numHandlers > 1)
{
handlePartialWork(symbol, arguments);
return ;
}
}
else
{
assert(numHandlers == 1, "Registered more than one " ~ msg.method ~ " handler on non-partial method returning " ~ RequestResultT.stringof);
}
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
}
}
, false).emitProtocolRaw.__lambda3(__T292, __T293, __T294)(name, symbol, uda)();7FF6BCA7515D
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.emitProtocolRaw!(served.utils.events.protocolMethod, (name, symbol, arguments, uda)
{
if (done)
return ;
trace("Calling request method ", name);
alias RequestResultT = typeof(symbol(arguments.expand));
static if (is(RequestResultT : JsonValue))
{
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
else
{
static if (!is(RequestResultT : _[], _) && isInputRange!RequestResultT)
{
handlePartialIterator(symbol, arguments);
return ;
}
else
{
static if (is(RequestResultT : T[], T))
{
if (numHandlers > 1)
{
handlePartialWork(symbol, arguments);
return ;
}
}
else
{
assert(numHandlers == 1, "Registered more than one " ~ msg.method ~ " handler on non-partial method returning " ~ RequestResultT.stringof);
}
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
}
}
, false).emitProtocolRaw.iterateExtensionMethodsByUDA!(served.utils.events.protocolMethod, (name, symbol, uda)
{
if (uda.method == method)
{
debug (PerfTraceLog)
{
mixin(traceStatistics(uda.method ~ ":" ~ name));
}

alias symbolArgs = Parameters!symbol;
static if (symbolArgs.length == 0)
{
auto arguments = tuple();
}
else
{
static if (symbolArgs.length == 1)
{
auto arguments = tuple(implParseParam!(symbolArgs[0])(params));
}
else
{
static if (availableExtraArgs.length > 0 && (symbolArgs.length <= 1 + availableExtraArgs.length))
{
auto arguments = tuple(implParseParam!(symbolArgs[0])(params), forward!(availableExtraArgs[0 .. symbolArgs.length + -1]));
}
else
{
static assert(0, "Function for " ~ name ~ " can't have more than one argument");
}
}
}
callback(name, symbol, arguments, uda);
return true;
}
else
return false;
}
, false).iterateExtensionMethodsByUDA();7FF6BCA6C953
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.emitProtocolRaw!(served.utils.events.protocolMethod, (name, symbol, arguments, uda)
{
if (done)
return ;
trace("Calling request method ", name);
alias RequestResultT = typeof(symbol(arguments.expand));
static if (is(RequestResultT : JsonValue))
{
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
else
{
static if (!is(RequestResultT : _[], _) && isInputRange!RequestResultT)
{
handlePartialIterator(symbol, arguments);
return ;
}
else
{
static if (is(RequestResultT : T[], T))
{
if (numHandlers > 1)
{
handlePartialWork(symbol, arguments);
return ;
}
}
else
{
assert(numHandlers == 1, "Registered more than one " ~ msg.method ~ " handler on non-partial method returning " ~ RequestResultT.stringof);
}
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
}
}
, false).emitProtocolRaw();7FF6BCA6B74A
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest();7FF6BC95CF5E
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).gotRequest.__lambda2();7FF6BC95DE8B
serve-d.exe;;7FF6BD86A13F
serve-d.exe;;7FF6BD8809FA
serve-d.exe;;7FF6BD8353D9

A different one after a retry:

serve-d.exe;dparse.ast.Expression.accept();7FF6BD16ED98
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ABED
serve-d.exe;dparse.ast.IfCondition.accept();7FF6BD194C8A
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10B0CD
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FA73
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A634
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.IfStatement.accept();7FF6BD10FAC5
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A8C8
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A634
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A634
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D95
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182D6C
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.Foreach!false.Foreach.accept();7FF6BD1207E7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ACDD
serve-d.exe;dparse.ast.StatementNoCaseNoDefault.accept();7FF6BD182E39
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BCCD
serve-d.exe;dparse.ast.Statement.accept();7FF6BD155183
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC9D
serve-d.exe;dparse.ast.DeclarationOrStatement.accept();7FF6BD154AAC
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A91D
serve-d.exe;dparse.ast.DeclarationsAndStatements.accept();7FF6BD1905C7
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A94D
serve-d.exe;dparse.ast.BlockStatement.accept();7FF6BD11C2D6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A4FD
serve-d.exe;dparse.ast.SpecifiedFunctionBody.accept();7FF6BD17A3C6
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10BC6D
serve-d.exe;dparse.ast.FunctionBody.accept();7FF6BD114A23
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10ADFD
serve-d.exe;dparse.ast.FunctionDeclaration.accept();7FF6BD117FE2
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10AE8D
serve-d.exe;dparse.ast.Declaration.accept();7FF6BD10CBB9
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10A8ED
serve-d.exe;dparse.ast.Module.accept();7FF6BD17CD29
serve-d.exe;dparse.ast.ASTVisitor.visit();7FF6BD10B5DD
serve-d.exe;workspaced.com.dcdext.DCDExtComponent.highlightRelated();7FF6BCCDAEE7
serve-d.exe;served.commands.highlight.fallbackDocumentHighlight();7FF6BC926387
serve-d.exe;served.commands.highlight.provideDocumentHighlight();7FF6BC925A5B
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.__lambda22(__T759, __T760, __T761, __T762)(name, symbol, arguments, uda)();7FF6BCA752AD
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.emitProtocolRaw!(served.utils.events.protocolMethod, (name, symbol, arguments, uda)
{
if (done)
return ;
trace("Calling request method ", name);
alias RequestResultT = typeof(symbol(arguments.expand));
static if (is(RequestResultT : JsonValue))
{
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
else
{
static if (!is(RequestResultT : _[], _) && isInputRange!RequestResultT)
{
handlePartialIterator(symbol, arguments);
return ;
}
else
{
static if (is(RequestResultT : T[], T))
{
if (numHandlers > 1)
{
handlePartialWork(symbol, arguments);
return ;
}
}
else
{
assert(numHandlers == 1, "Registered more than one " ~ msg.method ~ " handler on non-partial method returning " ~ RequestResultT.stringof);
}
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
}
}
, false).emitProtocolRaw.__lambda3(__T292, __T293, __T294)(name, symbol, uda)();7FF6BCA7515D
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.emitProtocolRaw!(served.utils.events.protocolMethod, (name, symbol, arguments, uda)
{
if (done)
return ;
trace("Calling request method ", name);
alias RequestResultT = typeof(symbol(arguments.expand));
static if (is(RequestResultT : JsonValue))
{
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
else
{
static if (!is(RequestResultT : _[], _) && isInputRange!RequestResultT)
{
handlePartialIterator(symbol, arguments);
return ;
}
else
{
static if (is(RequestResultT : T[], T))
{
if (numHandlers > 1)
{
handlePartialWork(symbol, arguments);
return ;
}
}
else
{
assert(numHandlers == 1, "Registered more than one " ~ msg.method ~ " handler on non-partial method returning " ~ RequestResultT.stringof);
}
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
}
}
, false).emitProtocolRaw.iterateExtensionMethodsByUDA!(served.utils.events.protocolMethod, (name, symbol, uda)
{
if (uda.method == method)
{
debug (PerfTraceLog)
{
mixin(traceStatistics(uda.method ~ ":" ~ name));
}

alias symbolArgs = Parameters!symbol;
static if (symbolArgs.length == 0)
{
auto arguments = tuple();
}
else
{
static if (symbolArgs.length == 1)
{
auto arguments = tuple(implParseParam!(symbolArgs[0])(params));
}
else
{
static if (availableExtraArgs.length > 0 && (symbolArgs.length <= 1 + availableExtraArgs.length))
{
auto arguments = tuple(implParseParam!(symbolArgs[0])(params), forward!(availableExtraArgs[0 .. symbolArgs.length + -1]));
}
else
{
static assert(0, "Function for " ~ name ~ " can't have more than one argument");
}
}
}
callback(name, symbol, arguments, uda);
return true;
}
else
return false;
}
, false).iterateExtensionMethodsByUDA();7FF6BCA6C953
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest.emitProtocolRaw!(served.utils.events.protocolMethod, (name, symbol, arguments, uda)
{
if (done)
return ;
trace("Calling request method ", name);
alias RequestResultT = typeof(symbol(arguments.expand));
static if (is(RequestResultT : JsonValue))
{
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
else
{
static if (!is(RequestResultT : _[], _) && isInputRange!RequestResultT)
{
handlePartialIterator(symbol, arguments);
return ;
}
else
{
static if (is(RequestResultT : T[], T))
{
if (numHandlers > 1)
{
handlePartialWork(symbol, arguments);
return ;
}
}
else
{
assert(numHandlers == 1, "Registered more than one " ~ msg.method ~ " handler on non-partial method returning " ~ RequestResultT.stringof);
}
auto requestResult = symbol(arguments.expand);
res.resultJson = requestResult.serializeJson;
done = true;
processRequestObservers(msg, requestResult);
}
}
}
, false).emitProtocolRaw();7FF6BCA6B74A
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).processRequest();7FF6BC95CF5E
serve-d.exe;served.types.LanguageServerRouter!(extension, LanguageServerConfig(128, 4096, EventProcessorConfig(["object", "served", "std", "core", "etc", "io", "workspaced", "fs"]), "serve-d", 30, 5)).gotRequest.__lambda2();7FF6BC95DE8B
serve-d.exe;;7FF6BD86A13F
serve-d.exe;;7FF6BD8809FA
serve-d.exe;;7FF6BD8353D9
@ryuukk
Copy link
Contributor Author

ryuukk commented Aug 10, 2023

It may be a problem with sublime text, i'll try to reproduce the freeze again and check sublime's log

And i'll try with vscode as well

@WebFreak001
Copy link
Member

WebFreak001 commented Aug 10, 2023

I think it might not be stuck in an endless loop, but rather takes a very long time to process the source code - do you have any complex things such as very nested code or very long code? You would need to find out the file in which this loop started happening to better resolve it. You may not immediately notice it if you don't keep an eye on the serve-d status all the time.

I'll add a rough optimization step that will filter out all {} blocks that don't contain the search token for the highlight code.

@ryuukk
Copy link
Contributor Author

ryuukk commented Aug 10, 2023

Code is not very complex, i got a freeze right now, while i was typing at line: 303

image

Notice the syntax check is also frozen

I checked in the log, i still receive jsons from serve-d, but the client doesn't seem to react to it

Could it be a worker thread that is stuck somewhere?

@WebFreak001
Copy link
Member

parsing code is sometimes synchronous, so if it is taking a very long time, it would also hang up all LSP communication. In case of highlighting related things, parsing code is synchronous.

@ryuukk
Copy link
Contributor Author

ryuukk commented Aug 10, 2023

I don't think it's slow, i left it for few minutes and still no response, main thread definitely is frozen and stuck on libdparse code

WebFreak001 added a commit that referenced this issue Aug 10, 2023
@WebFreak001
Copy link
Member

anyway I optimized some code here to avoid such deep AST visits, try out serve-d master

@ryuukk
Copy link
Contributor Author

ryuukk commented Aug 10, 2023

It froze again with your commit.. i suspect problem might be in workspace-d

In this while loop:

while (elseStmt)
{
auto elseToken = elseStmt.tokens.ptr - 1;
// possible from if declarations
if (elseToken.type == tok!"{" || elseToken.type == tok!":")
elseToken--;
if (elseToken.type == tok!"else")
{
if (!currentIf.length || currentIf[$ - 1] != *elseToken)
currentIf ~= *elseToken;
}
if (auto elseIf = cast(IfStatement) elseStmt)
{
currentIf ~= elseIf.tokens[0];
elseIf.accept(this);
cast()elseStmt = elseIf.elseStatement;
}
else if (auto elseStaticIf = cast(ConditionalStatement) elseStmt)
{
currentIf ~= elseStaticIf.tokens[0];
currentIf ~= elseStaticIf.tokens[1];
elseStaticIf.accept(this);
cast()elseStmt = elseStaticIf.falseStatement;
}
else if (auto declOrStatement = cast(DeclarationOrStatement) elseStmt)
{
if (declOrStatement.statement && declOrStatement.statement.statementNoCaseNoDefault)
{
if (declOrStatement.statement.statementNoCaseNoDefault.conditionalStatement)
{
cast()elseStmt = declOrStatement.statement.statementNoCaseNoDefault.conditionalStatement;
}
else if (declOrStatement.statement.statementNoCaseNoDefault.ifStatement)
{
cast()elseStmt = declOrStatement.statement.statementNoCaseNoDefault.ifStatement;
}
else
{
elseStmt.accept(this);
cast()elseStmt = null;
}
}
else if (declOrStatement.declaration && declOrStatement.declaration.conditionalDeclaration)
{
auto cond = declOrStatement.declaration.conditionalDeclaration;
if (cond.trueDeclarations.length)
{
auto ifSearch = cond.trueDeclarations[0].tokens.ptr;
while (!ifSearch.type.among!(tok!"if", tok!";", tok!"}", tok!"module"))
ifSearch--;
if (ifSearch.type == tok!"if")
{
if ((ifSearch - 1).type == tok!"static")
currentIf ~= *(ifSearch - 1);
currentIf ~= *ifSearch;
}
}
if (cond.hasElse && cond.falseDeclarations.length == 1)
{
elseStmt.accept(this);
cast()elseStmt = cast()cond.falseDeclarations[0];
}
else
{
elseStmt.accept(this);
cast()elseStmt = null;
}
}
else
{
elseStmt.accept(this);
cast()elseStmt = null;
}
}
else
{
elseStmt.accept(this);
cast()elseStmt = null;
}
}

That's at least where the debugger says it stopped at

serve-d.exe;;7FF6BD93BDEC
serve-d.exe;;7FF6BD93B2BA
serve-d.exe;;7FF6BD931E5E
serve-d.exe;;7FF6BD931520
serve-d.exe;;7FF6BD92F3BA
serve-d.exe;;7FF6BD934FB1
serve-d.exe;;7FF6BD928D5D
serve-d.exe;;7FF6BD830F9A
serve-d.exe;;7FF6BD877981
serve-d.exe;;7FF6BD828B83
serve-d.exe;core.internal.array.appending._d_arrayappendcTXImpl!(std.experimental.lexer.TokenStructure!(ubyte, "import dparse.lexer:TokenTriviaFields,TriviaToken; mixin TokenTriviaFields;")[], std.experimental.lexer.TokenStructure!(ubyte, "import dparse.lexer:TokenTriviaFields,TriviaToken; mixin TokenTriviaFields;"))._d_arrayappendcTX();7FF6BCDC5237
serve-d.exe;workspaced.com.dcdext.IfFinder.visit();7FF6BCD9A763

Stuck appending some tokens then dunno where it goes

image

@ryuukk
Copy link
Contributor Author

ryuukk commented Aug 10, 2023

I disabled syntax check with: "d.enableLinting" : false, and it no longer seems to freeze, so that's definitely something in that loop that is stuck in endless loop

I'll try to debug this further an other day, i am to finish this project i am working on for this week

@ryuukk
Copy link
Contributor Author

ryuukk commented Aug 12, 2023

I found the part of my code that trigger the freeze, i'll try to reduce the code so i can share it (can't share the whole thing since it's private)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants