Closed benknoble closed 2 years ago
Thanks for the report! Fundamentally, this was a data race in the destroy
path: update
s were correctly being queued up using the eventspace queue, but destroy
s weren't, so orderings where the container state was inconsistent were possible.
The trace on compiled code was misleading (probably due to inlining) and the error was actually raised in get-child
(called on line 23). Typically, to debug these types of errors I end up deleting the compiled
folders in the project and then run the code with errortrace
(which is extremely slow, but at least provides accurate traces).
When I run the following program and close the dialog, I consistently get the following output, with an error message:
Program:
Even more bizarrely the indicated line (22 in
gui-easy-lib/gui/easy/private/view/container.rkt
) iswhich has a default value for the
hash-ref
? So perhaps this is an odd racket bug… unfortunately I cannot come up with a smallhash-ref
test-case that demonstrates the same bug, and the "context" elision is useless.