Closed Bug 492882 Opened 15 years ago Closed 14 years ago

pymake: Integrate race detector

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: cjones, Unassigned)

References

Details

I just had a -j build fail b/c of a corrupted shared object, and I've heard tales of other random -j build failures.  The first two suspicious candidates are makefile races and file system synchronization, with the former seemingly much more likely than the latter.

We should head these off at the pass by enforcing ordering constraints on make rules.  This should be relatively easy to add, and this could even be checked "statically".

Bug 485390 seems related.
Oh please oh please be specific! I build with -j12 or -j16 all the time and haven't experienced this.

Most of our race problems in make rules are rules which incidentally create other files which are not mentioned as targets or prereqs... I don't see how static analysis of make rules will help us there.
(In reply to comment #1)
> Oh please oh please be specific! I build with -j12 or -j16 all the time and
> haven't experienced this.
> 

Can't speak for the other stories (joduinn is the last person I heard complain), but what happened to me was a linker error something like:

  ld: error: can't find MOZ_Z_inflate [or incorrect visibility, don't remember]
  ... [similar errors for other MOZ_Z_... symbols]
  ld: error: lib??.so is malformed  [forgot which one this was; wasn't libmozz, though]

Sorry I didn't save the exact error; I was in a bit of a rush.  Blowing away dist/lib/* and recompiling fixed the problem.  This may not have been a -j problem.

> Most of our race problems in make rules are rules which incidentally create
> other files which are not mentioned as targets or prereqs... I don't see how
> static analysis of make rules will help us there.

And other scripts (?) then use these incidentally-generated files, without specifying them as dependencies or listing them on the rule command line?  If they're listed on the command line, we could use heuristics in a static analysis.  If not, a dynamic analysis using strace might do the trick.
See bug 493891 for the libmozz link error.
is this wontfix/invalid? I don't see a good description of the problem that instrumentation can fix.
Without more specific information there's not much we can do here.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INVALID
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.