Closed Bug 1368219 Opened 2 years ago Closed 2 years ago

Intermittent toolkit/components/osfile/tests/xpcshell/test_available_free_space.js | application crashed [@ js::LifoAlloc::freeAll] [@ JSScript::finalize][@ mozilla::DeadlockDetector<mozilla::BlockingResourceBase>::Remove]

Categories

(Toolkit :: OS.File, defect, critical)

defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox-esr45 --- unaffected
firefox-esr52 --- unaffected
firefox53 --- unaffected
firefox54 --- unaffected
firefox55 + wontfix
firefox56 --- disabled
firefox57 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: mccr8)

References

Details

(Keywords: crash, intermittent-failure, Whiteboard: [stockwell fixed:product])

Crash Data

Attachments

(1 file)

Crash Signature: [@ js::LifoAlloc::freeAll] → [@ js::LifoAlloc::freeAll] [@ JSScript::finalize]
Summary: Intermittent toolkit/components/osfile/tests/xpcshell/test_available_free_space.js | application crashed [@ js::LifoAlloc::freeAll] → Intermittent toolkit/components/osfile/tests/xpcshell/test_available_free_space.js | application crashed [@ js::LifoAlloc::freeAll] [@ JSScript::finalize]
Bonus fun: this is going to be permaorange on Linux32 when we merge to beta.

[Tracking Requested - why for this release]: merge bustage, closed tree, delayed b1.
marking as blocker for 55 as this would cause breakage on merge day
Whiteboard: [stockwell needswork]
This is pretty darn frequent in general right now.
Component: OS.File → JavaScript: GC
Product: Toolkit → Core
Version: unspecified → Trunk
Any idea what could be going on here, Jon?
Flags: needinfo?(jcoppeard)
I can't see anything in the pushlog.  Jan do you know of any JIT changes that might have caused this?
Flags: needinfo?(jdemooij)
Bug 1311425 could have changed GC timing and exposed something I suppose.
So, if I parse correctly the stack, this crash is not (immediately) caused by one of the uses of finalization in OS.File code, but rather during worker shutdown. Looking at the code (which I haven't touched in ~5 years, so please bear with my poor memory), the most exotic thing that the worker allocates is a js-ctypes `statvfs` struct. Could it be possible that the recent patches have somehow affected js-ctypes struct finalization?

There also used to be a hack when sending strings across workers, but I believe that it was removed ages ago.
Flags: needinfo?(dteller)
(In reply to David Teller [:Yoric] (please use "needinfo") from comment #14)
> Could it be possible that the
> recent patches have somehow affected js-ctypes struct finalization?

Bug 1352430 does affect object finalization but landed a month before this crash started showing up.  Still could be related of course.
FYI, this is currently marked as blocking Monday's merge of 55 to Beta.
These crashes happen either when finalising JSScripts or when freeing LIFO allocations made by the baseline compiler.  They happen during GC on a worker thread while the main thread is waiting for workers to shut down.

I haven't been able to reproduce this or work out what's going wrong.
See Also: → 1368422
Based on my chat with RyanVM, this is not a blocker for 55.0b1 anymore. Untagging as such.
this looks to be fixed as of June 6th (2 instances on mozilla-beta on the 13th though).  I would prefer to close this bug, but I don't know why this magically disappeared.
Whiteboard: [stockwell needswork] → [stockwell unknown]
I've no idea what caused this or why it (mostly) disappeared again :(
Flags: needinfo?(jdemooij)
At however many different bugs we're up to now, I'm bored with filing new ones for every random signature.
Summary: Intermittent toolkit/components/osfile/tests/xpcshell/test_available_free_space.js | application crashed [@ js::LifoAlloc::freeAll] [@ JSScript::finalize] → Intermittent toolkit/components/osfile/tests/xpcshell/test_available_free_space.js | application crashed [@ js::LifoAlloc::freeAll] [@ JSScript::finalize][@ mozilla::DeadlockDetector<mozilla::BlockingResourceBase>::Remove]
See Also: → 1380607
Whiteboard: [stockwell unknown] → [stockwell needswork]
I'll just remove this test and the getAvailableFreeSpace function, as it doesn't seem to be used, and this code is not really maintained.
Assignee: nobody → continuation
Component: JavaScript: GC → OS.File
Flags: needinfo?(jcoppeard)
Product: Core → Toolkit
This appears to be the first test in the directory, so hopefully there's not some broader problem here. I'll do a bunch of retriggers for whatever subtest runs this directory to see if anything else shows up.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=6641445ef9925df33c3f4f896e257eb720b4d2d2
Comment on attachment 8899157 [details]
Bug 1368219 - Remove the unused OSFile.getAvailableFreeSpace.

https://reviewboard.mozilla.org/r/170436/#review175602

Now that freeform add-ons aren't supported anymore, anything we can trim off from OS.File is a benefit and will simplify bug 1231711 (or any candidate replacement for OS.File).
Attachment #8899157 - Flags: review?(dteller) → review+
Hrmph. Something on the autoland branch must be breaking this, as I rebased to tip m-c. I guess I'll wait for the next merge and try again.
FWIW, it was bug 1379256 that caused merge conflicts.
Pushed by amccreight@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1bb5bcc356b4
Remove the unused OSFile.getAvailableFreeSpace. r=Yoric
https://hg.mozilla.org/mozilla-central/rev/1bb5bcc356b4
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Whiteboard: [stockwell needswork] → [stockwell fixed:product]
I'm thinking it'd be lower risk to just skip the test on Beta rather than backporting the removal patch. What are your thoughts, mccr8?
Flags: needinfo?(continuation)
(In reply to Ryan VanderMeulen [:RyanVM] from comment #40)
> I'm thinking it'd be lower risk to just skip the test on Beta rather than
> backporting the removal patch. What are your thoughts, mccr8?

That sounds reasonable to me. In theory, an addon on beta could be calling this method.
Flags: needinfo?(continuation)
You need to log in before you can comment on or make changes to this bug.