LuaLS / LuaLS/lua-language-server

Flaky tests

オープン
#2,926 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Lua
スター
4.4k
フォーク
442
PR マージ指標
30日以内にマージされた PR はありません

説明

How are you using the lua-language-server?

Other

Which OS are you using?

Linux

What is the issue affecting?

Other

Expected Behaviour

Tests pass all the time.

Actual Behaviour

Tests sometimes fail.

Reproduction steps
  1. Run ./make.sh
Additional Notes

I'm updating luals in a linux software repository called nixpkgs. There we also run the tests after we build it, and those fail sometimes, see https://github.com/NixOS/nixpkgs/pull/352961#issuecomment-2452494838

Log File
lua-language-server> 测试[tclient]...
lua-language-server> test/tclient/tests/load-relative-library.lua:54: assertion failed!
lua-language-server> stack traceback:
lua-language-server>    [C]: in function 'assert'
lua-language-server>    test/tclient/tests/load-relative-library.lua:54: in upvalue 'callback'
lua-language-server>    script/lclient.lua:129: in function <script/lclient.lua:128>
lua-language-server> stack traceback:
lua-language-server>    script/lclient.lua:123: in function 'await.errorHandle'
lua-language-server>    script/await.lua:35: in function 'await.checkResult'
lua-language-server>    (...tail calls...)
lua-language-server>    script/lclient.lua:201: in local 'callback'
lua-language-server>    script/lclient.lua:232: in method 'update'
lua-language-server>    script/lclient.lua:143: in method 'start'
lua-language-server>    test/tclient/tests/load-relative-library.lua:13: in main chunk
lua-language-server>    [C]: in upvalue 'originRequire'
lua-language-server>    test.lua:42: in function 'require'
lua-language-server>    test/tclient/init.lua:11: in main chunk
lua-language-server>    [C]: in upvalue 'originRequire'
lua-language-server>    test.lua:42: in function 'require'
lua-language-server>    test.lua:48: in upvalue 'test'
lua-language-server>    test.lua:108: in local 'main'
lua-language-server>    test.lua:115: in main chunk
lua-language-server>    (bootstrap.lua):85: in main chunk
lua-language-server>    [C]: in ?
lua-language-server> bin/lua-language-server: script/lclient.lua:124: [19:47:46.386][error][#0:script/lclient.lua:123]: test/tclient/tests/load-relative-library.lua:54: assertion failed!
lua-language-server> stack traceback:
lua-language-server>    [C]: in function 'assert'
lua-language-server>    test/tclient/tests/load-relative-library.lua:54: in upvalue 'callback'
lua-language-server>    script/lclient.lua:129: in function <script/lclient.lua:128>
lua-language-server> stack traceback:
lua-language-server>    script/lclient.lua:123: in function 'await.errorHandle'
lua-language-server>    script/await.lua:35: in function 'await.checkResult'
lua-language-server>    (...tail calls...)
lua-language-server>    script/lclient.lua:201: in local 'callback'
lua-language-server>    script/lclient.lua:232: in method 'update'
lua-language-server>    script/lclient.lua:143: in method 'start'
lua-language-server>    test/tclient/tests/load-relative-library.lua:13: in main chunk
lua-language-server>    [C]: in upvalue 'originRequire'
lua-language-server>    test.lua:42: in function 'require'
lua-language-server>    test/tclient/init.lua:11: in main chunk
lua-language-server>    [C]: in upvalue 'originRequire'
lua-language-server>    test.lua:42: in function 'require'
lua-language-server>    test.lua:48: in upvalue 'test'
lua-language-server>    test.lua:108: in local 'main'
lua-language-server>    test.lua:115: in main chunk
lua-language-server>    (bootstrap.lua):85: in main chunk
lua-language-server>    [C]: in ?
lua-language-server> 
lua-language-server> stack traceback:
lua-language-server> 	[C]: in function 'error'
lua-language-server> 	script/lclient.lua:124: in function 'await.errorHandle'
lua-language-server> 	script/await.lua:35: in function 'await.checkResult'
lua-language-server> 	(...tail calls...)
lua-language-server> 	script/lclient.lua:201: in local 'callback'
lua-language-server> 	script/lclient.lua:232: in method 'update'
lua-language-server> 	script/lclient.lua:143: in method 'start'
lua-language-server> 	test/tclient/tests/load-relative-library.lua:13: in main chunk
lua-language-server> 	[C]: in upvalue 'originRequire'
lua-language-server> 	test.lua:42: in function 'require'
lua-language-server> 	test/tclient/init.lua:11: in main chunk
lua-language-server> 	[C]: in upvalue 'originRequire'
lua-language-server> 	test.lua:42: in function 'require'
lua-language-server> 	test.lua:48: in upvalue 'test'
lua-language-server> 	test.lua:108: in local 'main'
lua-language-server> 	test.lua:115: in main chunk
lua-language-server> 	(bootstrap.lua):85: in main chunk
lua-language-server> 	[C]: in ?
lua-language-server> FAILED: build/_/unit-test 
lua-language-server> bin/lua-language-server test.lua
lua-language-server> ninja: build stopped: subcommand failed.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

Linux 上で ./make.sh を繰り返し実行し、出力された test/tclient/tests/load-relative-library.lua:54 の失敗を出発点として使います。周辺のテストと script/lclient.lua を通る報告された呼び出し経路を読み、なぜ assertion が断続的に発生するのかを特定します。テストスイートがこの失敗なしに安定して完了すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
linux, lua
領域
testing-qa
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。