Skip to content

Thread interrupt requests can overwrite each other #8479

@headius

Description

@headius

For the spec:

Thread#report_on_exception= when set to true prints the backtrace even if the thread was killed just after Thread#raise

it is expected that the exception asynchronously raised on the thread with Thread#raise will continue to propagate even if that thread is killed before the exception bubbles out. As the exception propagates, however, there will be additional event polls that my detect and propagate the new kill request. This leads to sporadic failures of the spec above, and does not reflect the behavior of CRuby.

An attempt to fix this by clearing the queue is in #8478 but it fails many test suites.

I am tagging the spec for now but we'll want to figure out how CRuby avoids interrupting the propagation of the Thread#raise exception.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions