New issue
Advanced search Search tips

Issue 828528 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Building resources.arsc is non-hermetic in some cases

Project Member Reported by agrieve@chromium.org, Apr 3 2018

Issue description

This came up with:
https://chromium-review.googlesource.com/c/chromium/src/+/991236

Adding a new asset was causing the 64-bit resources.arsc to differ from the 32-bit one. However, assets are not even inputs to the step that builds resources.arsc!

Diffing the two .apks shows that they have identical contents, but subtle differences in the order in which strings are put into the string table.

Here is a diff of "strings resources.arsc" of 32-bit vs 64-bit:

416d415
< Edit
590d588
< Name
707d704
< Password
1004d1000
< Username
4117a4114
> Continua
6433a6431
> Navn
6553a6552
> Rediger adresse
8896d8894
< Navn
9075d9072
< Rediger adresse
10502a10500
> Name
17971d17968
< Heslo
20524d20520
< prava karty
26259a26256
> Prijava
26543a26541
> Uredi
27759a27758
> Password
27908a27908
> Username
27911a27912
> Visa
28671a28673
> Edit
36176d36177
< Prijava
36582d36582
< Uredi
40347a40348
> Heslo
42767a42769
> prava karty
43279d43280
< Contrase
43413d43413
< Editar direcci
43419d43418
< Editar tarjeta
43480a43480
> Enviar
43865d43864
< s informaci
43958,43959d43956
< Nombre
< Nombre de usuario
44264d44260
< Seleccionar
44934d44929
< Continua
57350d57344
< Visa
60812d60805
< Continuar
60928d60920
< Editar
60961d60952
< Enviar
62562a62554,62555
> Continuar
> Contrase
62658a62652,62653
> Editar
> Editar direcci
62663a62659
> Editar tarjeta
63030a63027
> s informaci
63094a63092
> Nombre
63095a63094
> Nombre de usuario
63405a63405
> Seleccionar


Note that all of the strings are the same in the end, but appear in different spots within the string table.
 
To reproduce: Apply diff to commit from #1:

diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index a0171e8eb34c..460c4d6fefce 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -1097,7 +1097,7 @@ template("chrome_public_apk_tmpl_shared") {
 # assigns different names for these versions.
 _add_unwind_tables_in_chrome_public_apk =
     can_unwind_with_cfi_table && is_official_build
-_add_unwind_tables_in_monochrome_public_apk = is_official_build
+_add_unwind_tables_in_monochrome_public_apk = can_unwind_with_cfi_table && is_official_build
 
 chrome_public_apk_tmpl_shared("chrome_public_apk") {
   android_manifest = chrome_public_android_manifest
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/081ead710ebc4645053c6bf3ef0a00bb36d50a3c

commit 081ead710ebc4645053c6bf3ef0a00bb36d50a3c
Author: Andrew Grieve <agrieve@chromium.org>
Date: Wed Apr 04 18:19:45 2018

Android: Maintain original order of sibling deps within .build_configs

This reduces randomness in the build by making our dependency
sorting a stable sort.

Bug:  828528 ,  828508 
Change-Id: Ibf0f1de0d77333cdee575560912728e47b8f292e
Reviewed-on: https://chromium-review.googlesource.com/994545
Commit-Queue: agrieve <agrieve@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548131}
[modify] https://crrev.com/081ead710ebc4645053c6bf3ef0a00bb36d50a3c/build/android/PRESUBMIT.py
[modify] https://crrev.com/081ead710ebc4645053c6bf3ef0a00bb36d50a3c/build/android/gyp/util/build_utils.py
[add] https://crrev.com/081ead710ebc4645053c6bf3ef0a00bb36d50a3c/build/android/gyp/util/build_utils_test.py
[modify] https://crrev.com/081ead710ebc4645053c6bf3ef0a00bb36d50a3c/build/android/gyp/write_build_config.py
[modify] https://crrev.com/081ead710ebc4645053c6bf3ef0a00bb36d50a3c/build/android/gyp/write_ordered_libraries.py

Status: Fixed (was: Assigned)

Sign in to add a comment