Skip to content

Can --trace-atomics-wait be removed #42982

Description

@syg

What is the problem this feature will solve?

The V8 API hook (SetAtomicsWaitCallback) to support --trace-atomics-wait is fairly complex and adds maintenance burden. Further the only user of the API is node, and node only uses a subset of the functionality, and only for diagnostic purposes.

Is it feasible to remove this diagnostic functionality? Judging by the original commit message the original motivation was maybe to use the hooks to build a deadlock detection system, not just printf diagnostics. It's been 4 years since then, and if no such system has been prototyped and it's not on the roadmap anytime soon, I'd like to deprecate and remove the V8 API.

cc @addaleax

What is the feature you are proposing to solve the problem?

Remove --trace-atomics-wait

What alternatives have you considered?

No response

Activity

  1. addaleax commented on May 6, 2022

    @addaleax
    Member

    @syg I am personally fine with anything here. --trace-atomics-wait has been useful for me in the past occasionally, and the thing about it is that it’s useful specifically in situations in which it can be hard to debug with other tools, but if you feel that it’s not worth it, sure, drop it.

  2. syg commented on May 6, 2022

    @syg
    ContributorAuthor

    @syg I am personally fine with anything here. --trace-atomics-wait has been useful for me in the past occasionally, and the thing about it is that it’s useful specifically in situations in which it can be hard to debug with other tools, but if you feel that it’s not worth it, sure, drop it.

    Given the current functionality of --trace-atomics-wait tracing the Atomics.wait events (not using the handle to interrupt waits), is it possible to do that in userland? I guess the problem is that on a failure to wait, regardless of whether you re-read the address after the fact or buffer the address beforehand, there's still no guarantee if that value is what caused it to fail?

  3. syg commented on May 6, 2022

    @syg
    ContributorAuthor

    Another option here is to keep the pre-hook needed for --trace-atomics-wait, remove the other hooks, as well as the handle. The handle is probably 70% of the complexity I want to remove.

  4. kvakil commented on Aug 2, 2022

    @kvakil
    Contributor

    I created #44093 to start the deprecation process & for further discussion.

  5. moved this to Pending Triage in Node.js feature requestson Oct 22, 2022
  6. 6 remaining items

  7. github-actions commented on Aug 3, 2023

    @github-actions
    Contributor

    There has been no activity on this feature request for 5 months and it is unlikely to be implemented. It will be closed 6 months after the last non-automated comment.

    For more information on how the project manages feature requests, please consult the feature request management document.

  8. added
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Aug 3, 2023
  9. aduh95 commented on Aug 3, 2023

    @aduh95
    Contributor

    We should probably runtime deprecate it to move forward with this.

  10. removed
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Aug 4, 2023
  11. marco-ippolito commented on Dec 16, 2023

    @marco-ippolito
    Member

    Moving to runtime deprecation with #51179

  12. marco-ippolito commented on Dec 22, 2023

    @marco-ippolito
    Member

    @syg the flag has moved to runtime deprecation, afaik it will be released in the next major (22).

  13. marco-ippolito commented on Apr 29, 2024

    @marco-ippolito
    Member

    After this PR: #52747 it will be completely removed

  14. moved this from Awaiting Triage to Done in Node.js feature requestson Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestIssues requesting new Node.js features.never-staleIssues and PRs exempt from automated stale handling.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions