Closed Bug 740731 Opened 10 years ago Closed 10 years ago

java.lang.IllegalStateException: Connection is not open at ch.boye.httpclientandroidlib.impl.SocketHttpClientConnection.assertOpen(SocketHttpClientConnection.java)

Categories

(Firefox for Android Graveyard :: Android Sync, defect, P1)

ARM
Android
defect

Tracking

(firefox14 verified, blocking-fennec1.0 +)

VERIFIED FIXED
mozilla15
Tracking Status
firefox14 --- verified
blocking-fennec1.0 --- +

People

(Reporter: scoobidiver, Assigned: nalexander)

References

()

Details

(Keywords: crash, topcrash, Whiteboard: [native-crash])

Crash Data

Attachments

(1 file)

There are four crashes so far. Here is one crash report: bp-19d5be3e-7d8d-42da-ba35-24aa42120329.

java.lang.IllegalStateException: Connection is not open
	at ch.boye.httpclientandroidlib.impl.SocketHttpClientConnection.assertOpen(SocketHttpClientConnection.java:78)
	at ch.boye.httpclientandroidlib.impl.AbstractHttpClientConnection.flush(AbstractHttpClientConnection.java:274)
	at ch.boye.httpclientandroidlib.impl.conn.AbstractClientConnAdapter.flush(AbstractClientConnAdapter.java:197)
	at ch.boye.httpclientandroidlib.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)
	at ch.boye.httpclientandroidlib.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
	at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
	at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
	at ch.boye.httpclientandroidlib.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:818)
	at ch.boye.httpclientandroidlib.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:752)
	at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:230)
	at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:254)
	at org.mozilla.gecko.sync.net.BaseResource.post(BaseResource.java:274)
	at org.mozilla.gecko.sync.net.SyncStorageRequest.post(SyncStorageRequest.java:171)
	at org.mozilla.gecko.sync.repositories.Server11RepositorySession$RecordUploadRunnable.run(Server11RepositorySession.java:523)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
	at java.lang.Thread.run(Thread.java:1027)

More reports at:
https://crash-stats.mozilla.com/report/list?signature=java.lang.IllegalStateException%3A+Connection+is+not+open+at+ch.boye.httpclientandroidlib.impl.SocketHttpClientConnection.assertOpen%28SocketHttpClientConnection.java%29
Was able to repro this with a bad wifi connection, Sync enabled, and trying to browse on the HTC Desire HD:

URL: https://crash-stats.mozilla.com/report/index/bp-3395d1ca-55eb-4fc7-8a71-cccfb2120427
It's only #34 top crasher in 14.0b2 but #2 in 14.0b3 (almost no dupes).
blocking-fennec1.0: --- → ?
Keywords: topcrash
Version: Trunk → Firefox 14
Grumble, my brain is friend -- there's a bug somewhere to add code to catch/rethrow native exceptions in the sync paths, but I can't find the bug number.  This could potentially be fixed by that.
Moving to the correct component.
Component: General → Android Sync
Product: Fennec Native → Mozilla Services
QA Contact: general → android-sync
Version: Firefox 14 → unspecified
blocking-fennec1.0: ? → +
Solution should be to add a single catch clause to BaseResource.execute; HttpClient is throwing an uncaught runtime exception.

Then call

      delegate.handleHttpIOException(e);

just as for the IOException clause.
Priority: -- → P1
Assignee: nobody → nalexander
Has reviewed patch:

https://github.com/mozilla-services/android-sync/pull/204
Status: NEW → ASSIGNED
Whiteboard: [native-crash] → [native-crash][has patch]
Comment on attachment 628858 [details] [diff] [review]
patch against m-i

Capitalize "catch" in commit message.
Attachment #628858 - Flags: review+
Target Milestone: --- → mozilla15
Comment on attachment 628858 [details] [diff] [review]
patch against m-i

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 
User impact if declined: 
Testing completed (on m-c, etc.): 
Risk to taking this patch (and alternatives if risky): 
String or UUID changes made by this patch:
Attachment #628858 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/mozilla-central/rev/0a4417ac4889
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Comment on attachment 628858 [details] [diff] [review]
patch against m-i

Can you file a follow up bug to catch specific exceptions rather than Exception please?
Attachment #628858 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
> Can you file a follow up bug to catch specific exceptions rather than
> Exception please?

This is running on a background thread; not catching means bringing down the process.  And, in this case, we catch the specific exceptions that we can deal with first.  I don't think this is necessary but am willing to be convinced otherwise.
Comment on attachment 628858 [details] [diff] [review]
patch against m-i

[Triage Comment] needed on beta now
Attachment #628858 - Attachment is patch: true
Attachment #628858 - Flags: approval-mozilla-aurora+ → approval-mozilla-beta+
Whiteboard: [native-crash][has patch] → [native-crash]
Status: RESOLVED → VERIFIED
Product: Mozilla Services → Android Background Services
Product: Android Background Services → Firefox for Android
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.