Closed Bug 1365865 Opened 3 years ago Closed 2 years ago

Firefox Sync not working on Android O developer preview

Categories

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

55 Branch
All
Android
defect

Tracking

()

VERIFIED FIXED
Firefox 56
Tracking Status
firefox54 --- wontfix
firefox55 --- fixed
firefox56 --- fixed

People

(Reporter: f.smulders, Assigned: Grisha)

References

(Blocks 1 open bug)

Details

Attachments

(3 files)

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0
Build ID: 20170504105526

Steps to reproduce:

I installed the Android O beta that released yesterday (17th of May 2017).
After that, I installed my apps, amongst which Nightly for Android


Actual results:

After filling in my username/password for Firefox Sync, receiving the e-mail and clicked on the link in the e-mail, Sync didn't .... sync

The Sync page says:

Sync enabled
Last synchronised: never


Expected results:

A working Sync experience
Edit: also not working on Firefox 53.0.2 (The current release)
Severity: normal → major
Component: General → Firefox Accounts
OS: Unspecified → Android
Hardware: Unspecified → All
Summary: Firefox Sync not working on Android O beta → Firefox Sync not working on Android O developer preview
Confirmed with 53.0.2
Status: UNCONFIRMED → NEW
Ever confirmed: true
I can confirm that sync will work properly and synchronize manually on 7.1.2, but once an update to Android O is performed, Firefox Sync will not process anymore.
Thank you very much for reporting this. There's already a tally of Android O bugs building up, so I will mark this bug as a duplicate.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1368536
This bug was filed 14 days ago. Bug 1368536 was filed 2 days ago and is not even confirmed. The duplicate process should be the other way around.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Duplicate of this bug: 1368536
Has the underlying reason been found?
(In reply to f.smulders from comment #7)
> Has the underlying reason been found?

Not yet. I'll be looking into this sometime this week.
Thanks a lot!
Component: Firefox Accounts → Android Sync
Product: Firefox for Android → Android Background Services
Priority: -- → P1
Blocks: android-o
First stumbling block: cipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA is not supported.


06-09 16:08:57.777 4367-6013/org.mozilla.fennec_grisha E/FxADeviceRegistrator: Error while updating a device registration: 
                                                                               java.io.IOException
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:326)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.retryRequest(BaseResource.java:349)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:330)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:373)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.post(BaseResource.java:404)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.post(BaseResource.java:537)
                                                                                   at org.mozilla.gecko.background.fxa.FxAccountClient20.post(FxAccountClient20.java:319)
                                                                                   at org.mozilla.gecko.background.fxa.FxAccountClient20.registerOrUpdateDevice(FxAccountClient20.java:822)
                                                                                   at org.mozilla.gecko.fxa.devices.FxAccountDeviceRegistrator.doFxaRegistration(FxAccountDeviceRegistrator.java:211)
                                                                                   at org.mozilla.gecko.fxa.devices.FxAccountDeviceRegistrator.handlePushSubscriptionResponse(FxAccountDeviceRegistrator.java:181)
                                                                                   at org.mozilla.gecko.fxa.devices.FxAccountDeviceRegistrator.handleMessage(FxAccountDeviceRegistrator.java:149)
                                                                                   at org.mozilla.gecko.EventDispatcher$2.run(EventDispatcher.java:337)
                                                                                   at android.os.Handler.handleCallback(Handler.java:769)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                                   at android.os.Looper.loop(Looper.java:164)
                                                                                   at org.mozilla.gecko.util.GeckoBackgroundThread.run(GeckoBackgroundThread.java:43)
                                                                                Caused by: java.lang.IllegalArgumentException: cipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA is not supported.
                                                                                   at com.android.org.conscrypt.NativeCrypto.checkEnabledCipherSuites(NativeCrypto.java:968)
                                                                                   at com.android.org.conscrypt.SSLParametersImpl.setEnabledCipherSuites(SSLParametersImpl.java:264)
                                                                                   at com.android.org.conscrypt.OpenSSLSocketImpl.setEnabledCipherSuites(OpenSSLSocketImpl.java:895)
                                                                                   at ch.boye.httpclientandroidlib.conn.ssl.SSLSocketFactory.internalPrepareSocket(SSLSocketFactory.java:499)
                                                                                   at ch.boye.httpclientandroidlib.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:506)
                                                                                   at ch.boye.httpclientandroidlib.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:377)
                                                                                   at ch.boye.httpclientandroidlib.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
                                                                                   at ch.boye.httpclientandroidlib.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:145)
                                                                                   at ch.boye.httpclientandroidlib.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131)
                                                                                   at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
                                                                                   at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
                                                                                   at ch.boye.httpclientandroidlib.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:860)
                                                                                   at ch.boye.httpclientandroidlib.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:308)
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.retryRequest(BaseResource.java:349) 
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:330) 
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:373) 
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.post(BaseResource.java:404) 
                                                                                   at org.mozilla.gecko.sync.net.BaseResource.post(BaseResource.java:537) 
                                                                                   at org.mozilla.gecko.background.fxa.FxAccountClient20.post(FxAccountClient20.java:319) 
                                                                                   at org.mozilla.gecko.background.fxa.FxAccountClient20.registerOrUpdateDevice(FxAccountClient20.java:822) 
                                                                                   at org.mozilla.gecko.fxa.devices.FxAccountDeviceRegistrator.doFxaRegistration(FxAccountDeviceRegistrator.java:211) 
                                                                                   at org.mozilla.gecko.fxa.devices.FxAccountDeviceRegistrator.handlePushSubscriptionResponse(FxAccountDeviceRegistrator.java:181) 
                                                                                   at org.mozilla.gecko.fxa.devices.FxAccountDeviceRegistrator.handleMessage(FxAccountDeviceRegistrator.java:149) 
                                                                                   at org.mozilla.gecko.EventDispatcher$2.run(EventDispatcher.java:337) 
                                                                                   at android.os.Handler.handleCallback(Handler.java:769) 
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:98) 
                                                                                   at android.os.Looper.loop(Looper.java:164) 
                                                                                   at org.mozilla.gecko.util.GeckoBackgroundThread.run(GeckoBackgroundThread.java:43)
Assignee: nobody → gkruglov
Status: REOPENED → ASSIGNED
I noticed some changes in the latest version.
Some textfields have been changed and are quite strange to be honest (The sync-settings in Sync now show "Tap to exit, open tabs).
I am seeing the same thing as f.smulders
(In reply to Rob Urwin from comment #12)
> I am seeing the same thing as f.smulders

That sounds like Bug 1375401.
Sounds similar, but I still cannot sync my account
Duplicate of this bug: 1376470
Comment on attachment 8881535 [details]
Bug 1365865 - Update set of default ciphers for API26+

https://reviewboard.mozilla.org/r/152704/#review157930

Sure.  Request uplifts as far as you can, please.
Attachment #8881535 - Flags: review?(nalexander) → review+
Approval Request Comment
[Feature/Bug causing the regression]: N/A

[User impact if declined]: Certain Android-level SSL connections are broken for API26+: FxA device registration doesn't work, Sync doesn't work, Telemetry uploads do not work. One of the cipher suites we try to set as enabled is no longer supported starting with API level 26, and there's a throwing runtime check which breaks us.

[Is this code covered by automated tests?]: No.

[Has the fix been verified in Nightly?]: Not yet, will be baking on nightly once it lands.

[Needs manual test from QE? If yes, steps to reproduce]: Easy - try syncing on a device with Android O development preview.

[List of other uplifts needed for the feature/fix]: N/A

[Is the change risky?]: Should not be.

[Why is the change risky/not risky?]: The patch narrows down a list of supported cipher suites for API26 to just those that are actually supported by the Android platform, removing one - which appeases the runtime check. IIUC this should have no negative side-effects.

[String changes made/needed]: N/A
Attachment #8881670 - Flags: approval-mozilla-beta?
Approval Request Comment
[Feature/Bug causing the regression]: N/A

[User impact if declined]: Certain Android-level SSL connections are broken for API26+: FxA device registration doesn't work, Sync doesn't work, Telemetry uploads do not work. One of the cipher suites we try to set as enabled is no longer supported starting with API level 26, and there's a throwing runtime check which breaks us.

[Is this code covered by automated tests?]: No.

[Has the fix been verified in Nightly?]: Not yet, will be baking on nightly once it lands.

[Needs manual test from QE? If yes, steps to reproduce]: Easy - try syncing on a device with Android O development preview.

[List of other uplifts needed for the feature/fix]: N/A

[Is the change risky?]: Should not be.

[Why is the change risky/not risky?]: The patch narrows down a list of supported cipher suites for API26 to just those that are actually supported by the Android platform, removing one - which appeases the runtime check. IIUC this should have no negative side-effects.

[String changes made/needed]: N/A
Attachment #8881671 - Flags: approval-mozilla-release?
Pushed by gkruglov@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a1832dd694e0
Update set of default ciphers for API26+ r=nalexander
Great to see progress! 
Looking forward to being able to 'Send page to device' again and sync bookmarks etc!
let's get this verified on nightly before uplift to beta, hopefully it can make the 55.0b7 build on monday
Flags: qe-verify+
Ioana, do you have devices with Android O to test this on?
Flags: needinfo?(ioana.chiorean)
I have a device with O that I would be happy to test with.  I just updated my phone with the newest nightly in Play Store and sync still doesn't work.  I have not been able to gleen from this bug if the fix has actually made it into a nightly yet, however.
https://hg.mozilla.org/mozilla-central/rev/a1832dd694e0
Status: ASSIGNED → RESOLVED
Closed: 3 years ago2 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 56
(In reply to Jonathan Fosburgh from comment #24)
> I have a device with O that I would be happy to test with.  I just updated
> my phone with the newest nightly in Play Store and sync still doesn't work. 
> I have not been able to gleen from this bug if the fix has actually made it
> into a nightly yet, however.

It hasn't.  Tonight (Pacific) it should be in Nightly.  Thanks, Jonathan!
Works like a charm with latest nightly. Good to see my tabs and favorites appear ! Thanks for the fix !
Yeah, works great. Thank you!
Works! Thanks!
It works ... Thank you
Status: RESOLVED → VERIFIED
I updated to 56.0a1 (2017-06-30) Nightly on Google Play today. But Sync now still says Syncing.. for a second and that's it. Last synced: never. Is this the right version or where can I get the APK?
Comment on attachment 8881670 [details] [diff] [review]
ciphersuite-update-beta.patch

cipher suite update for new android, beta55+
Attachment #8881670 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
The patch is working for me now after upgrading to Android O developer preview beta #3 ("OPP3.xxx.xxx") :-)

I guess the check within your patch for SDK_INT >= 26 did not trigger for the previous developer previews. So to be on the safe side I would modify the patch to enable for SDK_INTs 25 and above because I don't see any downside of leaving out that unsupported cipher suite for earlier API versions. What do you think?
(In reply to pm from comment #34)
> The patch is working for me now after upgrading to Android O developer
> preview beta #3 ("OPP3.xxx.xxx") :-)
> 
> I guess the check within your patch for SDK_INT >= 26 did not trigger for
> the previous developer previews. So to be on the safe side I would modify
> the patch to enable for SDK_INTs 25 and above because I don't see any
> downside of leaving out that unsupported cipher suite for earlier API
> versions. What do you think?

Developer previews are short-lived and might trigger edge-cases.  The code in question is long-lived and lines up exactly with the documentation.  I'd prefer to keep the "obvious fix" rather than try to handle the edges, but I don't feel strongly about it.
(In reply to Nick Alexander :nalexander from comment #35)
> (In reply to pm from comment #34)
> > The patch is working for me now after upgrading to Android O developer
> > preview beta #3 ("OPP3.xxx.xxx") :-)
> > 
> > I guess the check within your patch for SDK_INT >= 26 did not trigger for
> > the previous developer previews. So to be on the safe side I would modify
> > the patch to enable for SDK_INTs 25 and above because I don't see any
> > downside of leaving out that unsupported cipher suite for earlier API
> > versions. What do you think?
> 
> Developer previews are short-lived and might trigger edge-cases.  The code
> in question is long-lived and lines up exactly with the documentation.  I'd
> prefer to keep the "obvious fix" rather than try to handle the edges, but I
> don't feel strongly about it.

Agreed. Let's stick to the docs and not overthink this.

Clearing flag for Ioana since this seems to be working well for folks with O devices. Feel free to re-open otherwise.
Flags: needinfo?(ioana.chiorean)
Comment on attachment 8881671 [details] [diff] [review]
ciphersuite-update-release.patch

There is no plan for fennec 54 dot release at this moment. Release54-.
Attachment #8881671 - Flags: approval-mozilla-release? → approval-mozilla-release-
Duplicate of this bug: 1381192
Product: Android Background Services → Firefox for Android
Verified as fixed on the latest version of Nightly 65.0a1 (2018-12-04) and Release (63.0.2) with Samsung Galaxy S8 (Android 8.0) and Samsung Galaxy Note 8 (Android 8.0). Due to that and the user's verification from comments, I'll remove the qe-verify flag, thanks.
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.