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

Issue 678437 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Sep 19
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

[Chrome][M55][Android7.0] Condition request which triggers AlarmReceiver to create Chrome process

Reported by seiyon.p...@gmail.com, Jan 5 2017

Issue description

Steps to reproduce the problem:
1. Launch Chrome
2. Touch "Home" key to go back to home screen
3. Touch "Recent" key > Remove Chrome from recent list

What is the expected behavior?

What went wrong?
It's common that Chrome process is killed but sometimes AlarmReceiver inside Chrome creates Chrome process right after removing Chrome from recent list. 

Did this work before? N/A 

Chrome version: 55.0.2883.87  Channel: stable
OS Version: 7.0
Flash Version: Shockwave Flash 24.0 r0
 
Owner: tedc...@chromium.org
Status: Assigned (was: Unconfirmed)
Cc: mariakho...@chromium.org agrieve@chromium.org tedc...@chromium.org nyquist@chromium.org qin...@chromium.org zea@chromium.org dfalcant...@chromium.org
Owner: ----
Status: Available (was: Assigned)
I'm not aware of anything that restarts the process.  Adding a bunch of other people.

I tested this locally on dev and I'm seeing similar behavior:

1.) Launch Chrome Dev, adb shell ps | grep chrome
u0_a111   13813 3457  1210896 107396 SyS_epoll_ 0000000000 S com.chrome.dev
u0_a111   16846 3457  1106524 49408 SyS_epoll_ 0000000000 S com.chrome.dev:privileged_process1
u0_i59    18023 3457  1011788 39024 SyS_epoll_ 0000000000 S com.chrome.dev:sandboxed_process1

2.) Swipe Chrome Dev away, adb shell ps | grep chrome
u0_a111   18121 3457  1010716 33120            0000000000 R com.chrome.dev

Followed shortly by:
u0_a111   18121 3457  1013448 40600 SyS_epoll_ 0000000000 S com.chrome.dev

--- I don't know what is triggering the alarm, but looking at
adb shell dumpsys alarm

Batch{4e276b num=1 start=74136313 end=74136313}:
    RTC #0: Alarm{90b92c8 type 1 when 1483642002153 com.chrome.dev}
      tag=*alarm*:com.chrome.dev/com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver
      type=1 whenElapsed=+831ms when=2017-01-05 10:46:42
      window=0 repeatInterval=0 count=0 flags=0x0
      operation=PendingIntent{f569f61: PendingIntentRecord{2779a86 com.chrome.dev broadcastIntent}}

  u0a111:com.chrome.dev +51s727ms running, 0 wakeups:
    +41s412ms 0 wakes 372 alarms, last -4s213ms:
      *alarm*:com.chrome.dev/com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver
    +28s928ms 0 wakes 134 alarms, last -26s978ms:
      *alarm*:com.chrome.dev/com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver
    +136ms 0 wakes 4 alarms, last -4h45m58s462ms:
      *alarm*:org.chromium.chrome.browser.omaha.ACTION_REGISTER_REQUEST

Could this be sync based on the invalidation alarm stuff?  Do we expect this to be called with Chrome dead?  I assume it is not loading the native library and is likely a very light weight process anyway?

This might be working as intended, but I don't know.
The Omaha stuff definitely sets an alarm to fire some point after Chrome has launched because it uses an IntentService.  That'd be working as intended, though.
I know that prefetch feature starts Chrome occasionally to do prefetches, but that it would happen immediately after a process is killed would be strange. The only other use I know of is when chrome://flags are modified, we restart by killing the process and setting an alarm to restart Chrome, but the repro doesn't seem to support this scenario.

Original reporter, adding a logcat from your phone to this bug report would be helpful.
Invalidation code also uses timers to do their work, ending up in an IntentService. But they don't load the native blob by doing that, so the impact is not the same as loading up all of Chrome.
Dear Chrome engineer,
I've attached log.txt and it tells us that AlarmReceiver creates Chrome process

01-09 11:22:23.172   866   879 I am_proc_start: [0,8973,10048,com.android.chrome,broadcast,com.android.chrome/com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver]
01-09 11:22:23.172   866   879 I ActivityManager: Start proc 8973:com.android.chrome/u0a48 for broadcast com.android.chrome/com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver

log.txt
141 KB View Download
So looks like this is invalidation code. Tommy, is there any way to say whether these alarms are firing as expected?
They are expected, but I'm not sure how to remove them. At some point in the future we'll probably fully move away from Tango anyway, which would remove the issue. But for now, it might not be very easy to fix.

Comment 9 by smcs...@gmail.com, Sep 14 2017

Same issue is observed in Chrome v60.0.3112.116.
Project Member

Comment 10 by sheriffbot@chromium.org, Sep 17

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Owner: tschumann@chromium.org
Status: WontFix (was: Untriaged)
+tschumann for posterity.  We are looking at migrating away from Tango, so hopefully this is no longer an issue.

Sign in to add a comment