rr-debugger / rr-debugger/rr

Replaying FF mochitest-chrome: "Failed to stat .../libjsctypès-tëßt.so: replay is impossible"

Open
#940 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10.7k
Forks
662
Avg merge
2d 3h
Merged PRs (30d)
2

Description

The test appears to copy libjsctypes-test.so to this unicode path and then remove the unicode name. For some reason that temp file seems to be mmap'd by something. That file breaks rr's avoid-copying-on-mmap heuristics because it's read-only and executable and not on tmpfs, so removing it during recording breaks replay.

I would probably be OK punting this problem for 1.0. Another option is to make our avoid-copying-mmap'd-file heuristics less aggressive. They were tuned by optimizing FF startup time, but that's less important over minutes-long test suites. Depends on what we want to optimize for. Or maybe there's some other clever thing we can do (f.e. keep a record of mmap'd files that pass the don't-need-to-copy heuristic, and if one of them is unlink()d during recording, copy it).

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.

Research direction

Start by reproducing the Firefox mochitest-chrome replay failure and trace rr's avoid-copying-on-mmap heuristics around the removed libjsctypes-test.so file. Compare the recording and replay behavior when a read-only executable mmap'd file is unlinked. Done means the test can be recorded and replayed without the “Failed to stat” error.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
devtools, operating-systems, performance, testing-qa
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.