You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Paul Joseph Davis (JIRA)" <ji...@apache.org> on 2010/10/09 21:45:29 UTC

[jira] Updated: (COUCHDB-585) couchdb 0.10.0 with erlang 12b does not properly support replication from https:// couchdb

     [ https://issues.apache.org/jira/browse/COUCHDB-585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Joseph Davis updated COUCHDB-585:
--------------------------------------

    Skill Level: Regular Contributors Level (Easy to Medium)

> 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.