Last Comment Bug 709748 - GCLI 'help' command causes firefox to crash
: GCLI 'help' command causes firefox to crash
Status: RESOLVED FIXED
[STR in comment 3, use a DEBUG build]
: crash, pp, qawanted
Product: Firefox
Classification: Client Software
Component: Developer Tools: Console (show other bugs)
: unspecified
: All Windows 7
: -- critical (vote)
: Firefox 12
Assigned To: Joe Walker [:jwalker] (needinfo me or ping on irc)
:
Mentors:
Depends on:
Blocks: GCLI-SHIP
  Show dependency treegraph
 
Reported: 2011-12-12 03:50 PST by Joe Walker [:jwalker] (needinfo me or ping on irc)
Modified: 2012-01-10 14:51 PST (History)
5 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
upload 1 (984 bytes, patch)
2012-01-09 04:38 PST, Joe Walker [:jwalker] (needinfo me or ping on irc)
paul: review+
Details | Diff | Splinter Review

Description Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-12 03:50:53 PST

    
Comment 1 Jesper Hansen 2011-12-12 03:59:35 PST
Bug report is incomplete. 

And typing 'help' in the error console yields:
Error: help is not defined
Source File: javascript:%20help
Line: 1
Comment 2 Jesper Hansen 2011-12-12 04:03:21 PST
Didn't see the blocking bug. Reopened.
Comment 3 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-12 04:30:01 PST
Steps to reproduce:

1. Pref GCLI on: devtools.gcli.enable=true
2. Open a new tab on any web page
3. Open the web console
4. Type 'help'
Comment 4 Scoobidiver (away) 2011-12-12 09:06:47 PST
Please provide a crash ID from about:crashes.
Comment 5 Kevin Dangoor 2011-12-12 09:39:12 PST
FWIW, I'm running Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0a1) Gecko/20111212 Firefox/11.0a1 and do not see this crash. I can consistently run the gcli 'help' command.
Comment 6 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-12 14:18:40 PST
(In reply to Scoobidiver from comment #4)
> Please provide a crash ID from about:crashes.

Windows put up the 'Nightly has stopped working' unfortunately - so no crash information.

I can make it die inside VS10 and see a ton of threads, but they all look like they're waiting on something else - I can't see a thread that might have done something wrong.
Comment 7 Scoobidiver (away) 2011-12-12 22:29:48 PST
I cannot reproduce with the STR in comment 3 using 11.0a1/20111212.
Try with a new profile.
Comment 8 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-15 05:13:58 PST
I've tried with a clean profile, and by nuking my obj dir. Still there.

The console says:

###!!! ABORT: aRelevantLinkVisited should only be set when we have a separate style: 'aRulesIfVisited || !aRelevantLinkVisited', file p:/mozilla/devtools/layout/style/nsStyleContext.cpp, line 179

https://mxr.mozilla.org/mozilla-central/source/layout/style/nsStyleContext.cpp#178
Comment 9 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-15 05:46:31 PST
Stack trace:

xul.dll!nsStyleContext::FindChildWithRules(const nsIAtom * aPseudoTag, nsRuleNode * aRuleNode, nsRuleNode * aRulesIfVisited, bool aRelevantLinkVisited)  Line 179	C++
xul.dll!nsStyleSet::GetContext(nsStyleContext * aParentContext, nsRuleNode * aRuleNode, nsRuleNode * aVisitedRuleNode, bool aIsLink, bool aIsVisitedLink, nsIAtom * aPseudoTag, nsCSSPseudoElements::Type aPseudoType, bool aDoAnimations, mozilla::dom::Element * aElementForAnimation)  Line 604 + 0x1d bytes	C++
xul.dll!nsStyleSet::ResolveStyleFor(mozilla::dom::Element * aElement, nsStyleContext * aParentContext, TreeMatchContext & aTreeMatchContext)  Line 991 + 0x5e bytes	C++
xul.dll!nsFrameManager::ReResolveStyleContext(nsPresContext * aPresContext, nsIFrame * aFrame, nsIContent * aParentContent, nsStyleChangeList * aChangeList, nsChangeHint aMinChange, nsRestyleHint aRestyleHint, mozilla::css::RestyleTracker & aRestyleTracker, nsFrameManager::DesiredA11yNotifications aDesiredA11yNotifications, nsTArray<nsIContent *,nsTArrayDefaultAllocator> & aVisibleKidsOfHiddenElement, TreeMatchContext & aTreeMatchContext)  Line 1289 + 0x1b bytes	C++
xul.dll!nsFrameManager::ComputeStyleChangeFor(nsIFrame * aFrame, nsStyleChangeList * aChangeList, nsChangeHint aMinChange, mozilla::css::RestyleTracker & aRestyleTracker, bool aRestyleDescendants)  Line 1684 + 0x4a bytes	C++
xul.dll!nsCSSFrameConstructor::RestyleElement(mozilla::dom::Element * aElement, nsIFrame * aPrimaryFrame, nsChangeHint aMinHint, mozilla::css::RestyleTracker & aRestyleTracker, bool aRestyleDescendants)  Line 8078	C++
xul.dll!mozilla::css::RestyleTracker::ProcessOneRestyle(mozilla::dom::Element * aElement, nsRestyleHint aRestyleHint, nsChangeHint aChangeHint)  Line 158	C++
xul.dll!mozilla::css::RestyleTracker::ProcessRestyles()  Line 243	C++
xul.dll!nsCSSFrameConstructor::ProcessPendingRestyles()  Line 11645	C++
xul.dll!PresShell::FlushPendingNotifications(mozFlushType aType)  Line 4059	C++
xul.dll!nsDocument::FlushPendingNotifications(mozFlushType aType)  Line 6274	C++
xul.dll!nsGenericHTMLElement::GetFormControlFrame(bool aFlushFrames)  Line 1522	C++
xul.dll!nsHTMLInputElement::GetSelectionRange(int * aSelectionStart, int * aSelectionEnd)  Line 2785 + 0xa bytes	C++
xul.dll!nsHTMLInputElement::GetSelectionStart(int * aSelectionStart)  Line 2684 + 0x16 bytes	C++
xul.dll!nsIDOMHTMLInputElement_GetSelectionStart(JSContext * cx, JSObject * obj, jsid id, JS::Value * vp)  Line 16147 + 0x15 bytes	C++
mozjs.dll!js::CallJSPropertyOp(JSContext * cx, int (JSContext *, JSObject *, jsid, JS::Value *)* op, JSObject * receiver, jsid id, JS::Value * vp)  Line 361 + 0x13 bytes	C++
mozjs.dll!js::Shape::get(JSContext * cx, JSObject * receiver, JSObject * obj, JSObject * pobj, JS::Value * vp)  Line 252 + 0x29 bytes	C++
mozjs.dll!js_NativeGetInline(JSContext * cx, JSObject * receiver, JSObject * obj, JSObject * pobj, const js::Shape * shape, unsigned int getHow, JS::Value * vp)  Line 5824 + 0x1c bytes	C++
mozjs.dll!js_NativeGet(JSContext * cx, JSObject * obj, JSObject * pobj, const js::Shape * shape, unsigned int getHow, JS::Value * vp)  Line 5841 + 0x21 bytes	C++
mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode)  Line 3096 + 0xec bytes	C++
mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp)  Line 580 + 0xf bytes	C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct)  Line 643 + 0x1d bytes	C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct)  Line 165 + 0x37 bytes	C++
mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 675 + 0xf bytes	C++
mozjs.dll!js::InvokeGetterOrSetter(JSContext * cx, JSObject * obj, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 710 + 0x2f bytes	C++
mozjs.dll!js::Shape::get(JSContext * cx, JSObject * receiver, JSObject * obj, JSObject * pobj, JS::Value * vp)  Line 238 + 0x19 bytes	C++
mozjs.dll!js_NativeGetInline(JSContext * cx, JSObject * receiver, JSObject * obj, JSObject * pobj, const js::Shape * shape, unsigned int getHow, JS::Value * vp)  Line 5824 + 0x1c bytes	C++
mozjs.dll!js_GetPropertyHelperInline(JSContext * cx, JSObject * obj, JSObject * receiver, jsid id, unsigned int getHow, JS::Value * vp)  Line 5984 + 0x21 bytes	C++
mozjs.dll!js_GetPropertyHelper(JSContext * cx, JSObject * obj, jsid id, unsigned int getHow, JS::Value * vp)  Line 5993 + 0x1d bytes	C++
mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode)  Line 3107 + 0x43 bytes	C++
mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp)  Line 580 + 0xf bytes	C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct)  Line 643 + 0x1d bytes	C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct)  Line 165 + 0x37 bytes	C++
mozjs.dll!js::CallOrConstructBoundFunction(JSContext * cx, unsigned int argc, JS::Value * vp)  Line 1819 + 0x36 bytes	C++
mozjs.dll!js::CallJSNative(JSContext * cx, int (JSContext *, unsigned int, JS::Value *)* native, const js::CallArgs & args)  Line 311 + 0x19 bytes	C++
mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct)  Line 625 + 0x14 bytes	C++
mozjs.dll!js::Invoke(JSContext * cx, js::InvokeArgsGuard & args, js::MaybeConstruct construct)  Line 165 + 0x37 bytes	C++
mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 675 + 0xf bytes	C++
mozjs.dll!JS_CallFunctionValue(JSContext * cx, JSObject * obj, JS::Value fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 5178 + 0x2f bytes	C++
xul.dll!nsJSContext::CallEventHandler(nsISupports * aTarget, JSObject * aScope, JSObject * aHandler, nsIArray * aargv, nsIVariant * * arv)  Line 1927 + 0x2e bytes	C++
xul.dll!nsGlobalWindow::RunTimeout(nsTimeout * aTimeout)  Line 9280 + 0x83 bytes	C++
xul.dll!nsGlobalWindow::TimerCallback(nsITimer * aTimer, void * aClosure)  Line 9669	C++
xul.dll!nsTimerImpl::Fire()  Line 428 + 0xe bytes	C++
xul.dll!nsTimerEvent::Run()  Line 526	C++
xul.dll!nsThread::ProcessNextEvent(bool mayWait, bool * result)  Line 625 + 0x19 bytes	C++
xul.dll!NS_ProcessNextEvent_P(nsIThread * thread, bool mayWait)  Line 245 + 0x17 bytes	C++
xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate)  Line 110 + 0xe bytes	C++
xul.dll!MessageLoop::RunInternal()  Line 209	C++
xul.dll!MessageLoop::RunHandler()  Line 202	C++
xul.dll!MessageLoop::Run()  Line 176	C++
xul.dll!nsBaseAppShell::Run()  Line 191	C++
xul.dll!nsAppShell::Run()  Line 258 + 0x9 bytes	C++
xul.dll!nsAppStartup::Run()  Line 220 + 0x1c bytes	C++
xul.dll!XRE_main(int argc, char * * argv, const nsXREAppData * aAppData)  Line 3525 + 0x25 bytes	C++
firefox.exe!do_main(const char * exePath, int argc, char * * argv)  Line 201 + 0x13 bytes	C++
firefox.exe!NS_internal_main(int argc, char * * argv)  Line 287 + 0x14 bytes	C++
firefox.exe!wmain(int argc, wchar_t * * argv)  Line 107 + 0xd bytes	C++
firefox.exe!__tmainCRTStartup()  Line 552 + 0x19 bytes	C
firefox.exe!wmainCRTStartup()  Line 371	C
kernel32.dll!770d339a() 	
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
ntdll.dll!77d19ed2() 	
ntdll.dll!77d19ea5()
Comment 10 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-15 05:49:17 PST
Again with params stripped.

xul.dll!nsStyleContext::FindChildWithRules(...)  Line 179
xul.dll!nsStyleSet::GetContext(...)  Line 604 + 0x1d bytes
xul.dll!nsStyleSet::ResolveStyleFor(...)  Line 991 + 0x5e bytes
xul.dll!nsFrameManager::ReResolveStyleContext(...)  Line 1289 + 0x1b bytes
xul.dll!nsFrameManager::ComputeStyleChangeFor(...)  Line 1684 + 0x4a bytes
xul.dll!nsCSSFrameConstructor::RestyleElement(...)  Line 8078
xul.dll!mozilla::css::RestyleTracker::ProcessOneRestyle(...)  Line 158
xul.dll!mozilla::css::RestyleTracker::ProcessRestyles(...)  Line 243
xul.dll!nsCSSFrameConstructor::ProcessPendingRestyles(...)  Line 11645
xul.dll!PresShell::FlushPendingNotifications(...)  Line 4059
xul.dll!nsDocument::FlushPendingNotifications(...)  Line 6274
xul.dll!nsGenericHTMLElement::GetFormControlFrame(...)  Line 1522
xul.dll!nsHTMLInputElement::GetSelectionRange(...)  Line 2785 + 0xa bytes
xul.dll!nsHTMLInputElement::GetSelectionStart(...)  Line 2684 + 0x16 bytes
xul.dll!nsIDOMHTMLInputElement_GetSelectionStart(...)  Line 16147 + 0x15 bytes
mozjs.dll!js::CallJSPropertyOp(...)  Line 361 + 0x13 bytes
mozjs.dll!js::Shape::get(...)  Line 252 + 0x29 bytes
mozjs.dll!js_NativeGetInline(...)  Line 5824 + 0x1c bytes
mozjs.dll!js_NativeGet(...)  Line 5841 + 0x21 bytes
mozjs.dll!js::Interpret(...)  Line 3096 + 0xec bytes
mozjs.dll!js::RunScript(...)  Line 580 + 0xf bytes
mozjs.dll!js::InvokeKernel(...)  Line 643 + 0x1d bytes
mozjs.dll!js::Invoke(...)  Line 165 + 0x37 bytes
mozjs.dll!js::Invoke(...)  Line 675 + 0xf bytes
mozjs.dll!js::InvokeGetterOrSetter(...)  Line 710 + 0x2f bytes
mozjs.dll!js::Shape::get(...)  Line 238 + 0x19 bytes
mozjs.dll!js_NativeGetInline(...)  Line 5824 + 0x1c bytes
mozjs.dll!js_GetPropertyHelperInline(...)  Line 5984 + 0x21 bytes
mozjs.dll!js_GetPropertyHelper(...)  Line 5993 + 0x1d bytes
mozjs.dll!js::Interpret(...)  Line 3107 + 0x43 bytes
mozjs.dll!js::RunScript(...)  Line 580 + 0xf bytes
mozjs.dll!js::InvokeKernel(...)  Line 643 + 0x1d bytes
mozjs.dll!js::Invoke(...)  Line 165 + 0x37 bytes
mozjs.dll!js::CallOrConstructBoundFunction(...)  Line 1819 + 0x36 bytes
mozjs.dll!js::CallJSNative(...)  Line 311 + 0x19 bytes
mozjs.dll!js::InvokeKernel(...)  Line 625 + 0x14 bytes
mozjs.dll!js::Invoke(...)  Line 165 + 0x37 bytes
mozjs.dll!js::Invoke(...)  Line 675 + 0xf bytes
mozjs.dll!JS_CallFunctionValue(...)  Line 5178 + 0x2f bytes
xul.dll!nsJSContext::CallEventHandler(...)  Line 1927 + 0x2e bytes
xul.dll!nsGlobalWindow::RunTimeout(...)  Line 9280 + 0x83 bytes
xul.dll!nsGlobalWindow::TimerCallback(...)  Line 9669
xul.dll!nsTimerImpl::Fire(...)  Line 428 + 0xe bytes
xul.dll!nsTimerEvent::Run(...)  Line 526
xul.dll!nsThread::ProcessNextEvent(...)  Line 625 + 0x19 bytes
xul.dll!NS_ProcessNextEvent_P(...)  Line 245 + 0x17 bytes
xul.dll!mozilla::ipc::MessagePump::Run(...)  Line 110 + 0xe bytes
xul.dll!MessageLoop::RunInternal(...)  Line 209
xul.dll!MessageLoop::RunHandler(...)  Line 202
xul.dll!MessageLoop::Run(...)  Line 176
xul.dll!nsBaseAppShell::Run(...)  Line 191
xul.dll!nsAppShell::Run(...)  Line 258 + 0x9 bytes
xul.dll!nsAppStartup::Run(...)  Line 220 + 0x1c bytes
xul.dll!XRE_main(...)  Line 3525 + 0x25 bytes
firefox.exe!do_main(...)  Line 201 + 0x13 bytes
firefox.exe!NS_internal_main(...)  Line 287 + 0x14 bytes
firefox.exe!wmain(...)  Line 107 + 0xd bytes
firefox.exe!__tmainCRTStartup(...)  Line 552 + 0x19 bytes
firefox.exe!wmainCRTStartup(...)  Line 371
Comment 11 Mats Palmgren (:mats) 2011-12-21 02:39:18 PST
Joe, can you still reproduce this crash / assertion?  It WFM on Linux64 and WinXP
in recent trunk debug builds.
Comment 12 Joe Walker [:jwalker] (needinfo me or ping on irc) 2011-12-23 05:28:18 PST
It's still there - Win 7 only as far as I can tell.
(I just did a clean rebuild with an empty mq)
Comment 13 Mats Palmgren (:mats) 2011-12-26 14:31:19 PST
Still WFM in my Win7 mozilla-central debug build with a fresh profile.
Comment 14 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-01-09 04:38:41 PST
Created attachment 586958 [details] [diff] [review]
upload 1
Comment 15 Paul Rouget [:paul] 2012-01-09 06:34:15 PST
Comment on attachment 586958 [details] [diff] [review]
upload 1

r+

Don't forget to open a follow-up bug to re-enable this feature.

Don't you think it would be better to comment this code instead of removing it. (And add "FIXME: Commented to avoid a crasher. See bug XXXXXX"?)
Comment 16 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-01-09 06:51:44 PST
(In reply to Paul Rouget [:paul] from comment #15)
> Comment on attachment 586958 [details] [diff] [review]
> upload 1
> 
> r+
> 
> Don't forget to open a follow-up bug to re-enable this feature.
> 
> Don't you think it would be better to comment this code instead of removing
> it. (And add "FIXME: Commented to avoid a crasher. See bug XXXXXX"?)

I didn't do that because the commented out version would get copied to the console whenever someone typed help. It bothered me that the comment was 'used'.

See bug 716529, which includes what we need to do to put it back.
Comment 17 Joe Walker [:jwalker] (needinfo me or ping on irc) 2012-01-09 07:48:58 PST
The patch that's landing is just a workaround, the real issue (bug 575675) is still on-going.

https://tbpl.mozilla.org/?tree=Fx-Team&rev=9ea2996a1f3c
Comment 18 Tim Taubert [:ttaubert] (on PTO, back Aug 29th) 2012-01-10 14:51:55 PST
https://hg.mozilla.org/mozilla-central/rev/9ea2996a1f3c

Note You need to log in before you can comment on or make changes to this bug.