Skip to content

BlockCannotReturn when terminating a time-restricted process #108

Open
@LinqLover

Description

@LinqLover
process := [[1 second wait] valueWithin: 2 seconds onTimeout: []] newProcess.
process runUntil: [:c | c isClosureContext and: [c size > 0 and: [c top isKindOf: Process]]]. "<-- simulate a possible context switch in primitiveResume"
process step.
process terminate.

Expected: The stack of the process is fully unwound, and the process is terminated correctly.
Actual: The following debugger appears (BlockCannotReturn):

image

This is not a regression and failed in 5.3, too (but with a different error).

I have no idea yet why this happens, but it is blowing up every few minutes in my current multiprocessing-intensive project. Fix or workaround would be highly desired.

Cc'ing @isCzech in case this bug interests you :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    base system[SCOPE] Squeak's basic (language) concerns such as Kernel, Collections, Graphics, Networkbug[WHAT] Something isn&#39;t working as expected. Automated tests beneficial. :-vm simulation[SCOPE] Anything that simulates VM behavior in Squeak such as debugger step.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions