New issue
Advanced search Search tips

Issue 824476 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Non-english user languages on swarming android phones

Project Member Reported by bpastene@chromium.org, Mar 21 2018

Issue description

Seeing a significant amount of test failures for what appears to be non-english languages on our test phones. eg:
https://storage.cloud.google.com/chromium-result-details/860660a53c290656e71a1fceaa0bf36c35b5815b

And that phone's experience higher-than-normal test failures:
https://chromium-swarm.appspot.com/bot?id=build341-m1--device6

... probably due to the language. We need to ensure english on all devices.

Bonus points if I find out what test is changing all our phones' languages...
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 21 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/fd7628398ac251d4662dd1e3f5d776664caa6177

commit fd7628398ac251d4662dd1e3f5d776664caa6177
Author: Benjamin Pastene <bpastene@chromium.org>
Date: Wed Mar 21 23:35:07 2018

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 22 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/1288bac78075eade49b573b7c81f3ae43e4825ef

commit 1288bac78075eade49b573b7c81f3ae43e4825ef
Author: Benjamin Pastene <bpastene@chromium.org>
Date: Thu Mar 22 17:49:08 2018

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 29 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/521be3855a91d275946e558168ecbf31a3a6d4ba

commit 521be3855a91d275946e558168ecbf31a3a6d4ba
Author: Benjamin Pastene <bpastene@chromium.org>
Date: Thu Mar 29 23:46:42 2018

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 30 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/dc76d9495de72f08d518bbd53950cfe38f9dfac7

commit dc76d9495de72f08d518bbd53950cfe38f9dfac7
Author: Benjamin Pastene <bpastene@chromium.org>
Date: Fri Mar 30 21:05:11 2018

 Issue 834417  has been merged into this issue.
 Issue 834433  has been merged into this issue.
 Issue 834390  has been merged into this issue.
Cc: jbudorick@chromium.org
Thanks for duping those test flakes here. They indeed look they ran on phones with a non-english language.

Here's one of the problem bots:
https://chromium-swarm.appspot.com/bot?id=build362-m1--device1&selected=1&show_all_events=true&sort_stats=total%3Adesc

It knows that it's czech, and it tries to change it back to english by:
- setting the property persist.sys.locale
- writing the /data/property/persist.sys.locale file
- changing the system_locales system setting

... all of which it does successfully. However, the next time the phone boots up, it's back to czech again. Something is persisting the system language across reboots and it's not controlled by either of those three mechanisms. Will need to dig in deeper to find out what it is.

For now though, I can at least quarantine if the language isn't english. That way it won't be running tests.
Project Member

Comment 9 by bugdroid1@chromium.org, Apr 20 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/d269e5317e31246ce169bd10810759dbb132cd46

commit d269e5317e31246ce169bd10810759dbb132cd46
Author: Benjamin Pastene <bpastene@chromium.org>
Date: Fri Apr 20 00:21:36 2018

Cc: -jbudorick@chromium.org bpastene@chromium.org
Owner: jbudorick@chromium.org
Status: Started (was: Assigned)
Looked into this a bit. We somehow have a phone that would up with cs-CZ set as its SystemLocale in encrypted storage. On M (at least), the MountService reads this value and sets it as the persistent system locale, seemingly at boot time (https://android.googlesource.com/platform/frameworks/base/+/marshmallow-release/services/core/java/com/android/server/MountService.java#901)

It's not entirely clear how this happened; from looking at the code that saves the locale to the MountService (https://android.googlesource.com/platform/frameworks/base/+/marshmallow-release/services/core/java/com/android/server/am/ActivityManagerService.java#17318), it seems that something might be changing the font scale while we're set to czech?

Anyhow, you can manipulate a phone's locale in the encrypted store using:

  # must have run adb root
  $ adb shell vdc cryptfs getfield SystemLocale
  $ adb shell vdc cryptfs setfield SystemLocale [locale, e.g. "en-US"]

I'm working on a patch to teach swarming how to do this.
Project Member

Comment 11 by bugdroid1@chromium.org, Apr 20 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/f51c390619b7bd8d9613ed39cebe493455a1ee9a

commit f51c390619b7bd8d9613ed39cebe493455a1ee9a
Author: John Budorick <jbudorick@google.com>
Date: Fri Apr 20 17:44:08 2018

Project Member

Comment 12 by bugdroid1@chromium.org, May 3 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/ae462609ff80b2c7c3f435ec92f7acd3f9f6e6df

commit ae462609ff80b2c7c3f435ec92f7acd3f9f6e6df
Author: Ben Pastene <bpastene@chromium.org>
Date: Thu May 03 00:16:08 2018

Status: Fixed (was: Started)

Sign in to add a comment