thought-machine/please

lsp_test fails ocassionally on AlpineLinux CI

folliehiyuki opened this issue · 1 comments

For more details, see https://gitlab.alpinelinux.org/alpine/aports/-/issues/15162.

A short summary: the lsp_test testsuite fails on AlpineLinux's CI runners. Maybe the test can be relaxed somehow so that it won't fail occasionally like this. It doesn't happen every time the test runs, so I can't debug it properly.

The error log:

2023/08/05 10:11:54 initial parse complete
2023/08/05 10:11:54 built completion package tree
2023/08/05 10:11:54 loaded builtin function information
2023/08/05 10:11:54 Handled initialize message in 25.401233ms
2023/08/05 10:11:54 Received textDocument/didOpen message
2023/08/05 10:11:54 failed to figure out rel path: Rel: can't make test/test.build relative to /home/buildozer/aports/testing/please-build/src/please-17.2.3/plz-out/tmp/tools/build_langserver/lsp/lsp_test._test/run_1/tools/build_langserver/lsp/test_data
2023/08/05 10:11:54 Handled textDocument/didOpen message in 61.683µs
10:11:54.816   DEBUG: error parsing build file: Unterminated string literal 
goroutine 3477 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:24 +0x65
github.com/thought-machine/please/src/parse/asp.parseFileInput.func1()
	src/parse/asp/grammar_parse.go:61 +0x46
panic({0xd50ea0, 0xc004a520f0})
	runtime/panic.go:884 +0x213
github.com/thought-machine/please/src/parse/asp.fail({0xc002557b4f, 0xf}, 0xc0038b32b0?, {0xddfedf?, 0x40f10a?}, {0x0?, 0x80?, 0x78?})
	src/parse/asp/errors.go:43 +0x76
github.com/thought-machine/please/src/parse/asp.(*lex).fail(...)
	src/parse/asp/lexer.go:388
github.com/thought-machine/please/src/parse/asp.(*lex).consumeString(0xc0038b3df0, 0x22, 0x100c0038b3410?, 0x0, 0x0, 0x0)
	src/parse/asp/lexer.go:340 +0x458
github.com/thought-machine/please/src/parse/asp.(*lex).consumePossiblyTripleQuotedString(...)
	src/parse/asp/lexer.go:290
github.com/thought-machine/please/src/parse/asp.(*lex).nextToken(0xc0038b3df0)
	src/parse/asp/lexer.go:231 +0x2d9
github.com/thought-machine/please/src/parse/asp.(*lex).nextToken(0xc0038b3df0)
	src/parse/asp/lexer.go:226 +0x936
github.com/thought-machine/please/src/parse/asp.(*lex).Next(...)
	src/parse/asp/lexer.go:144
github.com/thought-machine/please/src/parse/asp.(*parser).next(0xc0038b3dd0, 0x5b)
	src/parse/asp/grammar_parse.go:86 +0x67
github.com/thought-machine/please/src/parse/asp.(*parser).parseList(0xc0038b3dd0, 0x417510?, 0x5d)
	src/parse/asp/grammar_parse.go:616 +0x53
github.com/thought-machine/please/src/parse/asp.(*parser).parseValueExpression(0xc0038b3dd0)
	src/parse/asp/grammar_parse.go:485 +0x447
github.com/thought-machine/please/src/parse/asp.(*parser).parseUnconditionalExpressionInPlace(...)
	src/parse/asp/grammar_parse.go:385
github.com/thought-machine/please/src/parse/asp.(*parser).parseExpressionInPlace(0xc0038b3dd0, 0xc0038b3c18)
	src/parse/asp/grammar_parse.go:358 +0x165
github.com/thought-machine/please/src/parse/asp.(*parser).parseCall(...)
	src/parse/asp/grammar_parse.go:604
github.com/thought-machine/please/src/parse/asp.(*parser).parseIdentStatement(0xc0038b3dd0)
	src/parse/asp/grammar_parse.go:548 +0x908
github.com/thought-machine/please/src/parse/asp.(*parser).parseStatement(...)
	src/parse/asp/grammar_parse.go:184
github.com/thought-machine/please/src/parse/asp.parseFileInput({0x7f86eaa6fff0, 0xc004709720})
	src/parse/asp/grammar_parse.go:68 +0x76a
github.com/thought-machine/please/src/parse/asp.(*Parser).parseAndHandleErrors(0xc001756840?, {0xf0c6e8?, 0xc004709720})
	src/parse/asp/parser.go:146 +0x45
github.com/thought-machine/please/src/parse/asp.(*Parser).ParseData(0xc004a42000?, {0xc004652f00, 0x5d, 0x60}, {0xc002557b4f, 0xf})
	src/parse/asp/parser.go:141 +0x105
lsp_test_lib.(*Handler).parse(0xc004aa1590, 0xc005339c80, {0xc0051120c0?, 0xc0012aef98?})
	tools/build_langserver/lsp/text.go:104 +0x94
created by lsp_test_lib.(*Handler).open
	tools/build_langserver/lsp/text.go:74 +0x2e5
//tools/build_langserver/lsp:lsp_test 18 tests run in 5m1.003s; 17 passed, 1 errored
68 test targets and 798 tests run; 795 passed, 1 errored, 2 skipped.

This should be fixed now. Sorry it took a while to get to - I didn't realise this referred to Alpine's own CI runners, when I glanced it at I thought it meant our CircleCI runners (one of which happens to be using an Alpine container)