Skip to content
GitLab
    • Explore Projects Groups Snippets
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
  • Merge requests
  • !5482

i#2311 sigmask: Avoid rerouting alarms in handlers

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i2311-alarm-reroute into master 3 years ago
  • Overview 18
  • Commits 3
  • Pipelines 0
  • Changes 7

Disables rerouting of blocked alarm signals while inside an app handler. This is not bulletproof: I have it considering the handler as exited if we see sigreturn or sigprocmask, but there is no requirement that the app use either siglongjmp or sigreturn to exit a handler and to not use sigprocmask inside the handler. But, if we get it wrong, it will fall back to not rerouting alarms at all, which we can live with as those are typically not used as required messages and routed to a single thread.

The rerouting of alarms was seen to cause problems on large apps where normally they can accumulate due to DR overhead causing a new one to arrive while still in the handler for theprior one. Rerouting sent them to new threads, rather than marking pending and dropping if several accumulated.

Adds an on-by-default option -reroute_alarm_signals that can be used to disable routing of all alarm signals.

Adds a test to linux.sigmask which fails without this change.

The test was not easy to set up and it revealed two bugs in the rerouting, which are fixed here:

  • Don't re-route synchronous fault signals.
  • Properly re-route receive-now signals.

Adds a new rstat counting rerouted signals.

Issue: #2311

Activity

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply

There are currently no pipelines.

To run a merge request pipeline, the jobs in the CI/CD configuration file must be configured to run in merge request pipelines.

0 Assignees
None
Assign to
2 Reviewers
Abhinav Anil Sharma's avatar
Abhinav Anil Sharma
Derek Bruening's avatar
Derek Bruening
Request review from
Labels
2
Google-Affecting Google-Verified
2
Google-Affecting Google-Verified
    Assign labels
  • Manage project labels

Milestone
No milestone
None
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
participants
Reference: DynamoRIO/dynamorio!5482
Source branch: i2311-alarm-reroute

Menu

Explore Projects Groups Snippets