Closed Bug 1000190 Opened 5 years ago Closed 5 years ago

Permanent orange: test_dod.js,test_partsOnDemand.js | application crashed [@ nsStringBundleService::AddRef()] due to nsStringBundleService not thread-safe

Categories

(MailNews Core :: Networking: IMAP, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 31.0

People

(Reporter: standard8, Assigned: jcranmer)

References

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

Bug 984125 changed the string bundle service to be marked as non-threadsafe (it apparently wasn't threadsafe before).

We're now crashing on two tests:

Hit MOZ_CRASH(nsStringBundleService not thread-safe) at /builds/slave/tb-c-cen-osx64-d-0000000000000/build/mozilla/intl/strres/src/nsStringBundle.cpp:501
<<<<<<<
PROCESS-CRASH | /builds/slave/talos-slave/test/build/xpcshell/tests/mailnews/imap/test/unit/test_dod.js | application crashed [@ nsStringBundleService::AddRef()]

Thread 22 (crashed)
 0  XUL!nsStringBundleService::AddRef() [nsStringBundle.cpp:b8b7b62bc9e9 : 498 + 0x0]
    rbx = 0x00007fff7e8fbc68   r12 = 0x0000000000000000
    r13 = 0x0000000000000078   r14 = 0x0000000106126520
    r15 = 0x000000010622c890   rip = 0x00000001001065f6
    rsp = 0x000000010ce80340   rbp = 0x000000010ce80350
    Found by: given as instruction pointer in context
 1  XUL!mozilla::services::GetStringBundleService() [nsAutoPtr.h:b8b7b62bc9e9 : 918 + 0x8]
    rbx = 0x0000000106126520   r12 = 0x0000000000000000
    r13 = 0x0000000000000078   r14 = 0x000000010ce803b0
    r15 = 0x000000010622c890   rip = 0x000000010002d719
    rsp = 0x000000010ce80360   rbp = 0x000000010ce80390
    Found by: call frame info
 2  XUL!IMAPGetStringBundle [nsImapStringBundle.cpp:f169a340dd89 : 35 + 0x4]
    rbx = 0x000000010622c890   r12 = 0x0000000000000000
    r13 = 0x0000000000000078   r14 = 0x000000010ce804f8
    r15 = 0x000000010622c890   rip = 0x0000000102775147
    rsp = 0x000000010ce803a0   rbp = 0x000000010ce803d0
    Found by: call frame info
 3  XUL!nsIMAPBodypart::GenerateEmptyFilling(nsIMAPBodyShell*, bool, bool) [nsIMAPBodyShell.cpp:f169a340dd89 : 514 + 0x4]
    rbx = 0x000000010622c890   r12 = 0x0000000000000000
    r13 = 0x0000000000000078   r14 = 0x0000000000000000
    r15 = 0x000000010622c890   rip = 0x00000001026d2d1b
    rsp = 0x000000010ce803e0   rbp = 0x000000010ce80530
    Found by: call frame info

Hit MOZ_CRASH(nsStringBundleService not thread-safe) at /builds/slave/tb-c-cen-osx64-d-0000000000000/build/mozilla/intl/strres/src/nsStringBundle.cpp:501
<<<<<<<
PROCESS-CRASH | /builds/slave/talos-slave/test/build/xpcshell/tests/mailnews/imap/test/unit/test_partsOnDemand.js | application crashed [@ nsStringBundleService::AddRef()]

Thread 21 (crashed)
 0  XUL!nsStringBundleService::AddRef() [nsStringBundle.cpp:b8b7b62bc9e9 : 498 + 0x0]
    rbx = 0x00007fff7e8fbc68   r12 = 0x0000000000000000
    r13 = 0x000000000000004e   r14 = 0x0000000105580050
    r15 = 0x000000010ec01a00   rip = 0x00000001001065f6
    rsp = 0x000000010caa53e0   rbp = 0x000000010caa53f0
    Found by: given as instruction pointer in context
 1  XUL!mozilla::services::GetStringBundleService() [nsAutoPtr.h:b8b7b62bc9e9 : 918 + 0x8]
    rbx = 0x0000000105580050   r12 = 0x0000000000000000
    r13 = 0x000000000000004e   r14 = 0x000000010caa5450
    r15 = 0x000000010ec01a00   rip = 0x000000010002d719
    rsp = 0x000000010caa5400   rbp = 0x000000010caa5430
    Found by: call frame info
 2  XUL!IMAPGetStringBundle [nsImapStringBundle.cpp:f169a340dd89 : 35 + 0x4]
    rbx = 0x000000010ec01a00   r12 = 0x0000000000000000
    r13 = 0x000000000000004e   r14 = 0x000000010caa5598
    r15 = 0x000000010ec01a00   rip = 0x0000000102775147
    rsp = 0x000000010caa5440   rbp = 0x000000010caa5470
    Found by: call frame info
 3  XUL!nsIMAPBodypart::GenerateEmptyFilling(nsIMAPBodyShell*, bool, bool) [nsIMAPBodyShell.cpp:f169a340dd89 : 514 + 0x4]
    rbx = 0x000000010ec01a00   r12 = 0x0000000000000000
    r13 = 0x000000000000004e   r14 = 0x0000000000000000
    r15 = 0x000000010ec01a00   rip = 0x00000001026d2d1b
    rsp = 0x000000010caa5480   rbp = 0x000000010caa55d0
    Found by: call frame info
Summary: Permanent orange: TEST-UNEXPECTED-FAIL | test_dod.js | test_partsOnDemand.js | Application crashed due to nsStringBundleService not thread-safe → Permanent orange: test_dod.js,test_partsOnDemand.js | application crashed [@ nsStringBundleService::AddRef()] due to nsStringBundleService not thread-safe
FWIW the string bundle service just pretended to be thread-safe.
Yep, we saw that. We're looking at caching the string and passing it to the thread.
Assignee: nobody → Pidgeot18
Status: NEW → ASSIGNED
Attachment #8413309 - Flags: review?(standard8)
Comment on attachment 8413309 [details] [diff] [review]
Run string bundle service on main thread

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

Looks good r=Standard8
Attachment #8413309 - Flags: review?(standard8) → review+
I've just pushed this to help clear up the tree before the merge:

https://hg.mozilla.org/comm-central/rev/c8a51e3fbe7e
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 31.0
Depends on: 1002443
You need to log in before you can comment on or make changes to this bug.