Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Bug
-
None
-
None
-
None
Description
CouchDB has intermittent 30 delays processing requests when CouchDB is installed in a docker image. This occurs for PUT, POST and GET operations.
The following is a shell script used to replicate the error:
(the database insert_test was created manually)
Problem usually occurs after 100 to 300 inserts during testing.
--------------------------
#!/bin/bash
for i in
do
echo "Test insert $i"
curl -H 'Content-Type: application/json' \
-X POST http://127.0.0.1:15984/insert_test \
-d '
'
done
--------------------------
The following is an extract of the log showing a 30 second delay on a POST operation.
[notice] 2017-05-03T20:46:29.549696Z nonode@nohost <0.17192.22> de7d93ef52 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 4
[notice] 2017-05-03T20:47:00.397842Z nonode@nohost <0.17198.22> 8d31c7ad19 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 30838
[notice] 2017-05-03T20:47:00.414558Z nonode@nohost <0.17808.22> f75a66f6cb 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 3
[notice] 2017-05-03T20:47:00.437651Z nonode@nohost <0.17809.22> 0c53e2bbcf 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 13
The following is the default.ini used:
-----------------------------------------------
; CouchDB Configuration Settings
; Custom settings should be made in this file. They will override settings
; in default.ini, but unlike changes made to default.ini, this file won't be
; overwritten on server upgrade.
[chttpd]
bind_address = 0.0.0.0
[couchdb]
; Specify the location of the database in container.
; Optionally, these directories can be mounted in the host via docker.
database_dir = /opt/couchdb/data/
view_index_dir = /opt/couchdb/data/
uri_file = /opt/couchdb/data/couch.uri
; only allow the admin user to connect
; Uncomment the following statement to enable admin user security.
; default_security = admin_only
; allow delayed commits since peer manages savepoints and flushing to disk
delayed_commits = true
[cluster]
; peer maintains a single replica
n = 1
; adjust q to set the level of parallelism locally
; recommended to have no more than 10 million documents/shard (q)
; for 100 million documents, q=10 – at a minimum
q = 8
[log]
writer = file
file = /opt/couchdb/logs/couchdb.log
level = info
; Uncomment the following two statements to enable admin user security.
; [httpd]
; www-authenticate = Basic realm="administrator"
[couch_httpd_auth]
; Uncomment the following statement to enable admin user security.
; require_valid_user = true
iterations = 1000 ; iterations for password hashing
; Uncomment the following two statements to enable admin user security.
; [admins]
; admin = admin
[attachments]
compressible_types = text/*, application/javascript, application/json, application/xml, application/octet-stream
-----------------------------------------------