Closed Bug 614207 Opened 14 years ago Closed 14 years ago

mxr-test genxref is hanging on regress-229006.js

Categories

(Webtools Graveyard :: MXR, defect)

x86
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: timeless, Assigned: timeless)

References

()

Details

(Keywords: perf)

Attachments

(1 file)

The file is composed of 65000 or so lines of nothing.

# js/src/tests/js1_5/Regress/regress-229006.js (View Hg log or Hg annotations)

    * line 65596 -- reportCompare(expect, actual, summary); 

I don't know offhand of any reason for this to be a problem specific to mxr-test, the file is essentially older than dirt and I don't recall having made any significant changes to the js parser.
well, i did change this line somewhat recently iirc:
main::findidentJS(../genxref:540):                  if ($line =~ /^(.*\n|)(\s*(?:var|let|const)\s+)($ident(?:\s*(?:=[^,;]*|),\s*$ident)*)(.*?)(\n|$)/s) {

and the file does have this:
65591 for (var i=0; i<2; i++) {

which could be unfortunate.

in fact that parser basically has <x blank lines> leading up to:

"for (var i=0"

and it gets stuck there. but i'm not sure why this would be a change.

http://mxr-test.konigsberg.mozilla.org/.hg/patches/js-let-get-set

is applied, i'll try popping it...
Unfortunately rolling back that change didn't help at all.

I'm trying with http://konigsberg.mozilla.org/.hg/patches/614207-pre-line-counting

For a directory containing just the one file, I get this:
[timeless@konigsberg 614207]$ time ../genxref
Starting pass 0: Checking for files to index.
Looking in ./.
Stage 0 IDL file count is : 0
Stage 0 C/C++ file count is : 0
Stage 0 JS file count is : 1
Stage 0 PL file count is : 0
Starting pass 1 for IDL: Collect identifier definitions.
Completed pass 1 IDL (0s): 0 definitions found (total found so far: 0).

Stage 1 IDL XREF keycount is : 0
Starting pass 1 for IPDL: Collect identifier definitions.
Completed pass 1 IPDL (0s): 0 definitions found (total found so far: 0).

Stage 1 IPDL XREF keycount is : 0
Starting pass 1 for C/C++: Collect identifier definitions.
Completed pass 1 C/C++ (0s): 0 definitions found (total found so far: 0).

Stage 1 C/C++ XREF keycount is : 0
Starting pass 1 for Javascript: Collect identifier definitions.
(Pass 1 JS) regress-229006.js (67973), file 1 of 1...
Completed pass 1 Javascript (496s): 4 definitions found (total found so far: 4).

Stage 1 C/C++/JS XREF keycount is : 4
Starting pass 1 for Perl: Collect identifier definitions.
Completed pass 1 Perl (0s): 0 definitions found (total found so far: 4).

Stage 1 C/C++/JS/PL XREF keycount is : 4
Starting pass 1 for XBL: Collect identifier definitions.
Completed pass 1 XBL (0s): 0 definitions found (total found so far: 4).

Stage 1 C/C++/JS/PL/XBL XREF keycount is : 4
Starting pass 2 IDL: Generate reference statistics.
Completed pass 2 IDL (0s): 0 references to known identifiers found (total: 0).

Stage 2 IDL XREF keycount is : 4
Starting pass 2 C/C++: Generate reference statistics.
Completed pass 2 C/C++ (0s): 0 references to known identifiers found (total: 0).

Stage 2 C/C++ XREF keycount is : 4
Starting pass 2 Javascript: Generate reference statistics.
(Pass 2 JS) regress-229006.js (67973), file 1 of 1...
Completed pass 2 (1s): 4 references to known identifiers found (total: 4).

Stage 2 C/C++/JS XREF keycount is : 4
Starting pass 2 Perl: Generate reference statistics.
Completed pass 2 (0s): 0 references to known identifiers found (total: 4).

Stage 2 C/C++/JS/PL keycount is : 4
Starting stage 3: Dump database to disk.
Completed stage 3 (0s): Information on 4 identifiers dumped to disk.


real	8m16.843s
user	6m4.558s
sys	0m0.762s

Which is rather depressing. 

I tried a simple version of the input and it runs quickly, so there's something else magical running around.
Keywords: perf
ok. with that patch mozilla-central was able to update.
Assignee: nobody → timeless
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
ok, i ran it again and it seems like i'm getting stuck on that test again. I've added a local patch on konigsberg to skip all js files in /Regress/.
Blocks: 620256
I think I'll push this in a bit
http://hg.mozilla.org/webtools/mxr/rev/abf6a685f1a4
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Webtools → Webtools Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: