Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.12
-
None
-
macos 10.13.4 (latest non-beta), xcode 9.4.1 (latest non-beta)
-
-
8dd40e9b0931d2698ff2ee3a655aab8b4947dae8
Description
build: http://coin/coin/integration/qt/qt5/tasks/web_qt_qt5_1533800463809
failing log: http://coin/coin/api/results/qt/qtbase/d9ea8e8637fd900cd35732cbc5d66744429c8b35/MacOSMacOS_10_13x86_64MacOSMacOS_10_13x86_64Clangqtci-macos-10.13-x86_64-feec42DeveloperBuild_Debug_NoFramework_AddressSanitizer/2a48a3b7dcb9652b1532a3ad14de7580b5b9b1ee/test_1533969514/log.txt.gz
agent:2018/08/09 11:50:16 build.go:187: QFATAL : tst_QTimeZone::stressTest() ASSERT: "nextSecs <= endSecs - year || nextSecs == tranSecs" in file tools/qtimezoneprivate_mac.mm, line 250
Note: this CI build is "experimental", because it has AddressSanitizer enabled. However, it is perfectly reproducible on my machine both with and without ASAN:
(lldb) r Process 85321 launched: './tst_qtimezone' (x86_64) ********* Start testing of tst_QTimeZone ********* Config: Using QtTest library 5.12.0, Qt 5.12.0 (x86_64-little_endian-lp64 shared (dynamic) debug build; by Clang 9.1.0 (clang-902.0.39.2) (Apple)) 2018-08-09 10:55:56.646416+0200 tst_qtimezone[85321:3981501] [qt.test.enter] tst_QTimeZone::initTestCase() 2018-08-09 10:55:56.646782+0200 tst_qtimezone[85321:3981501] [qt.test.pass] tst_QTimeZone::initTestCase() 2018-08-09 10:55:56.646855+0200 tst_qtimezone[85321:3981501] [qt.test.enter] tst_QTimeZone::stressTest() 2018-08-09 10:55:56.654231+0200 tst_qtimezone[85321:3981501] ASSERT: "nextSecs <= endSecs - year || nextSecs == tranSecs" in file /Users/erik/dev/qt5-dev/qtbase/src/corelib/tools/qtimezoneprivate_mac.mm, line 250 2018-08-09 10:55:56.654274+0200 tst_qtimezone[85321:3981501] [qt.test.fail] tst_QTimeZone::stressTest() Received a fatal error. Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted, 9ms ********* Finished testing of tst_QTimeZone ********* Process 85321 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff66d0bb66 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill: -> 0x7fff66d0bb66 <+10>: jae 0x7fff66d0bb70 ; <+20> 0x7fff66d0bb68 <+12>: movq %rax, %rdi 0x7fff66d0bb6b <+15>: jmp 0x7fff66d02ae9 ; cerror_nocancel 0x7fff66d0bb70 <+20>: retq Target 0: (tst_qtimezone) stopped. (lldb) frame select 6 frame #6: 0x0000000100349ed3 libQt5Core_debug.5.dylib`QtNS::QMacTimeZonePrivate::previousTransition(this=0x0000000100f13b70, beforeMSecsSinceEpoch=-5351616000000) const at qtimezoneprivate_mac.mm:250 247 if (nextDate != nil) { 248 NSTimeInterval lateSecs = nextSecs; 249 nextSecs = [nextDate timeIntervalSince1970]; -> 250 Q_ASSERT(nextSecs <= endSecs - year || nextSecs == tranSecs); 251 /* 252 We're looking at the first ever transition for our zone, at 253 nextSecs (and our zone *does* have at least one transition). If (lldb) p nextSecs (NSTimeInterval) $0 = 41468400 (lldb) p endSecs (QtNS::qint64) $1 = -5351616000 (lldb) p year (const int) $2 = 31622400 (lldb) p tranSecs (NSTimeInterval) $3 = -1855958961 (lldb) po nextDate 1971-04-25 23:00:00 +0000 (lldb) po [NSDate dateWithTimeIntervalSince1970:lowerBound] 1970-01-01 00:00:00 +0000 (lldb) po [m_nstz nextDaylightSavingTimeTransitionAfterDate:[NSDate dateWithTimeIntervalSince1970:lowerBound]] 1971-04-25 23:00:00 +0000 (lldb) p lowerBound (NSTimeInterval) $8 = 2.2250738585072014E-308 (lldb) p/x tranSecs (NSTimeInterval) $10 = 0xc1dba7ebec400000 (lldb) p/x endSecs (QtNS::qint64) $11 = 0xfffffffec104d200
Note: typedef double NSTimeInterval; (see https://developer.apple.com/documentation/foundation/nstimeinterval )