Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #2311
Closed
Open
Issue created Mar 28, 2017 by Derek Bruening@derekbrueningContributor

process-directed signals incorrectly delivered to threads blocking them

DR by default intercepts all signals and keeps them all unblocked in all threads. It then emulates the kernel upon receipt of a signal, deciding whether to deliver it or queue it as a pending signal, based on the receiving thread's mask. However, for process-directed signals, delivery is supposed to only consider those threads that have the signal unblocked. Since DR will not deliver a signal to a different thread from the one that received it, DR fails to properly emulate the kernel.

To handle all scenarios, including clients using alarm signals, we can't rely on installing the app's mask and must emulate the kernel. We'll have to examine other threads and deliver the signal to one of them. This may not be simple to do efficiently yet race-free.

Assignee
Assign to
Time tracking