Crash in icu_58::TimeZoneFormat::initGMTOffsetPatterns

RESOLVED FIXED in Firefox 54

Status

()

Core
JavaScript: Internationalization API
--
critical
RESOLVED FIXED
a year ago
a year ago

People

(Reporter: kanru, Assigned: m_kato)

Tracking

({crash, regression})

54 Branch
mozilla55
Unspecified
Windows 10
crash, regression
Points:
---
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(firefox52 unaffected, firefox-esr52 unaffected, firefox53 unaffected, firefox54 fixed, firefox55 fixed)

Details

(crash signature)

Attachments

(3 attachments)

(Reporter)

Description

a year ago
This bug was filed from the Socorro interface and is 
report bp-386ca283-28fa-4b69-b724-271c42170307.
=============================================================

I noticed some icu_58::TimeZoneFormat related crashes since 2017-03-04 build. Looks like a regression from bug 1225401. See also bug 1345329

https://crash-stats.mozilla.com/api/SuperSearch/?signature=~icu_58%3A%3ATimeZoneFormat&date=%3E%3D2017-02-22T03%3A31%3A07.000Z&date=%3C2017-03-08T03%3A31%3A07.000Z
Flags: needinfo?(m_kato)
(Reporter)

Updated

a year ago
See Also: → bug 1345329
(Assignee)

Updated

a year ago
Crash Signature: [@ icu_58::TimeZoneFormat::initGMTOffsetPatterns] → [@ icu_58::TimeZoneFormat::initGMTOffsetPatterns] [@ icu_58::TimeZoneFormat::checkAbuttingHoursAndMinutes ]
Flags: needinfo?(m_kato)
(Assignee)

Updated

a year ago
Duplicate of this bug: 1345329
(Assignee)

Updated

a year ago
Flags: needinfo?(m_kato)
(Assignee)

Updated

a year ago
Assignee: nobody → m_kato
(Assignee)

Comment 2

a year ago
When zoneStrings is empty such as the following, this crash occurs.  (ICU should check null because it will becomes null by memory allocation and etc...)

   zoneStrings{
   }
Flags: needinfo?(m_kato)
(Assignee)

Updated

a year ago
status-firefox53: --- → unaffected
Version: 52 Branch → 54 Branch
(Assignee)

Comment 3

a year ago
Created attachment 8844809 [details] [diff] [review]
Part 1. Remove empty zoneStrings entries
(Assignee)

Comment 4

a year ago
Created attachment 8844811 [details] [diff] [review]
Part 2. Update ICU data file
(Assignee)

Comment 5

a year ago
Comment on attachment 8844809 [details] [diff] [review]
Part 1. Remove empty zoneStrings entries

Even if zoneString is empty entry, data file is generated.  This data causes the crash when using timeZoneName.  So we should remove empty zoneString.
Attachment #8844809 - Flags: review?(jwalden+bmo)
(Assignee)

Updated

a year ago
Attachment #8844811 - Flags: review?(jwalden+bmo)
Comment on attachment 8844809 [details] [diff] [review]
Part 1. Remove empty zoneStrings entries

Review of attachment 8844809 [details] [diff] [review]:
-----------------------------------------------------------------

::: intl/update-icu.sh
@@ +53,5 @@
>      -name '*.txt' -print | xargs sed -i '/^\s\{8\}\"[A-Z]/, /^\s\{8\}}/ { d }'
> +find ${icu_dir}/source/data/zone \
> +    -name root.txt -prune -or \
> +    -name tzdbNames.txt -prune -or \
> +    -name '*.txt' -print | xargs sed -i '/^\s\{4\}zoneStrings{/{N; s/^\s\{4\}zoneStrings{\n\s\{4\}}// }; /^$/d'

My vague sed knowledge says you can run multiple commands in the same sed invocation.  Given this is looping over the exact same files determined the exact same way, that seems absolutely the way it really should be done.  I *think* based on http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-how-to-execute-multiple-sed-commands/ you should be able to do this:

find ${icu_dir}/source/data/zone \
    -name root.txt -prune -or \
    -name tzdbNames.txt -prune -or \
    -name '*.txt' -print | \
  xargs sed -i \
    -e '/^\s\{8\}\"[A-Z]/, /^\s\{8\}}/ { d }' \
    -e '/^\s\{4\}zoneStrings{/{N; s/^\s\{4\}zoneStrings{\n\s\{4\}}// }; /^$/d'

(I don't have particular thoughts on the exact style of how this should be line-broken or indented -- if you have some sense of what's common for this sort of thing, by all means go for it.)

I could/should have said this before, but it probably would be a good idea if this find/replace had a comment by it explain what it's doing and why, citing to a bug number.
Attachment #8844809 - Flags: review?(jwalden+bmo) → review+

Updated

a year ago
Attachment #8844811 - Flags: review?(jwalden+bmo) → review+

Updated

a year ago
status-firefox52: --- → unaffected
(Assignee)

Comment 7

a year ago
(In reply to Jeff Walden [:Waldo] (remove +bmo to email) from comment #6)
> Comment on attachment 8844809 [details] [diff] [review]
> Part 1. Remove empty zoneStrings entries
> 
> Review of attachment 8844809 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: intl/update-icu.sh
> @@ +53,5 @@
> >      -name '*.txt' -print | xargs sed -i '/^\s\{8\}\"[A-Z]/, /^\s\{8\}}/ { d }'
> > +find ${icu_dir}/source/data/zone \
> > +    -name root.txt -prune -or \
> > +    -name tzdbNames.txt -prune -or \
> > +    -name '*.txt' -print | xargs sed -i '/^\s\{4\}zoneStrings{/{N; s/^\s\{4\}zoneStrings{\n\s\{4\}}// }; /^$/d'
> 
> My vague sed knowledge says you can run multiple commands in the same sed
> invocation.  Given this is looping over the exact same files determined the
> exact same way, that seems absolutely the way it really should be done.  I
> *think* based on
> http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-how-to-execute-
> multiple-sed-commands/ you should be able to do this:
> 
> find ${icu_dir}/source/data/zone \
>     -name root.txt -prune -or \
>     -name tzdbNames.txt -prune -or \
>     -name '*.txt' -print | \
>   xargs sed -i \
>     -e '/^\s\{8\}\"[A-Z]/, /^\s\{8\}}/ { d }' \
>     -e '/^\s\{4\}zoneStrings{/{N; s/^\s\{4\}zoneStrings{\n\s\{4\}}// };
> /^$/d'

Since I use "N" command to fetch next lines to check empty, the next line of "zoneStrings{" like the following isn't removed.

    zoneStrings{
        "Africa:abidjan"{
        ...
        }
    }

Since sed cannot back to previous line, it can only checks whether zoneStrings is empty after all unused lines are removed.  Of course, if we use perl or python, we will be able to avoid it.

> (I don't have particular thoughts on the exact style of how this should be
> line-broken or indented -- if you have some sense of what's common for this
> sort of thing, by all means go for it.)
> 
> I could/should have said this before, but it probably would be a good idea
> if this find/replace had a comment by it explain what it's doing and why,
> citing to a bug number.

OK, I will add bug number.

Comment 8

a year ago
Pushed by m_kato@ga2.so-net.ne.jp:
https://hg.mozilla.org/integration/mozilla-inbound/rev/da332b097c16
Part 1. Remove empty zoneStrings entries. r=Waldo
https://hg.mozilla.org/integration/mozilla-inbound/rev/2140db6f8e48
Part 2. Update ICU date file. r=Waldo
Backed out for failing jsreftest.html?test=Intl/DateTimeFormat/format.js on Windows 7 VM pgo:

https://hg.mozilla.org/integration/mozilla-inbound/rev/d2f740260b400810da80773e2d61576f51ab0972
https://hg.mozilla.org/integration/mozilla-inbound/rev/3dc313972eb99d0d0d7c8761f6025784e9ca684e

Push on which the tests actually ran: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=01b87437cefe3fc90ffffdf2ba6a89c39987ea60&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=83338412&repo=mozilla-inbound

UNEXPECTED-FAIL | file:///c:/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=Intl/DateTimeFormat/format.js | application terminated with exit code 1
02:11:54     INFO - REFTEST INFO | Downloading symbols from: https://queue.taskcluster.net/v1/task/bP4GlbPmQS22NE32B8rJ_w/artifacts/public/build/firefox-55.0a1.en-US.win32.crashreporter-symbols.zip
02:12:19     INFO - REFTEST INFO | Copy/paste: c:\slave\test\build\win32-minidump_stackwalk.exe c:\users\cltbld\appdata\local\temp\tmp8lhtwz.mozrunner\minidumps\cee2c364-635c-4974-b208-7a0baaf6f1e8.dmp c:\users\cltbld\appdata\local\temp\tmprk3xoi
02:12:31     INFO - REFTEST INFO | Saved minidump as c:\slave\test\build\blobber_upload_dir\cee2c364-635c-4974-b208-7a0baaf6f1e8.dmp
02:12:31     INFO - REFTEST INFO | Saved app info as c:\slave\test\build\blobber_upload_dir\cee2c364-635c-4974-b208-7a0baaf6f1e8.extra
02:12:31     INFO - REFTEST PROCESS-CRASH | file:///c:/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=Intl/DateTimeFormat/format.js | application crashed [@ icu_58::TimeZoneFormat::checkAbuttingHoursAndMinutes()]
02:12:31     INFO - Crash dump filename: c:\users\cltbld\appdata\local\temp\tmp8lhtwz.mozrunner\minidumps\cee2c364-635c-4974-b208-7a0baaf6f1e8.dmp
02:12:31     INFO - Operating system: Windows NT
02:12:31     INFO -                   6.1.7601 Service Pack 1
02:12:31     INFO - CPU: x86
02:12:31     INFO -      GenuineIntel family 6 model 62 stepping 4
02:12:31     INFO -      8 CPUs
02:12:31     INFO - 
02:12:31     INFO - GPU: UNKNOWN
02:12:31     INFO - 
02:12:31     INFO - Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
02:12:31     INFO - Crash address: 0x4
02:12:31     INFO - Process uptime: 13 seconds
02:12:31     INFO - 
02:12:31     INFO - Thread 0 (crashed)
02:12:31     INFO -  0  xul.dll!icu_58::TimeZoneFormat::checkAbuttingHoursAndMinutes() [tzfmt.cpp:01b87437cefe : 2622 + 0x9]
02:12:31     INFO -     eip = 0x611456e8   esp = 0x002ec5e4   ebp = 0x002ec5f8   ebx = 0x1ea6ecc4
02:12:31     INFO -     esi = 0x1ea6e800   edi = 0x00000000   eax = 0x00000000   ecx = 0x00000000
02:12:31     INFO -     edx = 0x00000000   efl = 0x00010246
02:12:31     INFO -     Found by: given as instruction pointer in context
02:12:31     INFO -  1  xul.dll!icu_58::TimeZoneFormat::initGMTOffsetPatterns(UErrorCode &) [tzfmt.cpp:01b87437cefe : 2613 + 0x9]
02:12:31     INFO -     eip = 0x611466b4   esp = 0x002ec600   ebp = 0x002ec614
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  2  xul.dll!icu_58::TimeZoneFormat::TimeZoneFormat(icu_58::Locale const &,UErrorCode &) [tzfmt.cpp:01b87437cefe : 397 + 0xc]
02:12:31     INFO -     eip = 0x611451b2   esp = 0x002ec61c   ebp = 0x002ec734
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  3  xul.dll!icu_58::TimeZoneFormat::createInstance(icu_58::Locale const &,UErrorCode &) [tzfmt.cpp:01b87437cefe : 505 + 0x17]
02:12:31     INFO -     eip = 0x6114577a   esp = 0x002ec73c   ebp = 0x002ec760
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  4  xul.dll!icu_58::SimpleDateFormat::tzFormat() [smpdtfmt.cpp:01b87437cefe : 4116 + 0xe]
02:12:31     INFO -     eip = 0x61142cc9   esp = 0x002ec750   ebp = 0x002ec760
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  5  xul.dll!icu_58::SimpleDateFormat::subFormat(icu_58::UnicodeString &,wchar_t,int,UDisplayContext,int,icu_58::FieldPositionHandler &,icu_58::Calendar &,icu_58::SimpleDateFormatMutableNFs &,UErrorCode &) [smpdtfmt.cpp:01b87437cefe : 1699 + 0x7]
02:12:31     INFO -     eip = 0x61140c99   esp = 0x002ec768   ebp = 0x002ec8bc
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  6  xul.dll!icu_58::SimpleDateFormat::_format(icu_58::Calendar &,icu_58::UnicodeString &,icu_58::FieldPositionHandler &,UErrorCode &) [smpdtfmt.cpp:01b87437cefe : 1062 + 0x26]
02:12:31     INFO -     eip = 0x6113dfed   esp = 0x002ec8c4   ebp = 0x002eca6c
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  7  xul.dll!icu_58::SimpleDateFormat::format(icu_58::Calendar &,icu_58::UnicodeString &,icu_58::FieldPosition &) [smpdtfmt.cpp:01b87437cefe : 977 + 0xc]
02:12:31     INFO -     eip = 0x6113eb4f   esp = 0x002eca74   ebp = 0x002eca90
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  8  xul.dll!icu_58::DateFormat::format(double,icu_58::UnicodeString &,icu_58::FieldPosition &) [datefmt.cpp:01b87437cefe : 289 + 0xe]
02:12:31     INFO -     eip = 0x6110e7a6   esp = 0x002eca98   ebp = 0x002ecab8
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO -  9  xul.dll!udat_format_58 [udat.cpp:01b87437cefe : 239 + 0x14]
02:12:31     INFO -     eip = 0x6114ee9b   esp = 0x002ecac0   ebp = 0x002ecb34
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 10  xul.dll!Call<<lambda_bf0838756b24d690276832648f130639> > [Intl.cpp:01b87437cefe : 982 + 0x5]
02:12:31     INFO -     eip = 0x6249ccbe   esp = 0x002ecb3c   ebp = 0x002ecbc0
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 11  xul.dll!intl_FormatDateTime [Intl.cpp:01b87437cefe : 3312 + 0x10]
02:12:31     INFO -     eip = 0x624a767b   esp = 0x002ecbc8   ebp = 0x002ecbe4
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 12  xul.dll!js::intl_FormatDateTime(JSContext *,unsigned int,JS::Value *) [Intl.cpp:01b87437cefe : 3537 + 0x37]
02:12:31     INFO -     eip = 0x624a7735   esp = 0x002ecbec   ebp = 0x002ecc14
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 13  xul.dll!js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [Interpreter.cpp:01b87437cefe : 448 + 0xe5]
02:12:31     INFO -     eip = 0x60808a8a   esp = 0x002ecc1c   ebp = 0x002ecd04
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 14  xul.dll!InternalCall [Interpreter.cpp:01b87437cefe : 493 + 0xb]
02:12:31     INFO -     eip = 0x60808555   esp = 0x002ecd0c   ebp = 0x002ecd28
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 15  xul.dll!Interpret [Interpreter.cpp:01b87437cefe : 2954 + 0x12]
02:12:31     INFO -     eip = 0x609197b8   esp = 0x002ecd30   ebp = 0x002ed5d0
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 16  xul.dll!js::RunScript(JSContext *,js::RunState &) [Interpreter.cpp:01b87437cefe : 394 + 0xb]
02:12:31     INFO -     eip = 0x60e43b66   esp = 0x002ed5d8   ebp = 0x002ed668
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 17  xul.dll!js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [Interpreter.cpp:01b87437cefe : 466 + 0xb]
02:12:31     INFO -     eip = 0x60808bbd   esp = 0x002ed670   ebp = 0x002ed754
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 18  xul.dll!InternalCall [Interpreter.cpp:01b87437cefe : 493 + 0xb]
02:12:31     INFO -     eip = 0x60808555   esp = 0x002ed75c   ebp = 0x002ed778
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 19  xul.dll!Interpret [Interpreter.cpp:01b87437cefe : 2954 + 0x12]
02:12:31     INFO -     eip = 0x609197b8   esp = 0x002ed780   ebp = 0x002ee020
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 20  xul.dll!js::RunScript(JSContext *,js::RunState &) [Interpreter.cpp:01b87437cefe : 394 + 0xb]
02:12:31     INFO -     eip = 0x60e43b66   esp = 0x002ee028   ebp = 0x002ee0b8
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 21  xul.dll!js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [Interpreter.cpp:01b87437cefe : 466 + 0xb]
02:12:31     INFO -     eip = 0x60808bbd   esp = 0x002ee0c0   ebp = 0x002ee1a4
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 22  xul.dll!InternalCall [Interpreter.cpp:01b87437cefe : 493 + 0xb]
02:12:31     INFO -     eip = 0x60808555   esp = 0x002ee1ac   ebp = 0x002ee1c8
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 23  xul.dll!Interpret [Interpreter.cpp:01b87437cefe : 2954 + 0x12]
02:12:31     INFO -     eip = 0x609197b8   esp = 0x002ee1d0   ebp = 0x002eea70
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 24  xul.dll!js::RunScript(JSContext *,js::RunState &) [Interpreter.cpp:01b87437cefe : 394 + 0xb]
02:12:31     INFO -     eip = 0x60e43b66   esp = 0x002eea78   ebp = 0x002eeb08
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 25  xul.dll!js::ExecuteKernel(JSContext *,JS::Handle<JSScript *>,JSObject &,JS::Value const &,js::AbstractFramePtr,JS::Value *) [Interpreter.cpp:01b87437cefe : 677 + 0xa]
02:12:31     INFO -     eip = 0x609286bb   esp = 0x002eeb10   ebp = 0x002eeb68
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 26  xul.dll!js::Execute(JSContext *,JS::Handle<JSScript *>,JSObject &,JS::Value *) [Interpreter.cpp:01b87437cefe : 709 + 0x23]
02:12:31     INFO -     eip = 0x6092864b   esp = 0x002eeb70   ebp = 0x002eec48
02:12:31     INFO -     Found by: stack scanning
02:12:31     INFO - 27  xul.dll!Evaluate [jsapi.cpp:01b87437cefe : 4622 + 0x1d]
02:12:31     INFO -     eip = 0x60cc3dd9   esp = 0x002eec78   ebp = 0x002eec14
02:12:31     INFO -     Found by: call frame info with scanning
02:12:31     INFO - 28  xul.dll!nsXPConnect::WrapNativeToJSVal(JSContext *,JSObject *,nsISupports *,nsWrapperCache *,nsID const *,bool,JS::MutableHandle<JS::Value>) [nsXPConnect.cpp:01b87437cefe : 679 + 0xae]
02:12:31     INFO -     eip = 0x6087837d   esp = 0x002eed08   ebp = 0x002eed38
02:12:31     INFO -     Found by: call frame info with scanning
02:12:31     INFO - 29  xul.dll!JS::AutoObjectVector::AutoObjectVector(JSContext *) [jsapi.h:01b87437cefe : 228 + 0x77]
02:12:31     INFO -     eip = 0x6080148b   esp = 0x002eed44   ebp = 0x002eedc0
02:12:31     INFO -     Found by: call frame info with scanning
02:12:31     INFO - 30  xul.dll!nsJSUtils::EvaluateString(JSContext *,JS::SourceBufferHolder &,JS::Handle<JSObject *>,JS::CompileOptions &,void * *) [nsJSUtils.cpp:01b87437cefe : 274 + 0x1c]
02:12:31     INFO -     eip = 0x609b9fb8   esp = 0x002eed70   ebp = 0x002eedc0
02:12:31     INFO -     Found by: stack scanning
02:12:31     INFO - 31  xul.dll!nsJSUtils::EvaluateString(JSContext *,JS::SourceBufferHolder &,JS::Handle<JSObject *>,JS::CompileOptions &,void * *) [nsJSUtils.cpp:01b87437cefe : 274 + 0x1c]
02:12:31     INFO -     eip = 0x609b9fb8   esp = 0x002eed7c   ebp = 0x002eee64
02:12:31     INFO -     Found by: stack scanning
02:12:31     INFO - 32  xul.dll!nsSupportsPRUint32::GetData(unsigned int *) [nsSupportsPrimitives.cpp:01b87437cefe : 617 + 0x4]
02:12:31     INFO -     eip = 0x60da0928   esp = 0x002eedcc   ebp = 0x002eee64
02:12:31     INFO -     Found by: stack scanning
02:12:31     INFO - 33  xul.dll!nsScriptLoader::EvaluateScript(nsScriptLoadRequest *) [nsScriptLoader.cpp:01b87437cefe : 2244 + 0x27]
02:12:31     INFO -     eip = 0x609ba1b0   esp = 0x002eee10   ebp = 0x002eefdc
02:12:31     INFO -     Found by: call frame info with scanning
02:12:31     INFO - 34  xul.dll!nsScriptLoader::ProcessRequest(nsScriptLoadRequest *) [nsScriptLoader.cpp:01b87437cefe : 2028 + 0x8]
02:12:31     INFO -     eip = 0x609b9cd9   esp = 0x002eefe4   ebp = 0x002ef01c
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 35  xul.dll!nsScriptLoader::ProcessPendingRequests() [nsScriptLoader.cpp:01b87437cefe : 2283 + 0x8]
02:12:31     INFO -     eip = 0x60ef083d   esp = 0x002ef024   ebp = 0x002ef044
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 36  xul.dll!mozilla::detail::RunnableMethodImpl<mozilla::MediaResource * const,void ( mozilla::MediaResource::*)(void),0,0>::Run() [nsThreadUtils.h:01b87437cefe : 890 + 0x3]
02:12:31     INFO -     eip = 0x60b0bfdd   esp = 0x002ef04c   ebp = 0x002ef04c
02:12:31     INFO -     Found by: previous frame's frame pointer
02:12:31     INFO - 37  xul.dll!nsThread::ProcessNextEvent(bool,bool *) [nsThread.cpp:01b87437cefe : 1264 + 0xa]
02:12:31     INFO -     eip = 0x6085cdec   esp = 0x002ef054   ebp = 0x002ef1a4
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 38  xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) [MessagePump.cpp:01b87437cefe : 96 + 0x16]
02:12:31     INFO -     eip = 0x6085b199   esp = 0x002ef1ac   ebp = 0x002ef1d8
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 39  xul.dll!MessageLoop::RunHandler() [message_loop.cc:01b87437cefe : 231 + 0x8]
02:12:31     INFO -     eip = 0x60998cde   esp = 0x002ef1e0   ebp = 0x002ef210
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 40  xul.dll!MessageLoop::Run() [message_loop.cc:01b87437cefe : 211 + 0x7]
02:12:31     INFO -     eip = 0x60998cad   esp = 0x002ef218   ebp = 0x002ef230
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 41  xul.dll!nsBaseAppShell::Run() [nsBaseAppShell.cpp:01b87437cefe : 156 + 0x14]
02:12:31     INFO -     eip = 0x607a740f   esp = 0x002ef238   ebp = 0x002ef240
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 42  xul.dll!nsAppShell::Run() [nsAppShell.cpp:01b87437cefe : 263 + 0x8]
02:12:31     INFO -     eip = 0x607a719e   esp = 0x002ef248   ebp = 0x002ef250
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 43  xul.dll!nsAppStartup::Run() [nsAppStartup.cpp:01b87437cefe : 283 + 0x6]
02:12:31     INFO -     eip = 0x607a7153   esp = 0x002ef258   ebp = 0x002ef264
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 44  xul.dll!XREMain::XRE_mainRun() [nsAppRunner.cpp:01b87437cefe : 4476 + 0xc]
02:12:31     INFO -     eip = 0x60c2f8d5   esp = 0x002ef26c   ebp = 0x002ef458
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 45  xul.dll!XREMain::XRE_main(int,char * * const,mozilla::BootstrapConfig const &) [nsAppRunner.cpp:01b87437cefe : 4654 + 0x7]
02:12:31     INFO -     eip = 0x609a6ee9   esp = 0x002ef460   ebp = 0x002ef494
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 46  xul.dll!XRE_main(int,char * * const,mozilla::BootstrapConfig const &) [nsAppRunner.cpp:01b87437cefe : 4745 + 0xc]
02:12:31     INFO -     eip = 0x60d73ee3   esp = 0x002ef49c   ebp = 0x002ef5fc
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 47  xul.dll!mozilla::BootstrapImpl::XRE_main(int,char * * const,mozilla::BootstrapConfig const &) [Bootstrap.cpp:01b87437cefe : 45 + 0xe]
02:12:31     INFO -     eip = 0x60d73ea5   esp = 0x002ef604   ebp = 0x002ef608
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 48  firefox.exe!wmain [nsWindowsWMain.cpp:01b87437cefe : 115 + 0x4df]
02:12:31     INFO -     eip = 0x00f91bdd   esp = 0x002ef610   ebp = 0x002ef980
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 49  firefox.exe!__scrt_common_main_seh [exe_common.inl : 253 + 0x1d]
02:12:31     INFO -     eip = 0x00f95b1f   esp = 0x002ef988   ebp = 0x002ef9c8
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 50  kernel32.dll!BaseThreadInitThunk + 0x12
02:12:31     INFO -     eip = 0x775f3c45   esp = 0x002ef9d0   ebp = 0x002ef9d4
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 51  ntdll.dll!__RtlUserThreadStart + 0x27
02:12:31     INFO -     eip = 0x777737f5   esp = 0x002ef9dc   ebp = 0x002efa14
02:12:31     INFO -     Found by: call frame info
02:12:31     INFO - 52  ntdll.dll!_RtlUserThreadStart + 0x1b
02:12:31     INFO -     eip = 0x777737c8   esp = 0x002efa1c   ebp = 0x002efa2c
02:12:31     INFO -     Found by: call frame info
Flags: needinfo?(m_kato)
(Assignee)

Comment 10

a year ago
Created attachment 8846623 [details] [diff] [review]
Part 3. update CLOBBER

Touch CLOBBER file to update ICU data correctly.
Flags: needinfo?(m_kato)
Attachment #8846623 - Flags: review?(jwalden+bmo)
(Assignee)

Comment 11

a year ago
crash data seem that ICU data isn't updated.

try is successful, so we have to touch CLOBBER file to clobber build.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=ccf246e95ebcc03370e1c44a39a836ff7b4b6ebe
Comment on attachment 8846623 [details] [diff] [review]
Part 3. update CLOBBER

Review of attachment 8846623 [details] [diff] [review]:
-----------------------------------------------------------------

Generally I'd say CLOBBER changes don't need a review, as long as a build-system bug is filed/cited when the CLOBBER touch happens.  Small enough change to sneak in as r=bustage IMO.

::: CLOBBER
@@ +21,5 @@
>  # Are you updating CLOBBER because you think it's needed for your WebIDL
>  # changes to stick? As of bug 928195, this shouldn't be necessary! Please
>  # don't change CLOBBER for WebIDL changes any more.
>  
> +Bug 1345336 - Crash in icu_58::TimeZoneFormat::initGMTOffsetPatterns

Please file/cite a new Build Config bug that changing this requires a CLOBBER, in addition to this bug's number.  Bug 966038 was supposedly fixed, so changing this *shouldn't* need the CLOBBER, but here we are.
Attachment #8846623 - Flags: review?(jwalden+bmo) → review+

Comment 14

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/6317c11e3728
https://hg.mozilla.org/mozilla-central/rev/77e843620188
https://hg.mozilla.org/mozilla-central/rev/816f9869b6ea
Status: NEW → RESOLVED
Last Resolved: a year ago
status-firefox55: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Please request Aurora approval on this when you get a chance.
status-firefox-esr52: --- → unaffected
Flags: needinfo?(m_kato)
(Assignee)

Comment 16

a year ago
Comment on attachment 8844809 [details] [diff] [review]
Part 1. Remove empty zoneStrings entries

Approval Request Comment
[Feature/Bug causing the regression]:
bug 1225401

[User impact if declined]:
Firefox can crashe by Intl.DateTimeFormat with specific locale.

[Is this code covered by automated tests?]:
Yes

[Has the fix been verified in Nightly?]:
Yes

[Needs manual test from QE? If yes, steps to reproduce]: 
No, this is included in automated test

[List of other uplifts needed for the feature/fix]:
Nothing

[Is the change risky?]:
Too low

[Why is the change risky/not risky?]:
Modify data table to fix correctly

[String changes made/needed]:
No
Flags: needinfo?(m_kato)
Attachment #8844809 - Flags: approval-mozilla-aurora?
(Assignee)

Updated

a year ago
Attachment #8844811 - Flags: approval-mozilla-aurora?
(Assignee)

Updated

a year ago
Attachment #8846623 - Flags: approval-mozilla-aurora?
Comment on attachment 8844809 [details] [diff] [review]
Part 1. Remove empty zoneStrings entries

fix crashes in icu on aurora54
Attachment #8844809 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Attachment #8844811 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Attachment #8846623 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
needs rebasing for aurora
Flags: needinfo?(m_kato)

Updated

a year ago
Duplicate of this bug: 1347662
Mercurial was just getting confused about the binary file in part 2.
Flags: needinfo?(m_kato)
You need to log in before you can comment on or make changes to this bug.