siramix / buzzwords

A mobile word game that will change the word.
www.siramix.com/buzzwords
GNU General Public License v3.0
10 stars 1 forks source link

Bug: PackPurchase - No server connection stalls #82

Closed edwardrowe closed 12 years ago

edwardrowe commented 12 years ago

App hangs for a long time when going to PackPurchase and not being able to talk to the server. We may be able to get a connection looking icon that rotates or something, or a dialog, when launching PackPurchase.

Callstack looks like this:

09-03 23:08:11.737: W/System.err(21489): org.apache.http.conn.ConnectTimeoutException: Connect to /174.122.183.130:80 timed out 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:147) 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:363) 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 09-03 23:08:11.745: W/System.err(21489): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 09-03 23:08:11.761: W/System.err(21489): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 09-03 23:08:11.761: W/System.err(21489): at com.buzzwords.PackClient.doHTTPGet(PackClient.java:117) 09-03 23:08:11.761: W/System.err(21489): at com.buzzwords.PackClient.getServerPacks(PackClient.java:80) 09-03 23:08:11.761: W/System.err(21489): at com.buzzwords.PackPurchaseActivity.refreshAllPackLayouts(PackPurchaseActivity.java:189) 09-03 23:08:11.761: W/System.err(21489): at com.buzzwords.PackPurchaseActivity.onResume(PackPurchaseActivity.java:167) 09-03 23:08:11.761: W/System.err(21489): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150) 09-03 23:08:11.761: W/System.err(21489): at android.app.Activity.performResume(Activity.java:3882) 09-03 23:08:11.761: W/System.err(21489): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2191) 09-03 23:08:11.761: W/System.err(21489): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2228) 09-03 23:08:11.761: W/System.err(21489): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721) 09-03 23:08:11.761: W/System.err(21489): at android.app.ActivityThread.access$1500(ActivityThread.java:124) 09-03 23:08:11.761: W/System.err(21489): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968) 09-03 23:08:11.761: W/System.err(21489): at android.os.Handler.dispatchMessage(Handler.java:99) 09-03 23:08:11.761: W/System.err(21489): at android.os.Looper.loop(Looper.java:130) 09-03 23:08:11.761: W/System.err(21489): at android.app.ActivityThread.main(ActivityThread.java:3806) 09-03 23:08:11.761: W/System.err(21489): at java.lang.reflect.Method.invokeNative(Native Method) 09-03 23:08:11.761: W/System.err(21489): at java.lang.reflect.Method.invoke(Method.java:507) 09-03 23:08:11.761: W/System.err(21489): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-03 23:08:11.761: W/System.err(21489): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-03 23:08:11.761: W/System.err(21489): at dalvik.system.NativeStart.main(Native Method) 09-03 23:08:11.831: V/Amazon-IAP(21489): onSdkAvailable recieved: Response -true 09-03 23:08:11.831: D/SandboxRequestHandler(21489): In App Purchasing SDK - Sandbox Mode: sendGetUserIdRequest 09-03 23:08:38.519: D/dalvikvm(21489): GC_CONCURRENT freed 1316K, 51% free 3097K/6279K, external 8638K/8792K, paused 5ms+6ms 09-03 23:08:38.550: E/Database(21489): close() was never explicitly called on database '/data/data/com.buzzwords/databases/buzzwords' 09-03 23:08:38.550: E/Database(21489): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 09-03 23:08:38.550: E/Database(21489): at android.database.sqlite.SQLiteDatabase.(SQLiteDatabase.java:1856) 09-03 23:08:38.550: E/Database(21489): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:829) 09-03 23:08:38.550: E/Database(21489): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:863) 09-03 23:08:38.550: E/Database(21489): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:856) 09-03 23:08:38.550: E/Database(21489): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:626) 09-03 23:08:38.550: E/Database(21489): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:210) 09-03 23:08:38.550: E/Database(21489): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.Deck$DeckOpenHelper.installPack(Deck.java:773) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.Deck$DeckOpenHelper.installPackFromResource(Deck.java:707) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.Deck$DeckOpenHelper.installStarterPacks(Deck.java:503) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.Deck.installStarterPacks(Deck.java:209) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.GameManager.installStarterPacks(GameManager.java:364) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.TitleActivity$InstallerAndAnimator.doInBackground(TitleActivity.java:527) 09-03 23:08:38.550: E/Database(21489): at com.buzzwords.TitleActivity$InstallerAndAnimator.doInBackground(TitleActivity.java:1) 09-03 23:08:38.550: E/Database(21489): at android.os.AsyncTask$2.call(AsyncTask.java:185) 09-03 23:08:38.550: E/Database(21489): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 09-03 23:08:38.550: E/Database(21489): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 09-03 23:08:38.550: E/Database(21489): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 09-03 23:08:38.550: E/Database(21489): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)

edwardrowe commented 12 years ago

Verified this server address is Siramix.com. Should be easy to test this.

edwardrowe commented 12 years ago

Also does this from sleep. It does put up a toast "No internet connection detected"

(and from back from GameSetup)

edwardrowe commented 12 years ago

Also since the timeout is so long, you could go to sleep while timing out, then just need to connect again when you unsleep.

If our final fix isn't under 30s, we should explore the NoSleep during this operation (I think we'd use a PowerManager http://developer.android.com/reference/android/os/PowerManager.html).

edwardrowe commented 12 years ago

Dupe of Issue 73: https://github.com/siramix/buzzwords/issues/73

Closing.