Open Bug 1454265 Opened 6 years ago Updated 2 years ago

OS.File.writeAtomic fails to perform write operation on mochitest-plain on linux64-jsdcov


(Testing :: Code Coverage, enhancement)



(Not tracked)


(Reporter: sparky, Unassigned)


(Blocks 1 open bug)


Recently, e10s mode was enabled on all linux64-jsdcov test suites (bug 1451849). However, on mochitest-plain, OS.File.writeAtomic is failing to perform the write operation even though we have collected code coverage. This does not occur in the other mochitest sub-suite we run, browser-chrome.
Blocks: 1301174
Hi :milindl, I see that some changes were recently made by you here at [1] for 'NativeOSFileInternals.cpp'.

I am wondering if you would be able to help us with this issue? There are no error logs available unfortunately - OS.File.writeAtomic simply fails without warnings/errors.

If needed, jsdcov can be run locally with a mochitest-plain test with |mach test <PATH/TO/PLAIN/TEST> --jscov-dir-prefix <OUTPUT/DIR>|

Flags: needinfo?(i.milind.luthra)
Hi :yoric, we are having some problems with OS.File.writeAtomic and I am wondering if you would be able to help with this or if you would know someone that could?

This was the last bug to have changed the file:
Flags: needinfo?(i.milind.luthra) → needinfo?(dteller)
What calls this method in mochitest-plain? The simplest suspect at this stage would be a caller that forgets to wait for the promise to be resolved.
Flags: needinfo?(dteller) → needinfo?(gmierz2)
:yoric, sorry my late reply and thank you for your quick reply! :)

Here is where we are failing:

It's the same spot in both mochitest-plain and mochitest-browser-chrome, but plain fails whereas bc passes. I'll try playing with the promises and see if it helps. (IIRC I tried this and it didn't help but it may be worth another shot).
Flags: needinfo?(gmierz2) → needinfo?(dteller)
I meant to ask: "what calls the method `CoverageCollector.prototype.recordTestCoverage`"?
Flags: needinfo?(dteller) → needinfo?(gmierz2)
For browser-chrome, it is called here:

For mochitest-plain, it is called here:
Flags: needinfo?(gmierz2) → needinfo?(dteller)
Both of them forget to wait on the Promise, so they look like very possible culprits. Even if they're not, that's two bugs that need to be fixed :)
Flags: needinfo?(dteller) → needinfo?(gmierz2)
Excellent, I'll fix those and see how it goes. Thanks :yoric :)
Flags: needinfo?(gmierz2)
The linux64-jsdcov build has been disabled, and no longer runs in taskcluster, see bug 1496791.
Although the tooling to get this data still exists so this is still a large problem with relation to mochitest-plain tests so I am leaving this open.
See Also: → 1496791
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.