Abseil deadlock detection

Open
#301 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp, nodejs

Research direction

Start with deps/v8/src/base/platform/mutex.h around lines 121-125 and the crash site in deps/v8/src/common/code-memory-access.cc around line 149. Reproduce the intermittent failure on Linux x64 and inspect the linked ARM debug CI console and cctest stack histories; done means determining whether this is a false positive and documenting or implementing the appropriate suppression behavior.

Written by the indexing model from the issue text.

Description

          > @targos: I wonder if it may be caused by https://github.com/nodejs/node/commit/96fde580b2227d49a2c935195ecf351f3e8bf099. I only rebased and added that commit.

I can reproduce the issue on a linux x64 machine in 3 out of 10 runs. I don't think it is related to https://github.com/nodejs/node/commit/96fde580b2227d49a2c935195ecf351f3e8bf099. The failure is an abseil deadlock detection based on the order of locked mutexes. This is only enabled on non-darwin platforms: https://github.com/targos/node/blob/1ed6e9890fd5dcf79489b54264f6dcf125b917fe/deps/v8/src/base/platform/mutex.h#L121-L125.

I doubt that if crash sites like https://github.com/targos/node/blob/1ed6e9890fd5dcf79489b54264f6dcf125b917fe/deps/v8/src/common/code-memory-access.cc#L149 are actual deadlocks. This could be a false-positive as the logs in https://ci.nodejs.org/job/node-test-commit-arm-debug/17748/nodes=ubuntu2204_debug-arm64/console suggest that the stack histories are from two distinct cctests.

Can we suppress abseil deadlock detection?

Originally posted by @legendecas in https://github.com/nodejs/node/issues/57114#issuecomment-2743925721

Dominant language
Shell
Stars
466
Forks
75
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from nodejs/node-v8

All issues in nodejs/node-v8

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.