Closed Bug 709748 Opened 13 years ago Closed 13 years ago

GCLI 'help' command causes firefox to crash

Categories

(DevTools :: Console, defect)

All
Windows 7
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 12

People

(Reporter: jwalker, Assigned: jwalker)

References

Details

(Keywords: crash, platform-parity, qawanted, Whiteboard: [STR in comment 3, use a DEBUG build])

Crash Data

Attachments

(1 file)

      No description provided.
Bug report is incomplete. 

And typing 'help' in the error console yields:
Error: help is not defined
Source File: javascript:%20help
Line: 1
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → INCOMPLETE
Didn't see the blocking bug. Reopened.
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Status: REOPENED → NEW
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'
Please provide a crash ID from about:crashes.
Severity: normal → critical
Keywords: crash
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.
(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.
I cannot reproduce with the STR in comment 3 using 11.0a1/20111212.
Try with a new profile.
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
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()
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
Crash Signature: [@ nsStyleContext::FindChildWithRules(nsIAtom const*, nsRuleNode*, nsRuleNode*, int)] [@ nsStyleContext::FindChildWithRules]
Joe, can you still reproduce this crash / assertion?  It WFM on Linux64 and WinXP
in recent trunk debug builds.
It's still there - Win 7 only as far as I can tell.
(I just did a clean rebuild with an empty mq)
Still WFM in my Win7 mozilla-central debug build with a fresh profile.
Keywords: pp, qawanted
OS: All → Windows 7
Whiteboard: [STR in comment 3, use a DEBUG build]
Blocks: GCLI-12
No longer blocks: GCLI-SHIP
Attached patch upload 1Splinter Review
Assignee: nobody → jwalker
Status: NEW → ASSIGNED
Attachment #586958 - Flags: review?(mihai.sucan)
Attachment #586958 - Flags: review?(mihai.sucan) → review?(paul)
Depends on: 575675
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"?)
Attachment #586958 - Flags: review?(paul) → review+
Blocks: 716529
No longer depends on: 575675
(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.
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
Blocks: GCLI-SHIP
No longer blocks: GCLI-12, 716529
Whiteboard: [STR in comment 3, use a DEBUG build] → [landed-in-fxteam][STR in comment 3, use a DEBUG build]
https://hg.mozilla.org/mozilla-central/rev/9ea2996a1f3c
Status: ASSIGNED → RESOLVED
Closed: 13 years ago13 years ago
Resolution: --- → FIXED
Whiteboard: [landed-in-fxteam][STR in comment 3, use a DEBUG build] → [STR in comment 3, use a DEBUG build]
Target Milestone: --- → Firefox 12
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: