WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
68990
[Qt]REGRESSION(
r95912
): It made sputnik tests flakey
https://bugs.webkit.org/show_bug.cgi?id=68990
Summary
[Qt]REGRESSION(r95912): It made sputnik tests flakey
Csaba Osztrogonác
Reported
2011-09-28 03:16:21 PDT
r95912
,
r95914
(buildfix),
r95917
(buildfix) and
r96068
(regression fix) made sputnik tests flakey on Qt platform. I think it isn't a QtWebKit bug, but a hidden JSC bug revealed by QtWebKit bots.
Attachments
minor change
(1.73 KB, patch)
2011-09-30 05:51 PDT
,
Zoltan Herczeg
ggaren
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Csaba Osztrogonác
Comment 1
2011-09-28 03:23:27 PDT
r96068
fixed zillion crash, but there are timeout sputnik tests: On Qt ARM bot:
http://build.webkit.sed.hu/results/ARMv5%20Linux%20Qt%20Release%20%28Test%29/r96068%20%283791%29/results.html
On Qt 4.8 bot:
http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt-4.8.x%20Release/r96068%20%2824137%29/results.html
On Qt 32-bit debug bot:
http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Debug/r96068%20%2818568%29/results.html
Csaba Osztrogonác
Comment 2
2011-09-28 03:29:30 PDT
You can reproduce timeouts with Qt 4.7.4 in release mode 32-bit (Same as our official bot on build.webkit.org) with ORWT if you run all tests. (Unfortunately NRWT runs tests in different order and the bug doesn't occur with it on the official bot.) I tried revert
r95912
,
r95914
,
r95917
and
r96068
locally and then all tests pass for me.
Csaba Osztrogonác
Comment 3
2011-09-28 03:38:27 PDT
One more thing: This bug only appears on 32 bit x86 platfom and on ARM.
Csaba Osztrogonác
Comment 4
2011-09-28 04:56:10 PDT
I managed to reproduce it in a small example: $ Tools/Scripts/old-run-webkit-tests LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI --exit-after-n-failures 1 --verbose running sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A1.1_T1.html -> succeeded running sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A1.2_T1.html -> succeeded running sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A1.2_T2.html -> succeeded running sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A1.3_T1.html -> timed out
Csaba Osztrogonác
Comment 5
2011-09-29 03:02:28 PDT
Any GC expert volunteer for this bug? :)
Geoffrey Garen
Comment 6
2011-09-29 11:48:04 PDT
Is there a way to reproduce this on a non-Qt system?
Csaba Osztrogonác
Comment 7
2011-09-29 11:50:34 PDT
(In reply to
comment #6
)
> Is there a way to reproduce this on a non-Qt system?
I don't know. But Zoltan started to fix it, he confirmed that it is a GC related bug. I think he will provide the fix tomorrow.
Oliver Hunt
Comment 8
2011-09-29 11:52:35 PDT
(In reply to
comment #7
)
> (In reply to
comment #6
) > > Is there a way to reproduce this on a non-Qt system? > > I don't know. But Zoltan started to fix it, he confirmed that it is a GC related bug. I think he will provide the fix tomorrow.
We might be able to fix it if we had any information about what is going wrong -- currently we can't repro, but zoltan has found the bug and hasn't commented on what that bug is so we can't help in any way :-/
Csaba Osztrogonác
Comment 9
2011-09-29 15:00:33 PDT
It seems
http://trac.webkit.org/changeset/96354
fixed the bug. But let's wait for Zoltan's confirmation.
Zoltan Herczeg
Comment 10
2011-09-30 00:08:08 PDT
> We might be able to fix it if we had any information about what is going wrong -- currently we can't repro, but zoltan has found the bug and hasn't commented on what that bug is so we can't help in any way :-/
I will check the fix Ossy mentioned. Probably I still need to debug it to see that the fix hides the issue or really fix it. But it is a good lead at least. ClassInfo.h:66: for (const ClassInfo* ci = this; ci; ci = ci->parentClass) in this case ci == ci->parentClass, so it is an infinite loop. This happens after the calling of GC. The 'this' pointer contains JSDOMWindow, namely the JSDOMWindow of S15.1.3.1_A1.2_T1.html. The GC call and infinite loop happens during the run of S15.1.3.1_A1.2_T2.html. And the mentioned parentClass is the 3rd parent. p structure()->classInfo()->parentClass->parentClass == 0xf12d3fb0 p structure()->classInfo()->parentClass->parentClass->parentClass == 0xf12d3fb0 and this repeats forever.
Zoltan Herczeg
Comment 11
2011-09-30 05:51:24 PDT
Created
attachment 109288
[details]
minor change
Zoltan Herczeg
Comment 12
2011-09-30 05:57:35 PDT
I did the debugging. The Structure was freed, but still have references from a "should be freed" object (unused JSDOMWindow). The cell is allocated again and the new memory data cause the infinite loop (it could be a crash of course). After the signed chars changed to int both of them are correctly collected.
Csaba Osztrogonác
Comment 13
2011-09-30 05:59:50 PDT
Comment on
attachment 109288
[details]
minor change View in context:
https://bugs.webkit.org/attachment.cgi?id=109288&action=review
> Source/JavaScriptCore/ChangeLog:8 > + Changint signed char to int in
r96354
solved the
typo: Changint -> Changing
Geoffrey Garen
Comment 14
2011-09-30 12:16:55 PDT
Comment on
attachment 109288
[details]
minor change r=me with typo fix.
Zoltan Herczeg
Comment 15
2011-10-03 00:34:44 PDT
Landed in
http://trac.webkit.org/changeset/96483
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug