| Ticket UUID: | f9800d52bd61f240938dbd3c3c6364c8a6184194 | ||
| Title: | vwait is not NRE-enabled, and yieldto cannot find the right splicing spot | ||
| Type: | Bug | Created on: | 2021-06-19 21:36:06 |
| Submitter: | pooryorick | Assigned to: | pooryorick |
| Subsystem: | - New Builtin Commands | Severity: | Critical |
| Priority: | 5 Medium | Last modified: | 2021-06-23 13:01:38 |
| Status: | Closed | Closed by: | jan.nijtmans |
| Resolution: | Fixed | Closed on: | 2021-06-23 13:01:38 |
| Version: | |||
| Description: | ||||
|
At least as of [07f12cf7209a23fa3], core-8-branch, the script below aborts.
The trouble begins with the C stack being busy because c2 has been called from
with
Output:
uh-oh {cannot yield: C stack busy}
tailcall cannot find the right splicing spot: should not happen!
Aborted (core dumped)
| ||||
| User Comments: | ||||
pooryorick added on 2021-06-20 06:41:00:
sebres noted this issue in [cc592ec70de012df]. dkf added on 2021-06-20 07:45:06:
Well, this shouldn't crash. It probably should be an error though; I can't comprehend any way to make pooryorick added on 2021-06-20 18:28:46:
Here is a slightly smaller script to reproduce the issue:
pooryorick added on 2021-06-20 23:10:13:
The problem is that pooryorick added on 2021-06-20 23:10:45:
Fixed in [c75d4c3be05d5e91]. jan.nijtmans added on 2021-06-21 14:54:08:
'Fix' reverted from core-8-branch, because it broke the build. See: https://github.com/tcltk/tcl/runs/2872891537?check_suite_focus=true
coroutine.test
Test file error: cannot yield: C stack busy
while executing
"yieldto c1"
("try" body line 1)
invoked from within
"c2"
("after" script)
cannot yield: C stack busy
while executing
"yieldto c1"
("try" body line 1)
("after" script)
jan.nijtmans added on 2021-06-23 13:01:38:
Merged (again) to core-8-branch (and trunk). Appears to work now. Thanks for the fix, and the updated testcase! | ||||
