Closed Bug 819762 Opened 12 years ago Closed 12 years ago

"Please enter a valid server URL" after entering custom server with HTTPS URL for Sync account

Categories

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

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 756763

People

(Reporter: nate, Unassigned)

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20100101 Firefox/17.0
Build ID: 20121128204232

Steps to reproduce:

1. Installed a custom Sync Server(rev 532) on on FreeBSD-STABLE(stable/9).
2. Entered required information to set up Firefox Sync Account through Advanced Setup on my device with Android 2.3.4 and pressed Connect.


Actual results:

1. Connection fails with: "Please enter a valid server URL"

2. Log on my Android shows (filtered with "firefox"):
I/FxSync  ( 2551): firefox :: EnsureUserExistence :: Error checking for user existence.
W/FxSync  ( 2551): firefox :: AccountAuthenticator :: Authentication failed.
I/ActivityManager(  116): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.mozilla.firefox/.App bnds=[192,682][288,762] } from pid 4545
E/FxSync  ( 2551): firefox :: SyncJPakeStage :: No data found in channel.
E/FxSync  ( 2551): firefox :: SyncJPakeStage :: Got HTTP failure: jpake.error.nodata

3. Log on my server shows nothing (no ssl request, no access, no errors).


Expected results:

A log of an attempt to request SSL connection left on the server.
(There's no problem with syncing through HTTP protocol.)
My server (https://mozsync.nj-k.org/) is open for testing purpose until this issue is resolved.
This is my first bug to submit, so please tell me if it's malformed or requires further information.
CC'ing rnewman. AFAIK though trying to use a custom server doesn't work on desktop either. At least I couldn't get it to work when I last tried. Same as bug 708256.
Component: General → Android Sync
OS: Mac OS X → Android
Product: Firefox for Android → Mozilla Services
Hardware: x86 → ARM
Version: Firefox 17 → unspecified
Reporter: did you create your account on desktop first? You can't create a new account on Android.

I just successfully set up foo@bar.com against that Sync server on desktop.

I then launched Firefox Beta on Android 4.2, set up Sync, entered "foo@bar.com", the password, the custom server URL "https://mozsync.nj-k.org", and the Recovery Key from password manager. No errors, and I got a bookmark to sync between the two. Closing as WORKSFORME.

I don't think Bug 708256 is relevant.
Status: UNCONFIRMED → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
(In reply to Richard Newman [:rnewman] from comment #3)
> Reporter: did you create your account on desktop first? You can't create a
> new account on Android.
Thanks for testing!!
Yes, I already had my account created from my laptop.

I currently have 2 Android devices, HTC EVO Wimax(Android 2.3.4) and rooted Acer Iconia A500(Android 4.0.3), and the one I have tested was Android 2.3.4.
I have confirmed Firefox Beta on Android 4.0.3 successfully connected to the server, but not Firefox 17.0 on Android 4.0.3.
Unfortunately, Firefox Beta and Aurora on Android 2.3.4 were not successful.
(In reply to Takahide Matsuoka from comment #4)

> Unfortunately, Firefox Beta and Aurora on Android 2.3.4 were not successful.

If you enter

  https://mozsync.nj-k.org/

in the URL bar in the *stock Android browser* (not Firefox) on 2.3.4, do you get a 404 page, or a certificate error?

It sounds like your root cert isn't in the Android 2.3 certificate store. That's the only variable that changes when you switch OSes.


> I have confirmed Firefox Beta on Android 4.0.3 successfully connected to the
> server, but not Firefox 17.0 on Android 4.0.3.

I don't believe anything changed between 17 and 18, so this is surprising.
Summary: "Please enter a valid server URL" after entering custom server with HTTPS URL(SSL enabled server) for Sync Account → "Please enter a valid server URL" after entering custom server with HTTPS URL for Sync account
(In reply to Richard Newman [:rnewman] from comment #5)
> If you enter
> 
>   https://mozsync.nj-k.org/
> 
> in the URL bar in the *stock Android browser* (not Firefox) on 2.3.4, do you
> get a 404 page, or a certificate error?

I got "404" status page in stock browser.

I had a PKI certificate installed (Android's Setting>Security>Credential Storage>Install from SD card) previously, so I cleared the credential from the Android Setting.
Then I force stopped and cleared data of stock browser "Internet" from Manage Application menu.
The result was the same "404" after clearing the data.
Same also for syncing.

The relevant part of SSL request log (182.249.80.55 is my phone with Android 2.3.4 and 192.168.1.14 is my tablet with Android 4.0.3). I tried syncing from my phone before double checking from my tablet.:
11/Dec/2012:02:43:34 +0900] 182.249.80.55 TLSv1 RC4-SHA "GET / HTTP/1.1" 154
[11/Dec/2012:02:43:35 +0900] 182.249.80.55 TLSv1 RC4-SHA "GET /favicon.ico HTTP/
1.1" 154
[11/Dec/2012:02:45:18 +0900] 182.249.80.55 TLSv1 RC4-SHA "GET / HTTP/1.1" 154
[11/Dec/2012:02:48:10 +0900] 182.249.80.55 TLSv1 RC4-SHA "GET / HTTP/1.1" 154
[11/Dec/2012:02:48:11 +0900] 182.249.80.55 TLSv1 RC4-SHA "GET /favicon.ico HTTP/
1.1" 154
[11/Dec/2012:02:49:09 +0900] 182.249.80.55 TLSv1 RC4-SHA "GET / HTTP/1.1" 154
[11/Dec/2012:02:55:08 +0900] 192.168.1.14 TLSv1 RC4-SHA "DELETE /1.1/pdgnbw2dq4m
mhmto3yerxw6lonhwntgx/storage/clients/_x5hCi9gZJnM HTTP/1.1" 13
[11/Dec/2012:02:58:24 +0900] 192.168.1.14 TLSv1 RC4-SHA "GET /user/1.0/pdgnbw2dq
4mmhmto3yerxw6lonhwntgx HTTP/1.1" 1
[11/Dec/2012:02:58:24 +0900] 192.168.1.14 TLSv1 RC4-SHA "GET /user/1.0/pdgnbw2dq
4mmhmto3yerxw6lonhwntgx/node/weave HTTP/1.1" 25
[11/Dec/2012:02:58:24 +0900] 192.168.1.14 TLSv1 RC4-SHA "GET /1.1/pdgnbw2dq4mmhm
to3yerxw6lonhwntgx/info/collections/ HTTP/1.1" 252
(logs from my tablet continues.)


> It sounds like your root cert isn't in the Android 2.3 certificate store.
> That's the only variable that changes when you switch OSes.

The certificate is issued from Startcom.
I have seen a post on Google Codes that Startcom CA was not bundled in initial release of Android.
http://code.google.com/p/android/issues/detail?id=5865
This certificate requires chain certificate installed on the server.

> > I have confirmed Firefox Beta on Android 4.0.3 successfully connected to the
> > server, but not Firefox 17.0 on Android 4.0.3.
> 
> I don't believe anything changed between 17 and 18, so this is surprising.

I must have got mixed up with Android 2.3.4.
After uninstalling Firefox Beta and reinstalling Firefox 17, it succeeded in syncing.
I'm sorry for posting wrong information.
Can you capture an `adb logcat` from the 2.3.4 device?

This sounds like a manifestation of Bug 756763, but a log will confirm it.
(In reply to Richard Newman [:rnewman] from comment #7)
> Can you capture an `adb logcat` from the 2.3.4 device?
> 
> This sounds like a manifestation of Bug 756763, but a log will confirm it.

Sure!!
The following is the raw logs with verbosity level higher than Information.
I see the "javax.net.ssl.SSLPeerUnverifiedException: No peer certificate" after fail of authentication.

[handleTextChanged] (start,before,after)=(1,0,1)
[handleTextChanged] (start,before,after)=(2,0,1)
[handleTextChanged] (start,before,after)=(3,0,1)
EventReceiver:android.intent.action.NOTIFICATION_REMOVE
Committing preference changes
Preferences commit took 31ms
Committing preference changes
Preferences commit took 44ms
[handleTextChanged] (start,before,after)=(4,0,1)
[handleTextChanged] (start,before,after)=(5,0,1)
[handleTextChanged] (start,before,after)=(6,0,1)
[handleTextChanged] (start,before,after)=(7,0,1)
[handleTextChanged] (start,before,after)=(8,0,1)
[handleTextChanged] (start,before,after)=(9,0,1)
[handleTextChanged] (start,before,after)=(10,0,1)
[handleTextChanged] (start,before,after)=(11,0,1)
[handleTextChanged] (start,before,after)=(12,0,1)
No more aggregation requests
Unable to start service Intent { act=com.extscreen.service }: not found
Unable to start service Intent { act=com.extscreen.service }: not found
[sendCursorChangeNotificationToIME] ENTER...
NOW IS XXX NOT COMPOSING.....
[getWordOnCursor] cursor_pos=0
[sendCursorChangeNotificationToIME] TAP.....
[sendCursorChangeNotificationToIME](content,cursor_start,tap)=(,0,false)
[handleTextChanged] (start,before,after)=(0,0,1)
Bad keycharmap - filesize=32
Error loading keycharmap file '/system/usr/keychars/supersonic-keypad.kcm.bin'. hw.keyboards.0.devname='supersonic-keypad'
Using default keymap: /system/usr/keychars/qwerty.kcm.bin
[handleTextChanged] (start,before,after)=(1,0,1)
[handleTextChanged] (start,before,after)=(2,0,1)
[handleTextChanged] (start,before,after)=(3,0,1)
[handleTextChanged] (start,before,after)=(4,0,1)
[handleTextChanged] (start,before,after)=(5,0,1)
[handleTextChanged] (start,before,after)=(6,0,1)
Loaded time zone names for en_US in 733ms.
[handleTextChanged] (start,before,after)=(7,0,1)
[handleTextChanged] (start,before,after)=(8,0,1)
Start proc org.dmfs.caldav.lib for service org.dmfs.caldav.lib/.CalendarObserverService: pid=1993 uid=10106 gids={3003}
Unable to start service Intent { act=com.extscreen.service }: not found
Unable to start service Intent { act=com.extscreen.service }: not found
[sendCursorChangeNotificationToIME] ENTER...
NOW IS XXX NOT COMPOSING.....
[getWordOnCursor] cursor_pos=0
[sendCursorChangeNotificationToIME] TAP.....
[sendCursorChangeNotificationToIME](content,cursor_start,tap)=(,0,false)
Loaded time zone names for en_US in 484ms.
[handleTextChanged] (start,before,after)=(0,0,1)
[handleTextChanged] (start,before,after)=(1,0,1)
[handleTextChanged] (start,before,after)=(2,0,1)
[handleTextChanged] (start,before,after)=(3,0,1)
[handleTextChanged] (start,before,after)=(4,0,1)
[handleTextChanged] (start,before,after)=(5,0,1)
[handleTextChanged] (start,before,after)=(6,0,1)
[handleTextChanged] (start,before,after)=(7,0,1)
[handleTextChanged] (start,before,after)=(8,0,1)
[handleTextChanged] (start,before,after)=(9,0,1)
[handleTextChanged] (start,before,after)=(10,0,1)
Loaded time zone names for en_US in 528ms.
[handleTextChanged] (start,before,after)=(11,0,1)
[handleTextChanged] (start,before,after)=(12,0,1)
[handleTextChanged] (start,before,after)=(13,0,1)
[handleTextChanged] (start,before,after)=(14,0,1)
[handleTextChanged] (start,before,after)=(15,0,1)
[handleTextChanged] (start,before,after)=(16,0,1)
[handleTextChanged] (start,before,after)=(17,0,1)
[handleTextChanged] (start,before,after)=(18,0,1)
[handleTextChanged] (start,before,after)=(19,0,1)
Loaded time zone names for en_US in 453ms.
[handleTextChanged] (start,before,after)=(20,0,1)
[handleTextChanged] (start,before,after)=(21,0,1)
[handleTextChanged] (start,before,after)=(22,0,1)
[handleTextChanged] (start,before,after)=(23,0,1)
[handleTextChanged] (start,before,after)=(24,0,1)
[handleTextChanged] (start,before,after)=(25,0,1)
[handleTextChanged] (start,before,after)=(26,0,1)
[handleTextChanged] (start,before,after)=(27,0,1)
[handleTextChanged] (start,before,after)=(28,0,1)
[handleTextChanged] (start,before,after)=(29,0,1)
[handleTextChanged] (start,before,after)=(30,0,1)
Total arena pages for JIT: 11
firefox :: EnsureUserExistence :: Error checking for user existence.
firefox :: AccountAuthenticator :: Authentication failed.
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
	at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:258)
	at ch.boye.httpclientandroidlib.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
	at ch.boye.httpclientandroidlib.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
	at ch.boye.httpclientandroidlib.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
	at ch.boye.httpclientandroidlib.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
	at ch.boye.httpclientandroidlib.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
	at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
	at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
	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:253)
	at org.mozilla.gecko.sync.net.BaseResource.retryRequest(BaseResource.java:292)
	at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:263)
	at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:316)
	at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:322)
	at org.mozilla.gecko.sync.setup.auth.EnsureUserExistenceStage$3.run(EnsureUserExistenceStage.java:111)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:444)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	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)
Unable to start service Intent { act=com.extscreen.service }: not found
Unable to start service Intent { act=com.extscreen.service }: not found
Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=org.adwfreak.launcher/org.adw.launcherlib.Launcher } from pid 116
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$START@4013eb00,-1,13,-1,13)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$END@40136dd0,-1,13,-1,13)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$START@4013eb00,-1,9,-1,9)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$END@40136dd0,-1,9,-1,9)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$START@4013eb00,-1,31,-1,31)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$END@40136dd0,-1,31,-1,31)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$START@4013eb00,-1,25,-1,25)
[spanChange] (o, oldStart, newStart, oldEnd, newEnd)=(android.text.Selection$END@40136dd0,-1,25,-1,25)
showStatusIcon on inactive InputConnection
InputConnection = com.android.internal.widget.EditableInputConnection@40643ec8, active client = false
[unbindCurrentClientLocked] Disable input method client.
[startInputLocked] Enable input method client.
Unable to start service Intent { act=com.extscreen.service }: not found
Unable to start service Intent { act=com.extscreen.service }: not found
Loaded time zone names for en_US in 561ms.
Unable to start service Intent { act=com.extscreen.service }: not found
Unable to start service Intent { act=com.extscreen.service }: not found
Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.jtb.alogcat/.LogActivity } from pid 4545
> > This sounds like a manifestation of Bug 756763, but a log will confirm it.
> 
> Sure!!
> The following is the raw logs with verbosity level higher than Information.
> I see the "javax.net.ssl.SSLPeerUnverifiedException: No peer certificate"
> after fail of authentication.

Thanks for verifying. I'll dupe this.
Resolution: WORKSFORME → DUPLICATE
(In reply to Richard Newman [:rnewman] from comment #9)
> Thanks for verifying. I'll dupe this.
> 
> *** This bug has been marked as a duplicate of bug 756763 ***

Thanks for all the help!!

I think I will close my server for creating new users.
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.