I'm going to describe the dialer lag bug and a possible clue how to fix it. As far as I've researched it is present in other phones as well. I'm running the latest nighty (update-cm-9-20120511), but the same bug appears in all previous nighties (at least a month old) and in the latest official Samsung 4.0.3 ROM.
Full wipe (+sdcard if that matters), absolutely stock. Logged in Google account. Direct call shortcut on the main screen. WiFi should be turned off (very important). If the WiFi was turned on, restart the phone first for reliable reproduction. Leaving WiFi turned on for a longer period sometimes masks the bug.
1. Screen off
2. Wait 10 seconds, screen on, unlock
3. Tap on the direct dial shortcut
The phone hangs for ~ 10 seconds and then begins dialing. Exactly the same procedure with WiFi turned on results in no lag. The number is dialed immediately.
I suppose this bug is present in all ROMs, based on Samsung 4.0.3 XXLPQ+ (possibly previous ones as well).
I've attached logcat logs from point 1 (screen off) until the phone begins to dial and I hang up.
No WiFi (hangs): http://pastebin.com/GC01G2FR
WiFi (doesn't hang): http://pastebin.com/eJS9N6sz
Subtracting the noise, the last identical line between two versions is:
D/PhoneUtils( 2207): checkAndCopyPhoneProviderExtras: some or all extras are missing.
This is the line which appears when I start dialing the number. After that the difference are those lines, present only in No WiFi (hangs) version:
W/ActivityManager( 1985): Timeout of broadcast BroadcastRecord{410f0a90 android.intent.action.SCREEN_ON} - receiver=android.app.LoadedApk$ReceiverDispatcher$InnerReceiver@40f159d0, started 10000ms ago
W/ActivityManager( 1985): Receiver during timeout: BroadcastFilter{40f15bd8 ReceiverList{40f15b60 1985 system/1000 local:40f159d0}}
I'm a developer outside of the Android ecosystem, but as far as I understand an intent broadcast SCREEN_ON is issued and its intent receiver timeouts in 10000ms (those 10 seconds during which the dialer hangs). Supposedly Android is waiting for some intent receiver to handle its onReceive() and during this period nothing happens.
Please note that in the log there is another timeout before this one with the same consequences, but with timeout for intent SCREEN_OFF, issued seconds earlier when I turned the display off. That's why I skipped it.
Interestingly with WiFi on this doesn't happen.
I searched many forums and some people report (but can't describe) the problem. Other don't have it. I suppose there are other variables I can't isolate. Can you please try to reproduce it and point me to the right direction (tools, approach) how to debug it? This is a showstopper bug IMHO.
Edited by gogothebee, 13 May 2012 - 09:29 AM.












