couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Vander Stichele (JIRA)" <j...@apache.org>
Subject [jira] Created: (COUCHDB-585) couchdb 0.10.0 with erlang 12b does not properly support replication from https:// couchdb
Date Mon, 30 Nov 2009 12:18:20 GMT
couchdb 0.10.0 with erlang 12b does not properly support replication from https:// couchdb
------------------------------------------------------------------------------------------

                 Key: COUCHDB-585
                 URL: https://issues.apache.org/jira/browse/COUCHDB-585
             Project: CouchDB
          Issue Type: Bug
    Affects Versions: 0.10
         Environment: Fedora 11, couchdb 0.10.0, erlang 0.12b
            Reporter: Thomas Vander Stichele


While trying to get desktopcouch sync to work with ubuntuone, I ran into a problem.

After lots of debugging, and trying manual replication requests with curl, it seems that:

- pushing (replicating a local db to https://couchdb.one.ubuntu.com/) works fine
- pulling (replicating a remote db on https://couchdb.one.ubuntu.com/) fails

I managed to reproduce this on a 'standard' couchdb run from the 0.10.x branch

Here is the log on a pull request:

[debug] [<0.59.0>] 'POST' /_replicate {1,1}
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic dGhvbWFzOnBhc3M="},
          {'Content-Length',"328"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"otto:5984"},
          {'User-Agent',"curl/7.19.6 (x86_64-redhat-linux-gnu) libcurl/7.19.6 NSS/3.12.4.1
Beta zlib/1.2.3 libidn/1.9 libssh2/1.0"}]
[debug] [<0.59.0>] OAuth Params: []
[debug] [<0.68.0>] didn't find a replication log for https://couchdb.one.ubuntu.com/u%2F0a4%2F330%2F97870%2Fcontacts/
[debug] [<0.68.0>] didn't find a replication log for contacts
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 0.5 seconds due to {error,
conn_failed}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 1.0 seconds due to {error,
worker_is_dead}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 2.0 seconds due to {error,
conn_failed}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 4.0 seconds due to {error,
worker_is_dead}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 8.0 seconds due to {error,
conn_failed}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 16.0 seconds due to {error,
worker_is_dead}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 32.0 seconds due to {error,
conn_failed}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 64.0 seconds due to {error,
worker_is_dead}
[debug] [<0.86.0>] retrying couch_rep_httpc get request in 128.0 seconds due to {error,
conn_failed}
^C

(this typically goes on up to 512 seconds, at which time it finally gives up; meanwhile the
curl POST request hangs)

To nail down the problem further, I then rebuilt Fedora 12's erlang package (which has 0.13b
instead of 0.12b) and tried exactly the same; see the log:

[thomas@otto 0.10.x]$ utils/run 
Apache CouchDB 0.10.0 (LogLevel=debug) is starting.
Configuration Settings ["/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/etc/couchdb/default_dev.ini",
                        "/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/etc/couchdb/local_dev.ini"]:
  [admins] thomas="-hashed-9d17d1c1b6968c2d1cd7e71c24c831b563b3974f,e613da727f909f1aa2a5fd0080ad9a06"
  [couch_httpd_auth] authentication_db="users"
  [couch_httpd_auth] require_valid_user="false"
  [couch_httpd_auth] secret="replace this with a real secret in your local.ini file"
  [couchdb] batch_save_interval="1000"
  [couchdb] batch_save_size="1000"
  [couchdb] database_dir="/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/tmp/lib"
  [couchdb] delayed_commits="true"
  [couchdb] max_attachment_chunk_size="4294967296"
  [couchdb] max_dbs_open="100"
  [couchdb] max_document_size="4294967296"
  [couchdb] os_process_timeout="5000"
  [couchdb] util_driver_dir="/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/src/couchdb/.libs"
  [couchdb] view_index_dir="/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/tmp/lib"
  [daemons] batch_save="{couch_batch_save_sup, start_link, []}"
  [daemons] db_update_notifier="{couch_db_update_notifier_sup, start_link, []}"
  [daemons] external_manager="{couch_external_manager, start_link, []}"
  [daemons] httpd="{couch_httpd, start_link, []}"
  [daemons] query_servers="{couch_query_servers, start_link, []}"
  [daemons] stats_aggregator="{couch_stats_aggregator, start, []}"
  [daemons] stats_collector="{couch_stats_collector, start, []}"
  [daemons] view_manager="{couch_view, start_link, []}"
  [httpd] WWW-Authenticate="Basic realm=\"administrator\""
  [httpd] authentication_handlers="{couch_httpd_oauth, oauth_authentication_handler}, {couch_httpd_auth,
default_authentication_handler}"
  [httpd] bind_address="0.0.0.0"
  [httpd] default_handler="{couch_httpd_db, handle_request}"
  [httpd] port="5984"
  [httpd_db_handlers] _changes="{couch_httpd_db, handle_changes_req}"
  [httpd_db_handlers] _compact="{couch_httpd_db, handle_compact_req}"
  [httpd_db_handlers] _design="{couch_httpd_db, handle_design_req}"
  [httpd_db_handlers] _temp_view="{couch_httpd_view, handle_temp_view_req}"
  [httpd_db_handlers] _view="{couch_httpd_view, handle_db_view_req}"
  [httpd_db_handlers] _view_cleanup="{couch_httpd_db, handle_view_cleanup_req}"
  [httpd_design_handlers] _info="{couch_httpd_db,   handle_design_info_req}"
  [httpd_design_handlers] _list="{couch_httpd_show, handle_view_list_req}"
  [httpd_design_handlers] _show="{couch_httpd_show, handle_doc_show_req}"
  [httpd_design_handlers] _update="{couch_httpd_show, handle_doc_update_req}"
  [httpd_design_handlers] _view="{couch_httpd_view, handle_view_req}"
  [httpd_global_handlers] /="{couch_httpd_misc_handlers, handle_welcome_req, <<\"Welcome\">>}"
  [httpd_global_handlers] _active_tasks="{couch_httpd_misc_handlers, handle_task_status_req}"
  [httpd_global_handlers] _all_dbs="{couch_httpd_misc_handlers, handle_all_dbs_req}"
  [httpd_global_handlers] _config="{couch_httpd_misc_handlers, handle_config_req}"
  [httpd_global_handlers] _log="{couch_httpd_misc_handlers, handle_log_req}"
  [httpd_global_handlers] _oauth="{couch_httpd_oauth, handle_oauth_req}"
  [httpd_global_handlers] _replicate="{couch_httpd_misc_handlers, handle_replicate_req}"
  [httpd_global_handlers] _restart="{couch_httpd_misc_handlers, handle_restart_req}"
  [httpd_global_handlers] _session="{couch_httpd_auth, handle_session_req}"
  [httpd_global_handlers] _sleep="{couch_httpd_misc_handlers, handle_sleep_req}"
  [httpd_global_handlers] _stats="{couch_httpd_stats_handlers, handle_stats_req}"
  [httpd_global_handlers] _user="{couch_httpd_auth, handle_user_req}"
  [httpd_global_handlers] _utils="{couch_httpd_misc_handlers, handle_utils_dir_req, \"/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/share/www\"}"
  [httpd_global_handlers] _uuids="{couch_httpd_misc_handlers, handle_uuids_req}"
  [httpd_global_handlers] favicon.ico="{couch_httpd_misc_handlers, handle_favicon_req, \"/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/share/www\"}"
  [log] file="/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/tmp/log/couch.log"
  [log] level="debug"
  [query_server_config] reduce_limit="true"
  [query_servers] javascript="/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/bin/couchjs_dev
/home/thomas/tmp/couchdb/couchdb/branches/0.10.x/share/server/main.js"
Apache CouchDB has started. Time to relax.
[info] [<0.1.0>] Apache CouchDB has started on http://0.0.0.0:5984/



[debug] [<0.63.0>] 'POST' /_replicate {1,1}
Headers: [{'Accept',"*/*"},
          {'Authorization',"Basic dGhvbWFzOnBhc3M="},
          {'Content-Length',"328"},
          {'Content-Type',"application/x-www-form-urlencoded"},
          {'Host',"otto:5984"},
          {'User-Agent',"curl/7.19.6 (x86_64-redhat-linux-gnu) libcurl/7.19.6 NSS/3.12.4.1
Beta zlib/1.2.3 libidn/1.9 libssh2/1.0"}]
[debug] [<0.63.0>] OAuth Params: []
[debug] [<0.70.0>] didn't find a replication log for https://couchdb.one.ubuntu.com/u%2F0a4%2F330%2F97870%2Fcontacts/
[debug] [<0.70.0>] didn't find a replication log for contacts
[info] [<0.88.0>] source doesn't have _changes, trying _all_docs_by_seq
[debug] [<0.88.0>] unexpected message at changes_feed {ibrowse_async_response,
                                       {1259,582920,243218},
                                       {error,closing_on_request}}
[debug] [<0.88.0>] unexpected message at changes_feed {'EXIT',<0.89.0>,normal}
[info] [<0.63.0>] starting new replication "743520107dc25678800df59476e4140b" at <0.70.0>
[debug] [<0.49.0>] New task status for 743520: https://couchdb.one.ubuntu.com/u%2F0a4%2F330%2F97870%2Fcontacts/
-> contacts: W Processed source update #1
[debug] [<0.49.0>] New task status for 743520: https://couchdb.one.ubuntu.com/u%2F0a4%2F330%2F97870%2Fcontacts/
-> contacts: W Processed source update #6
[info] [<0.70.0>] recording a checkpoint at source update_seq 6
[debug] [<0.70.0>] replication doesn't need a full commit
[debug] [<0.49.0>] New task status for 743520: https://couchdb.one.ubuntu.com/u%2F0a4%2F330%2F97870%2Fcontacts/
-> contacts: Finishing
[info] [<0.63.0>] 192.168.1.12 - - 'POST' /_replicate 200
[debug] [<0.69.0>] 'GET' /_utils/database.html?contacts {1,1}
Headers: [{'Accept',"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},
          {'Accept-Charset',"ISO-8859-1,utf-8;q=0.7,*;q=0.7"},
          {'Accept-Encoding',"gzip,deflate"},
          {'Accept-Language',"en-us,nl-be;q=0.8,en;q=0.6,ca;q=0.4,es;q=0.2"},
          {'Cache-Control',"max-age=0"},
          {'Connection',"keep-alive"},
          {'Cookie',"recent=contacts%2Cnotes%2Cgtd%2Cmanagement%2Cbookmarks%2C; management.view=_design/paired_servers/_view/paired_servers"},
          {'Host',"localhost:5984"},
          {'If-Modified-Since',"Fri, 23 Oct 2009 19:42:00 GMT"},
          {'Keep-Alive',"300"},
          {'Referer',"http://localhost:5984/_utils/index.html"},
          {'User-Agent',"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20091105
Fedora/3.5.5-1.fc11 Firefox/3.5.5"}]
[debug] [<0.69.0>] OAuth Params: [{"contacts",[]}]
[info] [<0.69.0>] 127.0.0.1 - - 'GET' /_utils/database.html?contacts 304

This time it did work.

My conclusion is that for this feature to work, couchdb needs erlang 0.13b

With erlang 0.12b, it fails non-intuitively and there is no way for desktopcouch to figure
out that erlang has a bug internally.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message