Closed Bug 446120 Opened 13 years ago Closed 3 years ago

Watches window stops updating and throws errors in certain cases

Categories

(Other Applications Graveyard :: Venkman JS Debugger, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: vinjac01a, Assigned: rginda)

References

Details

(Keywords: regression, testcase)

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Build Identifier: 0.9.87.4 with Firefox/3.0.1

On watches windows, when  two levels (or +) are expanded (for example in case of array of arrays) and the value of a line is changed (by the program) the windows crashes and it is not prossible to remove, add, expand or minimize any watch nor do any more action on this window.
On the other hand, there is no similar problem in the "Local variables" window.

Reproducible: Always

Steps to Reproduce:
1.create an html file with this code:
<html><head><title>test</title>
<script type="text/javascript" charset="utf-8">
function test(){
	var arr1=[[0,1],[1,2],[2,3]];
	arr1[3]=[3,4];
	arr1[4]=[4,5];
	arr1[2]=[3,2];
	arr1[5]=[5,4];
}
test();
</script>
</head><body>test</body></html>

2.Load this file in firefox and open javascript debugger
3.set a break point on line => arr1[2]=[3,2]; (the value of arr1[2] changes)
4. add arr1 as watch
5. expand two levels to see a tree like below :
- arr1
  + 0
  + 1
  - 2
    #0
    #1

6. press F12 to go to the next line
7. the windows crashes and is out of service
Actual Results:  
The indexes of the arrays appear in italic and no action become possible in the watches window.

Expected Results:  
No crash and the same results as in "local variables" window which works fine.
1 save the file on your PC
2.Load it in firefox and open javascript debugger
3.set a break point on line => arr1[2]=[3,2]; (the value of arr1[2] changes)
4. add arr1 as watch
5. expand two levels to see a tree like below :
- arr1
  + 0
  + 1
  - 2
    #0
    #1

6. press F12 to go to the next line
7. the windows crashes and is out of service
No action become possible : nor remove or add watches, nor expand or contract level on watches tree.
Related bug : 410943 (see below)
The last version without this bug is 0.9.87 (but is not compatible with firefox 3) 
In version 0.9.87.1 and 0.9.87.2 it was not possible to see more than 1 level (see bug 410943)
The version 0.9.87.3 partially fixes the previous issue but has the same behaviour as mentionned here in version 0.9.87.4
Keywords: regression
Summary: Watches crash when expand two levels (or +) on an array of array whose value is changed → Watches crash when expanding two levels (or +) and values change
Version: unspecified → Trunk
Message error in interactive session :
!! Internal error processing hook "watches:hook-debug-stop".
!! [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [jsdIStackFrame.eval]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome://venkman/content/venkman-records.js :: vr_evalstring :: line 644" data: no]
Severity: major → critical
http://developer.mozilla.org/en/docs/How_to_get_a_stacktrace_with_WinDbg
http://developer.mozilla.org/en/docs/Using_the_Mozilla_source_server
please set a breakpoint on jsdStackFrame::Eval and then trace through to find out what's actually going wrong.
Keywords: stackwanted
(In reply to comment #5)
> http://developer.mozilla.org/en/docs/How_to_get_a_stacktrace_with_WinDbg
> http://developer.mozilla.org/en/docs/Using_the_Mozilla_source_server
> please set a breakpoint on jsdStackFrame::Eval and then trace through to find
> out what's actually going wrong.
> 

I did that but the latest trunk nightly build of firefox (http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/) is not compatible with "Javascript debugger extension" (nor any extension).
It only allows to debug the core of firefox.
A question : cannot you reproduce the mentionned bug ?
i'm not actively working on this area. atm i'm busy worrying about microb and mxr.
Internal error processing hook “watches:hook-debug-stop”.
[Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [jsdIStackFrame.eval]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome://venkman/content/venkman-records.js :: vr_evalstring :: line 644" data: no]

This isn't actually a crash... and so not critical. It just throws errors, and seems to be similar to bug 458020.
Severity: critical → normal
Keywords: stackwanted
So the errors mean, apparently, that ASSERT_VALID_EPHEMERAL; fails:

http://mxr.mozilla.org/seamonkey/source/js/jsd/jsd_xpc.cpp#1909

Mrbkap, jorendorff, could you please tell me what that means? Because I don't understand it (not the word EPHEMERAL, nevermind what it's supposed to be checking and/or what Vnk is doing wrong, nor most importantly how to fix it). :-)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: Watches crash when expanding two levels (or +) and values change → Watches window stops updating and throws errors in certain cases
Sorry for all the bugspam, this new Bugzilla UI is driving me nuts. Anyway, jorendorff, mrbkap, could you please look at comment #9? Thanks!
Keywords: testcase
Yes, this bug seems to be related to Bug 458020.
In order to be more explicit, I've joined a new screen shot.
We see that the value of arr1[2][0] is 3 in Local Variables (it's right) and 2 in Watches (WRONG) and that a sign minus (-) is present before arr1[0] in Local and Watches  but there is nothing to collapse /expand in Watches (opposite of Local witch details arr1[0][1] arr1[0][1], ...)
In Watches, if we click on the node sign -/+, the sign +/- switches but nothing changes.
To reproduce :
1)Load the file as before mentioned.
2)set a break point on line => arr1[2]=[3,2]; (the value of arr1[2] changes)
3) add arr1 as watch
4) expand two levels to see a tree like below :
- arr1
  + 0
  + 1
  - 2
    #0
    #1

5) press F12 to go to the next line
6) the windows crashes and is out of service(see Interactive image): wrong value of arr1[2][0], impossible to expand or minimize the different nodes, ...
It regressed since the resolution of Bug 410943.
The latest version without this bug is Version 0.9.87 (not compatible with Firefox 3)
Version Version 0.9.87.1 didn't display any multiple watches (Bug 410943).
Version 0.9.87.2 displayed again multiple watches  (Bug 410943 fixed!?) but with this new bug, not fixed since.
I'm sure of that because, due to this bug, after testing the different new versions, I kept Version 0.9.87 until the migration to Firefox 3 for compatibility reason.
Duplicate of this bug: 456421
Duplicate of this bug: 456325
Component is obsolete so resolving bugs as INCOMPLETE
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Product: Other Applications → Other Applications Graveyard
You need to log in before you can comment on or make changes to this bug.