Sprint locking up my app? (ANR from com.carrieriq.iqagent.client) Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Sprint locking up my app? (ANR from com.carrieriq.iqagent.client) without wasting too much if your time.

The question is published on by Tutorial Guruji team.

Context: I have an app is already released into the market for over a year, and the last update was three months ago. Never had problem with ANR errors. The app is fairly stable, 100,000+ active installs.

Recently, I have been getting ANR keyDispatchingTimedOut reports (about 30 of them) from various places in my app, and all of them has to do with com.carrieriq.iqagent.client.

For example,
DALVIK THREADS:

"main" prio=5 tid=1 MONITOR
  | group="main" sCount=1 dsCount=0 s=N obj=0x40020a30 self=0xcd88
  | sysTid=19807 nice=0 sched=0/0 cgrp=default handle=-1345026000
  at com.carrieriq.iqagent.client.NativeClient.acquire(NativeClient.java:~35)
  - waiting to lock  (a java.lang.Object) held by threadid=2 (HeapWorker)
  at com.carrieriq.iqagent.client.IQClient.(IQClient.java:115)
  at com.carrieriq.iqagent.client.IQClient.(IQClient.java:105)
  at android.app.AlertDialog$Builder.create(AlertDialog.java:826)
  at android.app.AlertDialog$Builder.show(AlertDialog.java:864)
  at com.myapp.button.pushed$SomeRunnable.run(SomeRunnable.java:299)

–The SomeRunnable.java line 299 is just adialog.show();

The only other thread in the report is:

"HeapWorker" daemon prio=5 tid=2 NATIVE
  | group="system" sCount=1 dsCount=0 s=N obj=0x43b55c98 self=0x11eba8
  | sysTid=19808 nice=0 sched=0/0 cgrp=default handle=1174376
  at com.carrieriq.iqagent.client.NativeClient.clientShutdown(Native Method)
  at com.carrieriq.iqagent.client.NativeClient.release(NativeClient.java:81)
  at com.carrieriq.iqagent.client.IQClient.disconnect(IQClient.java:341)
  at com.carrieriq.iqagent.client.IQClient.finalize(IQClient.java:354)
  at dalvik.system.NativeStart.run(Native Method)

I googled online and saw that people claim to have battery issues with it:
http://forums.androidcentral.com/sprint-optimus-s/45729-ever-wondered-what-iqagent.html

So the question is, I am not sure what I should do with this (check that the package exists and warn the user maybe?) or is it really the reason?

This package shows up in all the ANR traces that I get. (So only sprint users have been having this problem)

Answer

This seems like a legitimate race condition in the IQclient. The interesting part though is that the HeapWorker thread is shuttig down, at a time when your thread is trying to process the button press. If you can figure out why that thread is being shut down, you might find a solution. Sadly, that might be hard without a repro.

We are here to answer your question about Sprint locking up my app? (ANR from com.carrieriq.iqagent.client) - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji