LuaLS / LuaLS/lua-language-server

Test failure: attempt to yield from outside a coroutine

Offen
#2,896 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Lua
Sterne
4.4k
Forks
442
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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
  1. git clone --recursive https://github.com/LuaLS/lua-language-server.git
  2. cd lua-language-server
  3. ninja -C 3rd/luamake -f compile/ninja/linux.ninja
  4. 3rd/luamake/luamake all
  5. 3rd/luamake/luamake unit-test
  6. Rarely see the above failure.
Additional Notes

lua-language-server version: 3.11.1

Log File

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die aufgeführten Build- und Unit-Test-Befehle auszuführen, und untersuche dann script/await.lua, workspace/workspace.lua und test/full/self.lua rund um den gemeldeten coroutine.yield-Stack. Verwende das Alpine-CI-Log und wiederholte Testläufe, um den intermittierenden Fehler zu untersuchen. Als abgeschlossen gilt die Aufgabe, wenn die Unit-Test-Suite konsistent erfolgreich durchläuft, ohne außerhalb einer Coroutine zu yielden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
lua
Bereich
testing-qa
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.