Closed Bug 1198709 Opened 5 years ago Closed 4 years ago

crash in NS_strlen(wchar_t const*), TB 38.1.0, Irish (ga-IE) locale


(Thunderbird :: General, defect, critical)

38 Branch
Windows NT
Not set


(Not tracked)



(Reporter: kscanne, Unassigned)



(Keywords: crash)

Crash Data

This bug was filed from the Socorro interface and is 
report bp-08b323b0-ae70-4c6f-8b8a-7e91f2150826.

Crash bug submitted by an Irish user on Twitter.
I can reproduce on TB 38.2.0 on Mac OS X 10.10.3.  The crash happens when checking for new mail in an IMAP inbox (I tested with a account).   The message "Fillteán %S á oscailt…" appears ("Opening folder %S…"; imapStatusSelectingMailbox) at the bottom of the window briefly before the crash.  The original reporter tested with the German locale and didn't have a problem.
Do you have crash ID?

 0 	xul.dll	NS_strlen(wchar_t const*)	xpcom/glue/nsCRTGlue.cpp
1 	xul.dll	cvt_S	xpcom/glue/nsTextFormatter.cpp
2 	xul.dll	dosprintf	xpcom/glue/nsTextFormatter.cpp
3 	ntdll.dll	NtDeviceIoControlFile	
Ø 4 	mswsock.dll	mswsock.dll@0xb08f	
5 		@0x1509c67f	
6 	xul.dll	nsTextFormatter::smprintf(wchar_t const*, ...)	xpcom/glue/nsTextFormatter.cpp
7 	xul.dll	nsImapProtocol::ShowProgress()	c:/builds/moz2_slave/tb-rel-c-esr38-w32_bld-0000000/build/mailnews/imap/src/nsImapProtocol.cpp:5094
8 	xul.dll	nsImapServerResponseParser::msg_fetch()	c:/builds/moz2_slave/tb-rel-c-esr38-w32_bld-0000000/build/mailnews/imap/src/nsImapServerResponseParser.cpp:1042
Flags: needinfo?(kscanne)
The fault seems to be specific to Irish (ga-IE) language, as I also got this after yesterday's automatic updates to Windows Vista and Thunderbird. I tested by installing the English language version and the problem disappeared. A similar problem may exist with other non-English language versions.

See crash report: bp-49793cee-3112-4405-90aa-029ed2150910
Still seeing this in Earlybird 42 version, which means I can't sign off until this is resolved. I'm cc'ing a couple of l10n people since this appears to be Irish-specific.  Maybe someone who knows the TB code base can tell me what string is being sprintf'd here, and tie it back to an entity in case there's some problem in my localization (missing variable, translation that's too long, etc.)?  As I noted above, it crashes just after displaying "Opening folder %S…" (imapStatusSelectingMailbox) - what happens after that?
I don't get mail code, sadly.

It's crashing at, which implies that there might be a misordering of arguments.

What puzzles me is that it's still crashing in aurora, and I don't see traces of this in compare-locales.

Which I'd expect.

Kevin, do you have the crash stack in Earlybird for us, too?
Note, I'm pretty sure that that's not the string that's crashing.

The crashing one needs to have a %s or %S, and two numbers, I'd say. But no idea which string that actually is.
Thanks Axel and flod!  This string seems to fit Axel's criteria:

and indeed I'm reordering variables.  But note that dsb/hsb both do the same thing.  Could this be the problem?
Yes, that's the problem.

You need to explicitly order: %1$lu %2$lu %3$S

And compare-locales has a bug in that it doesn't support 'size' in text formatter expressions.
Depends on: 1204489
(In reply to Axel Hecht [:Pike] from comment #10)
> Yes, that's the problem.
> You need to explicitly order: %1$lu %2$lu %3$S

Just to be 100% sure, is it not  %2$lu %3$lu %1$S?
The numbers don't refer to the order of variables in the source string?
(In reply to Kevin Scannell from comment #11)
> Just to be 100% sure, is it not  %2$lu %3$lu %1$S?
> The numbers don't refer to the order of variables in the source string?

Yes, like this. Sorry for the confusion.
Landed what I hope is a fix on Aurora:

Will test the nightly build tomorrow morning.
I don't understand why the variables %2$lu %3$lu %1$S should be used now. English has two %lu and one %S only, without number and dollar sign.

So, according to Kevin's fix from comment 13 I should %2$lu %3$lu %1$S for both Sorbian languages?

dsb: Powěsćowa głowowa smužka %2$lu z %3$lu z %1$S se ześěgujo… 
hsb: Hłowa powěsće %2$lu z %3$lu z %1$S so sćahuje…
The raisin is "crappy code".!searchin/ has details.

And yes, the versions for dsb and hsb look OK technically. The 'z' in two meanings is interesting from a language-as-math POV, like mine ;-)
Thank you, Axel. Well, it is the same meaning for both ocurrences here ("from"). But, you are right, this preposition has really two meanings: with genitive, it means "from", with instrumental "(together) with" or "by" (by means of).
Just an update on this...  The latest Earlybird builds are still crashing, despite getting a bit farther than before.  In trying to figure this out, I found one more string with out-of-order variables (imapFolderReceivingMessageOf2).  Just fixed it in Pootle, will wait for that to propagate and test the next build.  Here's the crash report for the record:
Thank you Kevin, I changed this string for dsb and hsb although I had the English order there. I customized it to the other two strings.
Today's Earlybird build works perfectly.
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.