Ticket UUID: | f9800d52bd61f240938dbd3c3c6364c8a6184194 | |||
Title: | vwait is not NRE-enabled, and yieldto cannot find the right splicing spot | |||
Type: | Bug | Version: | ||
Submitter: | pooryorick | Created on: | 2021-06-19 21:36:06 | |
Subsystem: | - New Builtin Commands | Assigned To: | pooryorick | |
Priority: | 5 Medium | Severity: | Critical | |
Status: | Closed | Last Modified: | 2021-06-23 13:01:38 | |
Resolution: | Fixed | Closed By: | jan.nijtmans | |
Closed on: | 2021-06-23 13:01:38 | |||
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: |
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! 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) pooryorick added on 2021-06-20 23:10:45: Fixed in [c75d4c3be05d5e91]. pooryorick added on 2021-06-20 23:10:13:
The problem is that pooryorick added on 2021-06-20 18:28:46: Here is a slightly smaller script to reproduce the issue:
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 06:41:00: sebres noted this issue in [cc592ec70de012df]. |
