Closed Bug 1409155 Opened 7 years ago Closed 7 years ago

ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment

Categories

(External Software Affecting Firefox :: Other, defect, P2)

x86_64
Windows
defect

Tracking

(relnote-firefox 56+, firefox-esr52 wontfix, firefox56 wontfix, firefox57+ verified, firefox58 fixed)

RESOLVED FIXED
Tracking Status
relnote-firefox --- 56+
firefox-esr52 --- wontfix
firefox56 --- wontfix
firefox57 + verified
firefox58 --- fixed

People

(Reporter: kohei, Assigned: masayuki)

References

Details

(Keywords: 64bit, crash, inputmethod)

Crash Data

Attachments

(2 files)

Some people on Twitter are saying the 64-bit version Firefox crashes when activating an older version of ATOK IME. Since the number of reports is limited, I don't think it's a 64-bit migration blocker, but we probably need to investigate the issue.

https://twitter.com/search?f=tweets&q=Firefox+ATOK
Flags: needinfo?(masayuki)
Crash Signature: [@ atok21nv.dll@0x30d16 ] [@ atok22nv.dll@0x29c76 ]
Most crash signatures are ATOK 2008 or 2009.
I can reproduce this bug on Win 8.1 with ATOK 2008 and ATOK 2009. However, I cannot reproduce this bug on Win 7 nor with ATOK 2006, ATOK 2007, ATOK 2011~.  Note that I couldn't install ATOK 2010 since the installer won't work on Win 7 nor Win 8.1. This crash occurs only making it open with "半角/全角" key. Here is the log before crash:

> [Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=true, aWindow=00000034BC91B000), sHasFocus=false, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
> [Main Thread]: D/nsIMM32HandlerWidgets IMMHandler is created
> [Main Thread]: I/nsIMM32HandlerWidgets AdjustCompositionFont, sCompositionFont="System" is initialized
> [Main Thread]: W/nsIMM32HandlerWidgets AdjustCompositionFont, calling ::ImmSetCompositionFont("System")
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=0014005e, IMN_SETCOMPOSITIONFONT
> [Main Thread]: I/nsIMM32HandlerWidgets InitKeyboardLayout, aKeyboardLayout=e0220411 ("ATOK 2008"), sCodePage=932, sIMEProperty=IME_PROP_AT_CARET | IME_PROP_CANDLIST_START_FROM_1 | IME_PROP_UNICODE, sIMEUIProperty=UI_CAP_2700
> [Main Thread]: D/nsIMM32HandlerWidgets IMMHandler is destroyed
> [Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=0014005e, wParam=000000e5, lParam=00290001
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=0014005e, IMN_PRIVATE
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=0014005e, IMN_PRIVATE
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=0014005e, IMN_PRIVATE
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=0014005e, IMN_SETOPENSTATUS

> [Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=true, aWindow=0000003507F7D000), sHasFocus=false, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
> [Main Thread]: D/nsIMM32HandlerWidgets IMMHandler is created
> [Main Thread]: I/nsIMM32HandlerWidgets AdjustCompositionFont, sCompositionFont="System" is initialized
> [Main Thread]: W/nsIMM32HandlerWidgets AdjustCompositionFont, calling ::ImmSetCompositionFont("System")
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001603b8, IMN_SETCOMPOSITIONFONT
> [Main Thread]: I/nsIMM32HandlerWidgets InitKeyboardLayout, aKeyboardLayout=e0230411 ("ATOK 2009"), sCodePage=932, sIMEProperty=IME_PROP_AT_CARET | IME_PROP_CANDLIST_START_FROM_1 | IME_PROP_UNICODE, sIMEUIProperty=UI_CAP_2700
> [Main Thread]: D/nsIMM32HandlerWidgets IMMHandler is destroyed
> [Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001603b8, wParam=000000e5, lParam=00290001
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001603b8, IMN_PRIVATE
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001603b8, IMN_PRIVATE
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001603b8, IMN_PRIVATE
> [Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001603b8, IMN_SETOPENSTATUS

Unfortunately, we almost do nothing before the crash :-(
Flags: needinfo?(masayuki)
Summary: Older version of ATOK IME crashes 64-bit version of Firefox → ATOK 2008 and ATOK 2009 crashes 64-bit version of Firefox on Win 8.1 or later
(In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/17 and 10/23) from comment #2)
> I can reproduce this bug on Win 8.1 with ATOK 2008 and ATOK 2009. However, I
> cannot reproduce this bug on Win 7 nor with ATOK 2006, ATOK 2007, ATOK
> 2011~.  Note that I couldn't install ATOK 2010 since the installer won't
> work on Win 7 nor Win 8.1.

Masayuki, should we block ATOK 2008 and 2009 on Win 8+? Can ATOK 2008 and 2009 users update to a recent fixed version for free?
Component: Widget: Win32 → Other
Flags: needinfo?(masayuki)
OS: Unspecified → Windows
Priority: -- → P2
Product: Core → External Software Affecting Firefox
Hardware: Unspecified → x86_64
Version: Trunk → unspecified
Perhaps, yes. I still have no idea how to fix this on our side.

If we make ATOK 2008 and ATOK 2009 blacklisted, perhaps, we need to register the following modules:

Ø ATOK21W.IME
Ø ATOK21AE.DLL
Ø ATOK21DE.DLL
Ø ATOK21SE.DLL
Ø ATOK21NV.DLL 
Ø ATOK22NV.DLL
Ø ATOK22DE.DLL
Ø ATOK22W.IME
Ø ATOK22SE.DLL
Ø ATOK22AE.DLL 

Makoto-san, do you have some comments here?

# I'll try to contact a person of JustSystems unofficially but perhaps, we wouldn't get good answer because the products have already marked as EOL:
ATOK 2008 support page: http://support.justsystems.com/jp/severally/detail0809.html (~2011.02.08)
ATOK 2009 support page: http://support.justsystems.com/jp/severally/detail0949.html (~2012.02.06)

FYI: IE 11 and Google Chrome also crash at changing the open state of ATOK 2008 and ATOK 2009. So, I believe that they are not x64 apps aware on Win 8+.
Flags: needinfo?(masayuki) → needinfo?(m_kato)
I also confirmed that they crash even with Notepad. I wonder, how the users reporting this crash keep using ATOK 2008 and ATOK 2009??
Okay, we should just block them since they're too old products (their EOL dates are before release of Win8) and looks like that we have no way to avoid the crashes.
Flags: needinfo?(m_kato)
> Can ATOK 2008 and 2009 users update to a recent fixed version for free?

Unfortunately, no. Upgrading the version requires a charge.
https://www.justmyshop.com/products/atok/?jmsb=panel_head_js_products_1#lineup
¥4,860~

Honestly, I really recommend to buy ATOK 2017 or later because of bug 1273510.
ATOK users can also switch to the subscription service for approx. $2.50/month. Alternatively they can use the free Google IME.
(In reply to Kohei Yoshino [:kohei] from comment #8)
> ATOK users can also switch to the subscription service for approx.
> $2.50/month.

It's not cheaper than buying packages for such users. It's more reasonable only for users upgrading every year (or installing a lot of devices).

> Alternatively they can use the free Google IME.

Yeah, but the concept of both IMEs is really different. I guess that some of them don't like Google Japanese Input due to the difference since ATOK 2010 and older version are not available on UWP because they are not TIP.
(In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/17 and 10/23) from comment #6)
> Okay, we should just block them since they're too old products (their EOL
> dates are before release of Win8) and looks like that we have no way to
> avoid the crashes.

Marco, Masayuki recommends that we block ATOK 2008 and ATOK 2009. The DLLs are listed in comment 4.

(In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/17 and 10/23) from comment #2)
> I can reproduce this bug on Win 8.1 with ATOK 2008 and ATOK 2009. However, I
> cannot reproduce this bug on Win 7 nor with ATOK 2006, ATOK 2007, ATOK
> 2011~.  Note that I couldn't install ATOK 2010 since the installer won't
> work on Win 7 nor Win 8.1.

Masayuki, you said you couldn't install ATOK 2010 on Win 7 or 8.1. Is that problem specific to ATOK 2010? Or can you install newer versions like ATOK 2017 on Win 7 and Win 8.1?

If neither ATOK 2008 nor 2009 crash on Win 7, maybe we shouldn't block them on Win 7. We wouldn't want to prevent those users from using ATOK 2008 or 2009 if that can't install a newer version.
Flags: needinfo?(mcastelluccio)
Flags: needinfo?(masayuki)
Attached patch PatchSplinter Review
This patch would block ATOK2008 and 2009 (the DLLs listed in comment 4) in 64-bit Firefox on Win8.1+.

Masayuki, can you test that the patch prevents ATOK from loading in Firefox?
Try build is here: https://treeherder.mozilla.org/#/jobs?repo=try&revision=4f9ccc1ba6d0cbe00ecf3fe580b415eb3161289b.

Do we know if we should block the DLL on Win 8 too?
Flags: needinfo?(mcastelluccio)
(In reply to Chris Peterson [:cpeterson] from comment #10)
> (In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/17 and
> 10/23) from comment #2)
> > I can reproduce this bug on Win 8.1 with ATOK 2008 and ATOK 2009. However, I
> > cannot reproduce this bug on Win 7 nor with ATOK 2006, ATOK 2007, ATOK
> > 2011~.  Note that I couldn't install ATOK 2010 since the installer won't
> > work on Win 7 nor Win 8.1.
> 
> Masayuki, you said you couldn't install ATOK 2010 on Win 7 or 8.1. Is that
> problem specific to ATOK 2010? Or can you install newer versions like ATOK
> 2017 on Win 7 and Win 8.1?

Yes, it's specific problem of ATOK 2010. Installer for ATOK 2011 or later is fine. IIRC, if ATOK 2010 has been installed on Vista and upgraded to Win 7 and later, it's available.

> If neither ATOK 2008 nor 2009 crash on Win 7, maybe we shouldn't block them
> on Win 7. We wouldn't want to prevent those users from using ATOK 2008 or
> 2009 if that can't install a newer version.

Exactly.
Flags: needinfo?(masayuki)
(In reply to Marco Castelluccio [:marco] from comment #11)
> Created attachment 8920742 [details] [diff] [review]
> Patch
> 
> This patch would block ATOK2008 and 2009 (the DLLs listed in comment 4) in
> 64-bit Firefox on Win8.1+.
>
> Masayuki, can you test that the patch prevents ATOK from loading in Firefox?
> Try build is here:
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=4f9ccc1ba6d0cbe00ecf3fe580b415eb3161289b.

Hmm, no, I still see ATOK 2007 and ATOK 2008 works even on the build on Win 8.1 environment.
(When switching IME, I see the UI of them, and can turn them open and crashed.)

> Do we know if we should block the DLL on Win 8 too?

I think so because IME related code in Windows was changed at Win 8 drastically. So, I guess, Win 8 users have same trouble. However, Win 8 isn't available in personal use basically. So, it's not so important in the real world, though.
(In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/17 and 10/23) from comment #13)
> (In reply to Marco Castelluccio [:marco] from comment #11)
> > Created attachment 8920742 [details] [diff] [review]
> > Patch
> > 
> > This patch would block ATOK2008 and 2009 (the DLLs listed in comment 4) in
> > 64-bit Firefox on Win8.1+.
> >
> > Masayuki, can you test that the patch prevents ATOK from loading in Firefox?
> > Try build is here:
> > https://treeherder.mozilla.org/#/
> > jobs?repo=try&revision=4f9ccc1ba6d0cbe00ecf3fe580b415eb3161289b.
> 
> Hmm, no, I still see ATOK 2007 and ATOK 2008 works even on the build on Win
> 8.1 environment.
> (When switching IME, I see the UI of them, and can turn them open and
> crashed.)

Can I see the crash report?
Of course.

ATOK 2008:
https://crash-stats.mozilla.com/report/index/8fe9ebd9-0cf2-42a4-98b7-4f0fa1171021

ATOK 2009:
https://crash-stats.mozilla.com/report/index/13860225-4e65-4caf-b05e-2d5751171021

I switched from ATOK 2017 to ATOK 2008 or 2009 in the search bar and tried to make them open.

Looks like just failed to block loading the DLLs, but I have no idea why the patch doesn't work.
They are probably injecting in a way we can't block yet.
(In reply to Marco Castelluccio [:marco] from comment #16)
> They are probably injecting in a way we can't block yet.

If we cannot block the dlls with our blocklist, I'll try to hack our IME handling code. Let me know if so.
(In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/24) from comment #17)
> (In reply to Marco Castelluccio [:marco] from comment #16)
> > They are probably injecting in a way we can't block yet.
> 
> If we cannot block the dlls with our blocklist, I'll try to hack our IME
> handling code. Let me know if so.

Yes, please. It looks like we can't block it.
Sure. I'll try to do it.

Although, if there were a way to notify users of the fact we wouldn't support the IME...
Assignee: nobody → masayuki
Status: NEW → ASSIGNED
(In reply to Masayuki Nakano [:masayuki] (JST, +0900)(offline: 10/24) from comment #19)
> Although, if there were a way to notify users of the fact we wouldn't
> support the IME...

We can add a Firefox 56 release note about ATOK 2008 and 2009. If these crashes continue to be a problem, we can also add a new SUMO page about ATOK.
@ Sylvestre: You added a 56 release note about some anti-virus crashes affecting 64-bit Firefox. Can we also add a note about the ATOK 2008 and 2009 Japanese IME software?

The current 56 release note wording: "Some third party software (Comodo Internet Security, Kaspersky, Quick Heal Antivirus) are known to cause issues with Firefox 64-bit. These vendors have published new releases which addresses the issues."


[Why is this notable]:
Windows users running 64-bit Firefox and an old version of the ATOK Japanese IME (ATOK 2008 and 2009) can hit startup crashes. We are migrating all eligible 32-bit Firefox users to 64-bit during the 56 release, so more users may hit this crash but not know they are now running 64-bit Firefox.
 
[Affects Firefox for Android]:
No

[Suggested wording]:
Some versions of the Quick Heal security software can cause 64-bit Firefox startup crashes on Windows. Quick Heal has fixed the crash in the latest version of their software. To fix this crash, please install the latest Quick heal update or [re-install 32-bit Firefox](https://www.mozilla.org/firefox/all/).

[Links (documentation, blog post, etc)]:
https://www.mozilla.org/firefox/all/
relnote-firefox: --- → ?
Flags: needinfo?(sledru)
Added to the release notes using your wording!
Flags: needinfo?(sledru)
(In reply to Chris Peterson [:cpeterson] from comment #21)
> [Suggested wording]:
> Some versions of the Quick Heal security software can cause 64-bit Firefox
> startup crashes on Windows. Quick Heal has fixed the crash in the latest
> version of their software. To fix this crash, please install the latest
> Quick heal update or [re-install 32-bit
> Firefox](https://www.mozilla.org/firefox/all/).

I guess this wording is for another bug. ATOK 2008/2009 won't be updated to fix the crash, so we have to say:

[Suggested wording]:
Some older versions of the ATOK IME, including ATOK 2008 and 2009, can cause 64-bit Firefox crashes on Windows. To fix this crash, please use a newer version of ATOK or other IME, or [re-install 32-bit Firefox](https://www.mozilla.org/firefox/all/).
Actually some people are saying ATOK just doesn't work, while others say it crashes. Given there's no hope of ATOK being updated, a better wording would be:

[Suggested wording]:
Some older versions of the ATOK IME, including ATOK 2008 and 2009, can cause crashes or may not work on the Windows 64-bit version of Firefox. To fix those incompatibility issues, please use a newer version of ATOK or one of other IMEs.
Flags: needinfo?(sledru)
updated
Flags: needinfo?(sledru)
Thanks! I've added the translation to https://www.mozilla.jp/firefox/56.0.1/releasenotes/ Will tweet from @mozillajp later.
(In reply to Kohei Yoshino [:kohei] from comment #23)
> (In reply to Chris Peterson [:cpeterson] from comment #21)
> > [Suggested wording]:
> > Some versions of the Quick Heal security software can cause 64-bit Firefox
> > startup crashes on Windows. Quick Heal has fixed the crash in the latest
> > version of their software. To fix this crash, please install the latest
> > Quick heal update or [re-install 32-bit
> > Firefox](https://www.mozilla.org/firefox/all/).
> 
> I guess this wording is for another bug. ATOK 2008/2009 won't be updated to
> fix the crash, so we have to say:

Sorry! Yes. I copy/pasted the wrong text.
(In reply to Kohei Yoshino [:kohei] from comment #24)
> Actually some people are saying ATOK just doesn't work,

It's not true for ATOK 2008 and ATOK 2009. They are obviously crashed when opening their open state.

As I've tested older ATOK, especially, ATOK 15 and 17 (I don't have 16, unfortunately), they have some random crash bug when I type something. But looks like they are not as important as this bug.
Looks like that ATOK 2006 is also really unstable. That crashes when I just type something and convert it.

Additionally, ATOK 2007 doesn't show candidate window and suggest window correctly. They are painted just white and their size is odd.

ATOK 2010 also crashes a lot:
https://crash-stats.mozilla.com/signature/?signature=atok23nv.dll%400x23aa3&date=%3E%3D2017-10-18T14%3A54%3A00.000Z&date=%3C2017-10-25T14%3A54%3A00.000Z&_columns=date&_columns=product&_columns=version&_columns=build_id&_columns=platform&_columns=reason&_columns=address&_columns=install_time&_columns=cpu_arch&_sort=-date&page=1

Perhaps, we should drop all legacy ATOK support (~2010, starting 2011, ATOK is TIP of TSF).
And I don't see any problem on Win7 even with x64 build. So, I meant that we should drop the support of x64 build on Win8 or later.
I wonder, should we take the patch for 57? I guess so, but how about 56?
Summary: ATOK 2008 and ATOK 2009 crashes 64-bit version of Firefox on Win 8.1 or later → ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment
56.0.2 has already been built and is shipping very soon, so let's track for 57...

[Tracking Requested - why for this release]: Low-volume but reliable crashes due to older versions of ATOK Japanese IME on the 64-bit version of Windows.
One user has left a comment on Facebook, say Office IME 2010 might have the same problem. Can we see the crash reports? https://www.facebook.com/mozillajapan/posts/848385478655032
Flags: needinfo?(m_kato)
(In reply to Kohei Yoshino [:kohei] from comment #36)
> One user has left a comment on Facebook, say Office IME 2010 might have the
> same problem. Can we see the crash reports?
> https://www.facebook.com/mozillajapan/posts/848385478655032

Not same issue.  I don't see ime 2010's crash data by Socorro.  You or user should report it by crash id if it is crash.
Flags: needinfo?(m_kato)
Comment on attachment 8922017 [details]
Bug 1409155 - IMEHandler should not associate IMC with any window if active IME is ATOK 2010 or earlier with x64 build on Win8 or later

https://reviewboard.mozilla.org/r/193002/#review198404

::: widget/windows/IMMHandler.cpp:257
(Diff revision 1)
> +IMMHandler::IsActiveIMEInBlockList()
> +{
> +  if (sIMEName.IsEmpty()) {
> +    return false;
> +  }
> +#ifdef _M_AMD64

_M_AMD64 is still presented for msvc x64 preview compatible, but we should use _WIN64, or defined(_M_X64) || defined(__x86_64__) instead.  Tor browser seems to use gcc, not msvc.
Attachment #8922017 - Flags: review?(m_kato) → review+
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/80641843079e
IMEHandler should not associate IMC with any window if active IME is ATOK 2010 or earlier with x64 build on Win8 or later r=m_kato
Crash Signature: [@ atok21nv.dll@0x30d16 ] [@ atok22nv.dll@0x29c76 ] → [@ atok21nv.dll@0x30d16 ] [@ atok22nv.dll@0x29c76 ] [@ atok19nv.dll@0x1f287 ] [@ atok19w.ime@0x18c377 ] [@ atok19nv.dll@0x1e61f ] [@ atok23nv.dll@0x23aa3 ] [@ atok19w.ime@0x12c0d6 ] [@ atok22nv.dll@0x29c85 ] [@ atok19nv.dll@0x1e83f ] [@ atok19nv.…
Comment on attachment 8922017 [details]
Bug 1409155 - IMEHandler should not associate IMC with any window if active IME is ATOK 2010 or earlier with x64 build on Win8 or later

Approval Request Comment
[Feature/Bug causing the regression]:
Old versions of ATOK (Japanese IME) crashes on x64 build.  The number of crash reports are increased due to automatic upgrade from x86 build to x64 build.

[User impact if declined]:
Such old ATOK users meet these crash when:
* turning the open state to "open" to type Japanese characters
* try to convert Japanese Kana characters to Kanji characters
* just keep staying for a while

[Is this code covered by automated tests?]:
No.

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

[Needs manual test from QE? If yes, steps to reproduce]:
No, because it's impossible to buy old ATOK licenses. I'll test it after landing on my environment. Although, I've already tested with try build with beta branch.

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

[Is the change risky?]:
No.

[Why is the change risky/not risky?]:
This patch disassociates native IME from current window when active keyboard layout is changed to old ATOK (2006 - 2010), that prevents any input to go to IME. (Of course, restores IMC if other IME becomes active when editor has focus.) Additionally, when the old ATOK active, making IME disabled when editor gets focus.

This is performed only when IME of active keyboard layout name matches ATOK 2006 - 2010, and it's running on Win 8 or later, and we're x64 build.

FYI: All the old ATOK are legacy IMM-IME. On the other hand, other IMEs which are released in these days are TIP of TSF. This patch doesn't change anything related to TSF directly.

[String changes made/needed]:
No.
Attachment #8922017 - Flags: approval-mozilla-beta?
Comment on attachment 8922017 [details]
Bug 1409155 - IMEHandler should not associate IMC with any window if active IME is ATOK 2010 or earlier with x64 build on Win8 or later

This problem seems worse since the 64-bit migration, Beta57+
Attachment #8922017 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
I checked ATOK 2006, ATOK 2007, ATOK 2008, ATOK 2009 on Win8.1-Ja and Win7-Ja with both x64 build and x86 build.

Then, only on x64 build on Win 8.1-Ja disables those old ATOK.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: