LuaLS / LuaLS/lua-language-server
Test failure: attempt to yield from outside a coroutine
オープン
まだ誰も着手していません。
- 主要言語
- 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
The test suite should pass consistently.
Actual Behaviour
One time when running the tests, I saw this failure. However, I haven't seen it since.
bin/lua-language-server: attempt to yield from outside a coroutine
stack traceback:
[C]: in function 'coroutine.yield'
script/await.lua:152: in function 'await.wait'
script/workspace/workspace.lua:529: in function 'workspace.workspace.awaitReady'
test/full/self.lua:35: in main chunk
[C]: in upvalue 'originRequire'
test.lua:42: in function 'require'
test/full/init.lua:28: in main chunk
[C]: in upvalue 'originRequire'
test.lua:42: in function 'require'
test.lua:48: in upvalue 'test'
test.lua:109: in local 'main'
test.lua:115: in main chunk
(bootstrap.lua):85: in main chunk
[C]: in ?
The test failed in Alpine's build system CI and the full output is here: https://gitlab.alpinelinux.org/xordspar0/aports/-/jobs/1554206
Reproduction steps
git clone --recursive https://github.com/LuaLS/lua-language-server.gitcd lua-language-serverninja -C 3rd/luamake -f compile/ninja/linux.ninja3rd/luamake/luamake all3rd/luamake/luamake unit-test- Rarely see the above failure.
Additional Notes
lua-language-server version: 3.11.1
Log File
No response
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、記載されている build コマンドと unit-test コマンドを実行し、その後、報告された coroutine.yield のスタック付近にある script/await.lua、workspace/workspace.lua、test/full/self.lua を調べます。Alpine CI のログとテストの繰り返し実行を使って、断続的な失敗を調査します。unit-test スイートが coroutine の外部で yield することなく、一貫して成功すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- lua
- 領域
- testing-qa
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100