The problem is that the lazy setup of the exception-catching jmpenv is
too lazy. During UNITCHECK the eval frame is set up, apparently providing
the destination for exceptions, but it's pointing at whatever jmpenv
happened to be on top of the stack, whether or not it's able to handle
catching for that eval frame. The fix is to set up catchers earlier:
it can still be lazy, but to be safe the catcher should always be in
place before the eval frame is pushed onto the context stack.
Fix implemented as branch zefram/early_catcher, which I intend to merge
early in 5.27.
Migrated from rt.perl.org#105930 (status was 'resolved')
Searchable as RT105930$
The text was updated successfully, but these errors were encountered: