Skip to content

Externally-triggered detach auto-restart syscall skipping not working #7616

@egrimley-arm

Description

@egrimley-arm

If the main thread is in a futex system call (for example in pthread_join) or in a wait4 system call (for example in wait) then detach has no effect: it seems that DynamoRIO's signal handler is run but no other action is taken because the signal handler returns to the system call and the dispatch loop is never entered.

If the main thread is in a read system call then detach does not take effect until the system call returns.

If the main thread is in a clock_nanosleep system call (for example in sleep) then detach causes the system call to return prematurely.

However, detach works properly if the main thread is in an infinite loop with no system calls.

(This may be the reason for it not being possible to detach from some "real-life" multi-threaded applications.)

(All of this was tested on AArch64.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions