Looks like a "classic" two-thread deadlock.
Thread "main" holding one monitor, and waiting for thread
"client_id_fetcher" while trying to lock another:
"main" prio=5 tid=1 MONITOR
| group="main" sCount=1 dsCount=0 obj=0x40e70a78 self=0x57017010
| sysTid=24172 nice=0 sched=0/0 cgrp=apps handle=1074714076
| state=S schedstat=( 427580000 1139226000 1925 ) utm=17 stm=25 core=0
at com.google.android.gms.analytics.ae.void U(java.lang.String)((null):~-1)
com.google.android.gms.analytics.Logger getLogger()
- waiting to lock <0x413413a0> held by tid=11 (client_id_fetcher)
And thread "client_id_fetcher" waiting for thread "main":
"client_id_fetcher" prio=5 tid=11 MONITOR
| group="main" sCount=1 dsCount=0 obj=0x4133ed30 self=0x58adfbc8
| sysTid=24186 nice=0 sched=0/0 cgrp=apps handle=1487037720
| state=S schedstat=( 284614000 1254896000 1744 ) utm=1 stm=27 core=0
at
com.google.android.gms.analytics.GoogleAnalytics.com.google.android.gms.analytics.GoogleAnalytics
getInstance(android.content.Context)((null):~-1)
com.google.android.gms.analytics.GoogleAnalytics eY()
void
a(com.google.android.gms.analytics.aa)
int ai(java.lang.String)
void setDryRun(boolean)
void
enableAutoActivityReports(android.app.Application)
void
reportActivityStart(android.app.Activity)
com.google.android.gms.analytics.Tracker newTracker(int)
com.google.android.gms.analytics.Tracker
a(com.google.android.gms.analytics.Tracker)
void
a(com.google.android.gms.analytics.GoogleAnalytics$a)
void u(java.util.Map)
- waiting to lock <0x4133ba20> held by tid=1 (main)
Like this:
void something_in_main() {
synchronized (lockObject1) {
synchronized (lockObject2) {
........
}
}
}
and
void something_in_client_id_fetcher() {
synchronized (lockObject2) {
synchronized (lockObject1) {
........
}
}
}
( I don't work for Google or know anything about GA, but a deadlock is a
deadlock )
-- K
On Monday, December 22, 2014 7:07:11 AM UTC+3, yccheok wrote:
>
> I get huge number of ANR
>
> ANR keyDispatchingTimedOut
>
> after using latest Google Play Services Library.
>
> The problematic code is
>
> com.google.android.gms.analytics.GoogleAnalytics
> getInstance(android.content.Context)
>
> This can be seen in the proguard retrace log
>
> ----- pid 24172 at 2014-12-22 10:17:52 -----
> Cmd line: org.yccheok.jstock.gui
>
> DALVIK THREADS:
> (mutexes: tll=0 tsl=0 tscl=0 ghl=0)
>
> "main" prio=5 tid=1 MONITOR
> | group="main" sCount=1 dsCount=0 obj=0x40e70a78 self=0x57017010
> | sysTid=24172 nice=0 sched=0/0 cgrp=apps handle=1074714076
> | state=S schedstat=( 427580000 1139226000 1925 ) utm=17 stm=25 core=0
> at com.google.android.gms.analytics.ae.void U(java.lang.String)((null):~-1)
>
> com.google.android.gms.analytics.Logger getLogger()
> - waiting to lock <0x413413a0> held by tid=11 (client_id_fetcher)
> at com.google.android.gms.analytics.ae.void V(java.lang.String)((null):-1)
> at
> com.google.android.gms.analytics.GoogleAnalytics.com.google.android.gms.analytics.GoogleAnalytics
>
> getInstance(android.content.Context)((null):-1)
>
> com.google.android.gms.analytics.GoogleAnalytics eY()
> void
> a(com.google.android.gms.analytics.aa)
> int
> ai(java.lang.String)
> void setDryRun(boolean)
> void
> enableAutoActivityReports(android.app.Application)
> void
> reportActivityStart(android.app.Activity)
>
> com.google.android.gms.analytics.Tracker newTracker(int)
>
> com.google.android.gms.analytics.Tracker
> a(com.google.android.gms.analytics.Tracker)
> void
> a(com.google.android.gms.analytics.GoogleAnalytics$a)
> void u(java.util.Map)
> at com.google.android.gms.analytics.GoogleAnalytics.void eZ()((null):-1)
> at com.google.android.gms.analytics.GoogleAnalytics.<init>((null):-1)
> at com.google.android.gms.analytics.GoogleAnalytics.<init>((null):-1)
> at
> com.google.android.gms.analytics.GoogleAnalytics.com.google.android.gms.analytics.GoogleAnalytics
>
> getInstance(android.content.Context)((null):-1)
>
> com.google.android.gms.analytics.GoogleAnalytics eY()
> void
> a(com.google.android.gms.analytics.aa)
> int
> ai(java.lang.String)
> void setDryRun(boolean)
> void
> enableAutoActivityReports(android.app.Application)
> void
> reportActivityStart(android.app.Activity)
>
> com.google.android.gms.analytics.Tracker newTracker(int)
>
> com.google.android.gms.analytics.Tracker
> a(com.google.android.gms.analytics.Tracker)
> void
> a(com.google.android.gms.analytics.GoogleAnalytics$a)
> void u(java.util.Map)
> at org.yccheok.jstock.gui.Utils.com.google.android.gms.analytics.Tracker
> getTracker()(SourceFile:532)
> at org.yccheok.jstock.gui.JStockFragmentActivity.void
> onCreate(android.os.Bundle)(SourceFile:92)
> at android.app.Activity.performCreate(Activity.java:5165)
> at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1103)
> at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2419)
> at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520)
> at android.app.ActivityThread.access$600(ActivityThread.java:162)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
> at android.os.Handler.dispatchMessage(Handler.java:99)
> at android.os.Looper.loop(Looper.java:158)
> at android.app.ActivityThread.main(ActivityThread.java:5751)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:511)
> at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
> at dalvik.system.NativeStart.main(Native Method)
>
> "client_id_fetcher" prio=5 tid=11 MONITOR
> | group="main" sCount=1 dsCount=0 obj=0x4133ed30 self=0x58adfbc8
> | sysTid=24186 nice=0 sched=0/0 cgrp=apps handle=1487037720
> | state=S schedstat=( 284614000 1254896000 1744 ) utm=1 stm=27 core=0
> at
> com.google.android.gms.analytics.GoogleAnalytics.com.google.android.gms.analytics.GoogleAnalytics
>
> getInstance(android.content.Context)((null):~-1)
>
> com.google.android.gms.analytics.GoogleAnalytics eY()
> void
> a(com.google.android.gms.analytics.aa)
> int
> ai(java.lang.String)
> void setDryRun(boolean)
> void
> enableAutoActivityReports(android.app.Application)
> void
> reportActivityStart(android.app.Activity)
>
> com.google.android.gms.analytics.Tracker newTracker(int)
>
> com.google.android.gms.analytics.Tracker
> a(com.google.android.gms.analytics.Tracker)
> void
> a(com.google.android.gms.analytics.GoogleAnalytics$a)
> void u(java.util.Map)
> - waiting to lock <0x4133ba20> held by tid=1 (main)
> at com.google.android.gms.analytics.ae.void U(java.lang.String)((null):-1)
>
> com.google.android.gms.analytics.Logger getLogger()
> at com.google.android.gms.analytics.ae.void V(java.lang.String)((null):-1)
> at com.google.android.gms.analytics.k.java.lang.String eq()((null):-1)
> at com.google.android.gms.analytics.k$1.void run()((null):-1)
>
> [ snip ]
>
> ----- end 24172 -----
>
> Can Google kindly look into this issues?
>
> Thanks.
>
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.