Watches window stops updating and throws errors in certain cases

RESOLVED INCOMPLETE

Status

RESOLVED INCOMPLETE
10 years ago
3 days ago

People

(Reporter: vinjac01a, Assigned: rginda)

Tracking

({regression, testcase})

Trunk
x86
Windows XP
regression, testcase

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Reporter)

Description

10 years ago
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.
(Reporter)

Comment 1

10 years ago
Created attachment 330321 [details]
test file to open in firefox and debug with javascript debugger

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
(Reporter)

Comment 2

10 years ago
Created attachment 330323 [details]
Watches window is blocked (see the difference with the Local variables window)

No action become possible : nor remove or add watches, nor expand or contract level on watches tree.
(Reporter)

Comment 3

10 years ago
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
(Reporter)

Updated

10 years ago
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
(Reporter)

Comment 4

10 years ago
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]
(Reporter)

Updated

10 years ago
Severity: major → critical

Comment 5

10 years ago
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
(Reporter)

Comment 6

10 years ago
(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 ?

Comment 7

10 years ago
i'm not actively working on this area. atm i'm busy worrying about microb and mxr.

Comment 8

10 years ago
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

Updated

10 years ago
Keywords: stackwanted

Comment 9

10 years ago
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

Updated

10 years ago
Summary: Watches crash when expanding two levels (or +) and values change → Watches window stops updating and throws errors in certain cases

Comment 10

10 years ago
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
(Reporter)

Comment 11

10 years ago
Created attachment 342722 [details]
Wrong values in watches in opposite of Local

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, ...
(Reporter)

Comment 12

10 years ago
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.

Updated

10 years ago
Duplicate of this bug: 456421

Updated

10 years ago
Duplicate of this bug: 456325

Comment 15

3 days ago
Component is obsolete so resolving bugs as INCOMPLETE
Status: NEW → RESOLVED
Last Resolved: 3 days ago
Resolution: --- → INCOMPLETE

Updated

3 days ago
Product: Other Applications → Other Applications Graveyard
You need to log in before you can comment on or make changes to this bug.