New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 907098 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

enable_intremental_javac=true flaky with annotation processors

Project Member Reported by peconn@chromium.org, Nov 20

Issue description

1. Build Chrome on Android, eg:

ninja -C out_android/Debug chrome_apk_incremental

2. Go to TrustedWebActivityCoordinator and remove the PersistentNotificationController and TrustedWebActivityDisclosureView from the constructor (or any parts from the constructor.

3. Rebuild Chrome.

4. Open out_android/Debug/gen/chrome/android/chrome_java/generated_java/org/chromium/chrome/browser/browserservices/trustedwebactivityui/TrustedWebActivityCoordinator_Factory.java

The provideInstance method references the *old* constructor (with the now missing elements). Annoyingly this manifests as a crash at runtime, not at compile time.
 
Do you have enable_incremental_javac = true? If so, does this repro without it?
This should be an issue for incremental builds only. Incremental annotation processing has been recently introduced to dagger 2.18 (we have 2.17) under the flag Adagger.gradle.incremental, but as the name suggests, I guess it's likely to work only with gradle.
Components: -Infra>Client>Chrome Build
Labels: OS-Android
Status: WontFix (was: Untriaged)
Is this just because of workload management, or are we expecting to get the fix for free with some update?
Status: Available (was: WontFix)
Summary: enable_intremental_javac=true flaky with annotation processors (was: Some Dagger changes don't trigger needed recompilation)
Sorry, probably closed this too hastily in a bulk review.

Repro steps worked for me for enable_intremental_javac=true, but not for enable_intremental_javac=false. Thus, this is a bug with jmake.

Sadly, I think our options are to either:
* remove support for enable_intremental_javac=true, or
* document its quirks.

Probably we should just delete it since it doesn't work reliably. No other build systems that I'm aware of try to do this kind of java dependency analysis. For faster builds, what we should really do is figure out how to break up chrome_java into subtargets.

Comment 7 by wnwen@chromium.org, Jan 17 (5 days ago)

Cc: wnwen@chromium.org
Labels: DevX

Sign in to add a comment