Bug 138303 - 2 date tests fail on 2014.11.01 - the last day of daylight saving
Summary: 2 date tests fail on 2014.11.01 - the last day of daylight saving
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P1 Major
Assignee: Nobody
URL:
Keywords: InRadar
Depends on: 71371 136363
Blocks:
  Show dependency treegraph
 
Reported: 2014-11-03 02:17 PST by Csaba Osztrogonác
Modified: 2016-11-07 03:54 PST (History)
13 users (show)

See Also:


Attachments
Patch (1.38 KB, patch)
2015-03-22 07:37 PDT, Byungseon(Sun) Shin
no flags Details | Formatted Diff | Diff
Patch (1.38 KB, patch)
2015-03-22 07:46 PDT, Byungseon(Sun) Shin
no flags Details | Formatted Diff | Diff
Patch (1.45 KB, patch)
2015-03-22 07:54 PDT, Byungseon(Sun) Shin
ossy: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Csaba Osztrogonác 2014-11-03 02:21:08 PST
Only 2 different test ( with all configuration 2*6 ):
- mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla
new Date(1414918204891)).getHours() = 1 FAILED! expected: 0

- mozilla-tests.yaml/ecma/Date/15.9.5.34-1.js.mozilla
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getTime() = 1420015811536 FAILED! expected: 1420098611536
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.valueOf() = 1420015811536 FAILED! expected: 1420098611536
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getUTCFullYear() = 2014 FAILED! expected: 2015
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getUTCMonth() = 11 FAILED! expected: 0
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getUTCDate() = 31 FAILED! expected: 1
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getUTCDay() = 3 FAILED! expected: 4
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getUTCHours() = 8 FAILED! expected: 7
TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getHours() = 0 FAILED! expected: 23
Comment 2 Radar WebKit Bug Importer 2014-11-03 15:21:23 PST
<rdar://problem/18859472>
Comment 3 Byungseon(Sun) Shin 2014-11-03 15:44:07 PST
This year's PDT ends at Sun, Nov 2, 2:00 AM.
So, the error time boundary seems a little bit mis-matched with DST.
But I will double check it by reverting the changes locally.
Comment 4 Byungseon(Sun) Shin 2014-11-03 21:59:24 PST
@Csaba, could you please specify timezone information?
In PST(PDT) timezone, it works same with/without patch of bug130967.
Comment 5 Csaba Osztrogonác 2015-03-09 04:40:15 PDT
mozilla-tests.yaml/ecma/Date/15.9.5.34-1.js.mozilla failed again on all bots:

Apple Mavericks bot:
Mar 08 14:51 	181246 	success 	#12794 	Build successful
Mar 08 10:24 	181245 	failure 	#12793 	Failed 6 jsc tests failed
Mar 08 00:21 	181222 	failure 	#12792 	Failed 6 jsc tests failed
Mar 07 21:18 	181220 	failure 	#12791 	Failed 6 jsc tests failed
Mar 07 19:53 	181219 	success 	#12790 	Build successful

Apple Yosemite bot:
Mar 08 14:50 	181246 	success 	#161 	Build successful
Mar 08 10:15 	181245 	failure 	#160 	Failed 6 jsc tests failed
Mar 08 00:18 	181222 	failure 	#159 	Failed 6 jsc tests failed
Mar 07 21:14 	181220 	failure 	#158 	Failed 6 jsc tests failed
Mar 07 19:50 	181219 	success 	#157 	Build successful

EFL bot:
Mar 08 14:33 	181246 	failure 	#20280 	success
Mar 08 10:03 	181245 	failure 	#20279 	Failed 4 jsc tests failed
Mar 08 03:28 	181242 	failure 	#20278 	Failed 8 jsc tests failed
Mar 08 00:11 	181222 	failure 	#20277 	Failed 4 jsc tests failed
Mar 07 22:52 	181221 	failure 	#20276 	Failed 4 jsc tests failed
Mar 07 20:58 	181220 	failure 	#20275 	Failed 4 jsc tests failed 
Mar 07 19:38 	181219 	failure 	#20274 	success

...

mozilla-tests.yaml/ecma/Date/15.9.5.34-1.js.mozilla-llint: TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getTime() = 1451586369509 FAILED! expected: 1451582769509
mozilla-tests.yaml/ecma/Date/15.9.5.34-1.js.mozilla-llint: TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.valueOf() = 1451586369509 FAILED! expected: 1451582769509
mozilla-tests.yaml/ecma/Date/15.9.5.34-1.js.mozilla-llint: TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getUTCHours() = 18 FAILED! expected: 17
mozilla-tests.yaml/ecma/Date/15.9.5.34-1.js.mozilla-llint: TDATE = new Date(now); (TDATE).setMonth(11,31); TDATE.getHours() = 10 FAILED! expected: 9
Comment 6 Csaba Osztrogonác 2015-03-09 04:40:47 PDT
similar bug: bug139123
Comment 7 Byungseon(Sun) Shin 2015-03-11 09:30:04 PDT
Just for sharing, I have verified that this issue does not related with bug130967 since event after I manually reverted the patch, same issue still existed.

I am looking into this issue what make this error regardless of the relationship.
Comment 8 Byungseon(Sun) Shin 2015-03-22 05:33:04 PDT
This issue re-introduced from https://bugs.webkit.org/show_bug.cgi?id=136363 which was originally fixed by https://bugs.webkit.org/show_bug.cgi?id=71371.

Mozilla also has same issue: <https://bugzilla.mozilla.org/show_bug.cgi?id=610185>

We need to re-block those test cases to prevent another investigation in DST period.
Comment 9 Byungseon(Sun) Shin 2015-03-22 07:37:04 PDT
Created attachment 249195 [details]
Patch
Comment 10 Byungseon(Sun) Shin 2015-03-22 07:46:50 PDT
Created attachment 249196 [details]
Patch
Comment 11 Byungseon(Sun) Shin 2015-03-22 07:54:00 PDT
Created attachment 249197 [details]
Patch
Comment 12 Csaba Osztrogonác 2015-03-23 00:13:37 PDT
Comment on attachment 249197 [details]
Patch

Skipping tests doesn't fix the issue. And run-javascriptcore-tests run stress tests by default, which ignores this kind of skipping.
Comment 13 Byungseon(Sun) Shin 2015-03-23 01:03:01 PDT
If so, what is your purpose to create this issue? Do we need to fix the mozilla date test cases to adapt DST changing? It fails on Mozilla also.
Comment 14 Csaba Osztrogonác 2015-03-23 02:20:01 PDT
(In reply to comment #13)
> If so, what is your purpose to create this issue? Do we need to fix the
> mozilla date test cases to adapt DST changing? It fails on Mozilla also.

I have 2 problems with the proposed patch:
- Adding a test to @testsToSkip list doesn't skip it in the real life,
because run-javascriptcore-tests run stress tests by default with the
run-jsc-stres-tests harness. (Can be orverriden manually with --no-jsc-stress)
This list is for the old mozilla test harnes, which isn't used by default.
If we really want to skip a test, it should be done in
Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml too.
- I don't think if we should skip a full test just because one test
case in it fails on 1-2 days in a year.

15.9.5.14.js: (only the "now" case fails only when DST changes)
    addTestCase( now );
    addTestCase( TIME_YEAR_0 );
    addTestCase( TIME_1970 );
    addTestCase( TIME_1900 );
    addTestCase( TIME_2000 );
    addTestCase( UTC_FEB_29_2000 );
    addTestCase( UTC_JAN_1_2005 );

I think we should skip only the "now" case it this test after adding
DST specific tests too and adding crash-only tests for the "now" case.
See bug139123 too.
Comment 15 Byungseon(Sun) Shin 2015-03-23 03:58:19 PDT
Now I can understand your intention. Thanks for the explanation.
Comment 16 Csaba Osztrogonác 2016-11-07 03:54:38 PST
Still valid bug, bots are red again due to PST->PDT change.

mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: 15.9.5.14 Date.prototype.getHours()
mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: (new Date(1478388956518)).getHours() = 16 FAILED! expected: 15
mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: (new Date(1478392556518)).getHours() = 17 FAILED! expected: 16
mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: (new Date(1478396156518)).getHours() = 18 FAILED! expected: 17
mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: (new Date(1478399756518)).getHours() = 19 FAILED! expected: 18
mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: (new Date(1478403356518)).getHours() = 20 FAILED! expected: 19
mozilla-tests.yaml/ecma/Date/15.9.5.14.js.mozilla-baseline: (new Date(1478406956518)).getHours() = 21 FAILED! expected: 20