)]}'
{
  "log": [
    {
      "commit": "21c8d37ac6ee1a7fed1de1f54f95a4d3cd9f5248",
      "tree": "325f01a45f4d7dedc0c1b5431c782050f4bf864b",
      "parents": [
        "f09e3210158feb3e193809e8fff24c0df0171c2e"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Mar 23 14:55:48 2017 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Mar 23 14:55:48 2017 -0500"
      },
      "message": "Remove PSE references from compaction test\n\nI accidentally included part of the PSE work when I extracted this\npatch. Should just be the minor tweak to access the updater pid\ndirectly.\n"
    },
    {
      "commit": "f09e3210158feb3e193809e8fff24c0df0171c2e",
      "tree": "db4229ddee7b1855c0273addc3a4af4dd70f7d7b",
      "parents": [
        "016e1aa0ef4db0bbf47a28a2cce48b85200702d6"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Feb 02 12:33:55 2017 -0600"
      },
      "committer": {
        "name": "Jan Lehnardt",
        "email": "jan@apache.org",
        "time": "Thu Mar 23 14:23:30 2017 +0100"
      },
      "message": "Fix compaction daemon tests\n\nThere was a race condition in the compaction daemon tests where the\ncompaction daemon would think a compaction had finished but the test\nwould grab file size info before the compaction had swapped out which\nbreaks the assertion that fragmentation was reduced.\n\nThere was also a slight error in calculating the fragmentation in the\ntest suite by using the wrong size value.\n"
    },
    {
      "commit": "016e1aa0ef4db0bbf47a28a2cce48b85200702d6",
      "tree": "c7d58be9ca45061f2a1dc8f4c158c92c400fe39a",
      "parents": [
        "c50a8cda6b0b669dbc987ebd76362620077822fe"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 14:06:25 2017 -0400"
      },
      "committer": {
        "name": "Benjamin Bastian",
        "email": "benjamin.bastian@gmail.com",
        "time": "Fri Mar 17 12:16:40 2017 -0700"
      },
      "message": "Implement an ETS-basd couch_lru\n\nUse a monotonicaly incrementing counter instead of `erlang:now()`. We don\u0027t\ntechnically need to time-based functionality and just want to know relative\ninsertion order.\n\nInstead of gb_tree, use an ordered_set ETS. This keep items sorted by their\nupdate order, with most recent ones at the bottom.\n\nAn set ETS replaces the dictionary which maintains a mapping from database\nnames to their entry in updates table.\n\nInterface is the same as the old couch_lru, so it is a direct swap in.\n\nThanks to Eric Avdey for intial version of test module.\n\nCOUCHDB-3326\n"
    },
    {
      "commit": "c50a8cda6b0b669dbc987ebd76362620077822fe",
      "tree": "9647b6f9e116cac204ea88e9cdb79c1d1d664711",
      "parents": [
        "2d984b59ed6886a179fd500efe9780a0d0ad62e3",
        "7e48bda4459cc8e4dbb8bd86966792f533571d83"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 22:34:25 2017 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 22:34:25 2017 -0400"
      },
      "message": "Merge branch \u0027couchdb-2992\u0027\n\nCloses #235\n"
    },
    {
      "commit": "7e48bda4459cc8e4dbb8bd86966792f533571d83",
      "tree": "9647b6f9e116cac204ea88e9cdb79c1d1d664711",
      "parents": [
        "2d984b59ed6886a179fd500efe9780a0d0ad62e3"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Mar 13 02:33:57 2017 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 22:33:22 2017 -0400"
      },
      "message": "Allow limiting maximum document body size\n\nConfiguration is via the `couchdb.max_document_size`. In the past that\nwas implemented as a maximum http request body size and this finally implements\nit by actually checking a document\u0027s body size.\n\nCOUCHDB-2992\n"
    },
    {
      "commit": "2d984b59ed6886a179fd500efe9780a0d0ad62e3",
      "tree": "a4de6be57a84ce80dcbdfc3848cfe2529e43f13f",
      "parents": [
        "92c25a98666e59ca497fa5732a81e771ff52e07d"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Mar 15 18:13:09 2017 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Mar 15 18:15:03 2017 +0000"
      },
      "message": "fix compiler and dialyzer warnings\n"
    },
    {
      "commit": "92c25a98666e59ca497fa5732a81e771ff52e07d",
      "tree": "7651fc25e1cfa6435e4a4699a5a3cb2704640c8d",
      "parents": [
        "5685f172d232700412e9c34dba0407c5acebe8f8"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Mar 14 17:40:21 2017 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Mar 14 23:59:11 2017 +0000"
      },
      "message": "Add sys_dbs to the LRU\n\nCOUCHDB-3325\n"
    },
    {
      "commit": "5685f172d232700412e9c34dba0407c5acebe8f8",
      "tree": "23892318d9ca35411b5f42ef178da1fe3d4328af",
      "parents": [
        "cb3b35a736ccbb6cd43a9487108d1ab63197d064",
        "1f152daaac23dc96132139fb532786f77becdd64"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Mar 08 13:22:30 2017 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Mar 08 13:22:30 2017 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:70794-fix-initial-acc-for-builtin_sum_rows\u0027\n\nThis closes #234\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "1f152daaac23dc96132139fb532786f77becdd64",
      "tree": "23892318d9ca35411b5f42ef178da1fe3d4328af",
      "parents": [
        "cb3b35a736ccbb6cd43a9487108d1ab63197d064"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Mar 08 12:24:46 2017 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Mar 08 12:24:46 2017 -0800"
      },
      "message": "Fix initial accumulator value for builtin_sum_rows\n\nThis a fixup for https://github.com/apache/couchdb-couch/pull/229.\nThe initial value for accumulator suppose to be 0. Since the result of\nsum and count is integer. The problem was discovered by dialyzer.\n\nCOUCHDB-3305\n"
    },
    {
      "commit": "cb3b35a736ccbb6cd43a9487108d1ab63197d064",
      "tree": "7baa8140810dd046190effba3f5a26e985377de0",
      "parents": [
        "9d8be06e4ba823165f385667a360e7c050427918",
        "9f9c48221a96452f36790aa8dd52c557d65b9cde"
      ],
      "author": {
        "name": "Tony Sun",
        "email": "tony.sun@cloudant.com",
        "time": "Tue Mar 07 19:41:17 2017 -0800"
      },
      "committer": {
        "name": "Tony Sun",
        "email": "tony.sun@cloudant.com",
        "time": "Tue Mar 07 19:41:17 2017 -0800"
      },
      "message": "Merge branch \u002770794-reduce-sum-errors\u0027\n\nCloses #229\n"
    },
    {
      "commit": "9f9c48221a96452f36790aa8dd52c557d65b9cde",
      "tree": "7baa8140810dd046190effba3f5a26e985377de0",
      "parents": [
        "9d8be06e4ba823165f385667a360e7c050427918"
      ],
      "author": {
        "name": "Tony Sun",
        "email": "tony.sun@cloudant.com",
        "time": "Tue Feb 21 14:18:49 2017 -0800"
      },
      "committer": {
        "name": "Tony Sun",
        "email": "tony.sun@cloudant.com",
        "time": "Tue Mar 07 19:31:20 2017 -0800"
      },
      "message": "Return error row instead of crashing\n\nWhen input is invalid for built in reducers, we return an error row\ninstead of crashing. Thanks to davisp for providing the elegant\nsolution.\n\nCOUCHDB-3305\n"
    },
    {
      "commit": "9d8be06e4ba823165f385667a360e7c050427918",
      "tree": "693a0f7b4b608e30ec4e6b94c69ba79bdfa6d98d",
      "parents": [
        "f99e30c38997e33538493204d5d58ea1a0f62de8",
        "0420f404a7ba2c5c5964f2ae5a87cda1c2178387"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Mar 07 20:29:33 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Mar 07 20:29:33 2017 -0500"
      },
      "message": "Merge branch \u002764229-add-new-request-parameter\u0027\n\nCloses #233\n"
    },
    {
      "commit": "0420f404a7ba2c5c5964f2ae5a87cda1c2178387",
      "tree": "693a0f7b4b608e30ec4e6b94c69ba79bdfa6d98d",
      "parents": [
        "f99e30c38997e33538493204d5d58ea1a0f62de8"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Mar 07 19:03:32 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Mar 07 19:03:32 2017 -0500"
      },
      "message": "Rename max_document_size to max_http_request_size\n\n`max_document_size` is implemented as `max_http_request_size`. There was no\nreal check for document size. In some cases the implementation was close enough\nof a proxy (PUT-ing and GET-ing single docs), but in some edge cases, like\n_bulk_docs requests the discrepancy between request size and document size\ncould be rather large.\n\nThe section was changed accordingly from `couchdb` to `httpd`. `httpd` was\nchosen as it applies to both clustered as well as local interface.\n\nThere is a parallel effort to implement an actual max_document_size check. The\nset of commit should be merged close enough together to allow for a backwards\ncompatible transition.\n\nCOUCHDB-2992\n"
    },
    {
      "commit": "f99e30c38997e33538493204d5d58ea1a0f62de8",
      "tree": "649795e5311a06189a9ff05f839be020295c2d51",
      "parents": [
        "63ef337475a266379c7208f52f827980e69d1d1b",
        "f706bb87be71006875c2fbaed3a14a18c79396f8"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Mar 06 14:06:09 2017 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Mar 06 14:06:09 2017 +0000"
      },
      "message": "Merge remote-tracking branch \u0027cloudant/3318-bypass-vhosts\u0027\n"
    },
    {
      "commit": "f706bb87be71006875c2fbaed3a14a18c79396f8",
      "tree": "192846da4510d405a6ee4823ad39b9a0a5424cc6",
      "parents": [
        "38d51803aa3e51be3b15a42b3cbc1f922e386ed5"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Mar 06 12:05:33 2017 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Mar 06 12:05:33 2017 +0000"
      },
      "message": "Efficiently bypass vhost handling if there are none\n\nCOUCHDB-3318\n"
    },
    {
      "commit": "63ef337475a266379c7208f52f827980e69d1d1b",
      "tree": "78f0ed0311cd76071df3d06047e4feff3abb6568",
      "parents": [
        "0080f15e9bb287eeeaca8479c5a3a5d35306bbcf"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Mar 02 21:24:52 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Mar 02 21:24:52 2017 -0500"
      },
      "message": "Fix `badarith` error in couch_db:get_db_info call\n\nWhen folding we account for a previous `null`, `undefined`, or a number. However\nbtree:size/1 returns 0, `nil` or a number.\n\nSwitched `undefined` to `nil`. Couldn\u0027t find where btree:size would ever return\n`undefined`, it seems we meant to use `nil` instead.\n\nCOUCHDB-3316\n"
    },
    {
      "commit": "0080f15e9bb287eeeaca8479c5a3a5d35306bbcf",
      "tree": "78c55569f114361e2e6d5a6e7365337adf6d2085",
      "parents": [
        "38d51803aa3e51be3b15a42b3cbc1f922e386ed5",
        "ff9fb7112ee5250af01e1b38c8cfa9caed152ae7"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 01 15:15:46 2017 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 01 15:15:46 2017 -0600"
      },
      "message": "Merge branch \u0027COUCHDB-3298-improve-couch-btree-chunkify\u0027\n"
    },
    {
      "commit": "38d51803aa3e51be3b15a42b3cbc1f922e386ed5",
      "tree": "f2252611a9efab76a5724c441344b7047b00c981",
      "parents": [
        "66292dbdfee1a6d5981085d7e50751feacf860c8",
        "8fc85c8653dcec640717d8a51ea29a28194cbe4a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Tue Feb 28 13:51:29 2017 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Tue Feb 28 13:51:29 2017 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:add_sysdb_callback_once_per_db\u0027\n\nThis closes #230\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "8fc85c8653dcec640717d8a51ea29a28194cbe4a",
      "tree": "f2252611a9efab76a5724c441344b7047b00c981",
      "parents": [
        "66292dbdfee1a6d5981085d7e50751feacf860c8"
      ],
      "author": {
        "name": "brkolla",
        "email": "bkolla@cloudant.com",
        "time": "Sun Feb 19 16:33:39 2017 -0500"
      },
      "committer": {
        "name": "brkolla",
        "email": "bkolla@cloudant.com",
        "time": "Tue Feb 28 11:40:00 2017 -0500"
      },
      "message": "Add sys db callbacks only once per db open\n\nCurrently we are adding the sys db callbacks for every request instead of\nonce while opening the db. This fix will ensure that we will only add the\nsys db call backs once while opening the db.\n\nCOUCHDB-3307\n"
    },
    {
      "commit": "ff9fb7112ee5250af01e1b38c8cfa9caed152ae7",
      "tree": "fbdbf36bc3cf0a23abb77ceaf47fedada3362489",
      "parents": [
        "8556adbb98e79a09ec254967ee6acf3bef8d1fb6"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sat Feb 11 15:29:14 2017 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sat Feb 11 15:29:14 2017 -0600"
      },
      "message": "Ensure multi-item chunks in couch_btree:chunkify/1\n\nIf the last element of a chunk has a huge reduction it was possible to\nreturn a btree node that had a single key. This prevents the edge case\nby forcing it into the previous chunk. Without this we can end up with a\ncase where a path in the tree can extend for many levels with only a\nsingle key in each node.\n\nCOUCHDB-3298\n"
    },
    {
      "commit": "8556adbb98e79a09ec254967ee6acf3bef8d1fb6",
      "tree": "b07ec20c2fb61ae5a7014d286bee64167f9ac79e",
      "parents": [
        "bbbd53223ea6c0ea8ee83971ca2763c7a70cae36"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sat Feb 11 15:26:26 2017 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sat Feb 11 15:26:26 2017 -0600"
      },
      "message": "Make couch_btree:chunkify/1 prefer fewer chunks\n\nThis changes couch_btree:chunkify/1 to produce fewer larger chunks\nrather than creating chunks of even-ish size.\n\nCOUCHDB-3298\n"
    },
    {
      "commit": "66292dbdfee1a6d5981085d7e50751feacf860c8",
      "tree": "ea60dca3258c8d1f9fcc4e063843a33bf4fbbf40",
      "parents": [
        "159970ba53b6acab0fdd3a3e9b6a266b343ff0ba",
        "2a263f84db62e4849a41322b92588c6893169198"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Feb 09 15:36:53 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Feb 09 15:36:53 2017 -0500"
      },
      "message": "Merge branch \u0027couchdb-3293\u0027\n\nCloses #226\n"
    },
    {
      "commit": "2a263f84db62e4849a41322b92588c6893169198",
      "tree": "5e291b1fa2a509ec714a083723fdfb77841568bc",
      "parents": [
        "bbbd53223ea6c0ea8ee83971ca2763c7a70cae36"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Feb 09 10:13:42 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Feb 09 10:13:42 2017 -0500"
      },
      "message": "Allow limiting length of document ID\n\nPreviously it was not possibly to define a maxum document ID size. That meant\nlarge document ID would hit various limitations and corner cases. For example,\nlarge document IDs could be inserted via a _bulk_docs endpoint but then trying\nto insert the same document via a single HTTP method like PUT would fail\nbecause of a limitation in Mochiweb\u0027s HTTP parser.\n\nLet operators specify a maxium document ID length via the\n\n```\ncouchdb.max_document_id_length \u003d infinity | Integer\n```\n\nconfiguration.\n\nThe default value of `infinity` keeps the current behavior where document\nID length is not checked.\n\nCOUCHDB-3293\n"
    },
    {
      "commit": "159970ba53b6acab0fdd3a3e9b6a266b343ff0ba",
      "tree": "009c76655122de5fae067bd5e88ac5a62385ef68",
      "parents": [
        "bbbd53223ea6c0ea8ee83971ca2763c7a70cae36",
        "9e4a5cd921c55697f066a61c59ae8646222f06ea"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 08 12:26:29 2017 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 08 12:26:29 2017 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:add-test_requet_delete_3\u0027\n\nThis closes #227\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "9e4a5cd921c55697f066a61c59ae8646222f06ea",
      "tree": "009c76655122de5fae067bd5e88ac5a62385ef68",
      "parents": [
        "9c68ae361be3932c860c540b5b598a454caa65e4"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 08 12:05:17 2017 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 08 12:25:45 2017 -0800"
      },
      "message": "refactor to use greater arity functions\n"
    },
    {
      "commit": "9c68ae361be3932c860c540b5b598a454caa65e4",
      "tree": "3b4929024d3920ca354bfe77e28be6b0ee9c8020",
      "parents": [
        "bbbd53223ea6c0ea8ee83971ca2763c7a70cae36"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 08 10:47:58 2017 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 08 12:25:45 2017 -0800"
      },
      "message": "Add test_request:delete/3\n"
    },
    {
      "commit": "bbbd53223ea6c0ea8ee83971ca2763c7a70cae36",
      "tree": "eca06ef55b69a940cf803814f0e17163635963a5",
      "parents": [
        "c73a8831b23659d4a12423fe907a16ec5e0383f0",
        "bf12a7a3336bd438493e7db1d090160f1c1a09f3"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Feb 01 14:48:07 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Feb 01 14:48:07 2017 -0500"
      },
      "message": "Merge branch \u0027couchdb-3284-remove-dead-code\u0027\n\nCloses #225\n"
    },
    {
      "commit": "bf12a7a3336bd438493e7db1d090160f1c1a09f3",
      "tree": "eca06ef55b69a940cf803814f0e17163635963a5",
      "parents": [
        "c73a8831b23659d4a12423fe907a16ec5e0383f0"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Feb 01 14:42:59 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Feb 01 14:42:59 2017 -0500"
      },
      "message": "Remove dead code from couch_file\n\nThis code was left over after removing 8kB read-ahead\n\nhttps://github.com/apache/couchdb-couch/pull/223/commits/d52a5335d930d11ade4953c8576d22f55872ff6f\n\nCOUCHDB-3284\n"
    },
    {
      "commit": "c73a8831b23659d4a12423fe907a16ec5e0383f0",
      "tree": "b70fa2b4cde5e390ad49115da58dfae15646d165",
      "parents": [
        "e285b34a7b7156c3fae8ddc4594981f57e265dc4",
        "d52a5335d930d11ade4953c8576d22f55872ff6f"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Jan 31 10:52:47 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Jan 31 10:52:47 2017 -0500"
      },
      "message": "Merge branch \u0027couchdb-3284\u0027\n\ncloses #223\n"
    },
    {
      "commit": "e285b34a7b7156c3fae8ddc4594981f57e265dc4",
      "tree": "5e058cecd1dbba969573c8fbe62110e47f15fa29",
      "parents": [
        "604edd10e28e144c57826630b1d92ab41a9377b9",
        "6412412ce76e42adb7b1f899f7eebc704b8d6416"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Jan 31 09:27:28 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Jan 31 09:27:28 2017 -0400"
      },
      "message": "Merge remote branch \u0027cloudant:82197-fix-validation_func-case_clause\u0027\n\nThis closes #224\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "6412412ce76e42adb7b1f899f7eebc704b8d6416",
      "tree": "5e058cecd1dbba969573c8fbe62110e47f15fa29",
      "parents": [
        "604edd10e28e144c57826630b1d92ab41a9377b9"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jan 30 15:27:59 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jan 30 15:27:59 2017 -0400"
      },
      "message": "Don\u0027t crash on unexpected validation\u0027s error type\n\nValidation function can throw JSON with error\ntype different than forbidden or unauthorized.\n\nThis patch makes couch return unknown_error\ninstead of crashing query server.\n\nCOUCHDB-3286\n"
    },
    {
      "commit": "d52a5335d930d11ade4953c8576d22f55872ff6f",
      "tree": "cbfb4e97644de2106692e291adc264e7f9dd4c21",
      "parents": [
        "604edd10e28e144c57826630b1d92ab41a9377b9"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Fri Jan 27 12:04:01 2017 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Fri Jan 27 16:49:42 2017 -0500"
      },
      "message": "Remove 8kB read-ahead from couch_file\n\nIn production it showed an increased input Erlang IO and increased binary\nmemory usage.\n\nSee attached file in Jira ticket:\n\nCOUCHDB-3284\n"
    },
    {
      "commit": "604edd10e28e144c57826630b1d92ab41a9377b9",
      "tree": "ccfa669ab6aea48875601444b75498c2bf5b3eee",
      "parents": [
        "3188736c62a5d5c0a2e3079bb41fb95f94d295cf"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Jan 19 23:12:00 2017 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Jan 19 23:12:36 2017 +0000"
      },
      "message": "Reset EOF if a partial write was possible\n\nWe can\u0027t know if one or more bytes were written by a file:write/2 call\nthat results in an error and so it is not correct to leave #file.eof\nat its original value. In the event of error, use file:position(Fd,\neof) to find the new, true length of the file, and update #file{}\naccordingly.\n\nCOUCHDB-3274\n"
    },
    {
      "commit": "3188736c62a5d5c0a2e3079bb41fb95f94d295cf",
      "tree": "be585d8993d7d119e160f5e8ae70f1370f5a8b3c",
      "parents": [
        "eaff862e6a806808aff817a665d87c1e95418120",
        "8fd7d52093dceb87ac6535dae21a2b006d86018c"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Jan 18 11:34:00 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Jan 18 11:34:00 2017 -0400"
      },
      "message": "Merge remote branch \u0027cloudant:validate-count-in-uuids\u0027\n\nThis closes #221\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "8fd7d52093dceb87ac6535dae21a2b006d86018c",
      "tree": "be585d8993d7d119e160f5e8ae70f1370f5a8b3c",
      "parents": [
        "5d7930461f420683276dddc02a7fd4410c1b5439"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Jan 18 09:55:19 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Jan 18 10:32:26 2017 -0400"
      },
      "message": "Return \"Bad Request\" when count in /_uuids exceeds max\n"
    },
    {
      "commit": "5d7930461f420683276dddc02a7fd4410c1b5439",
      "tree": "77a52a47ad92ddecf8cbc90a8324cc731d42c51e",
      "parents": [
        "eaff862e6a806808aff817a665d87c1e95418120"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Jan 18 09:44:15 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Jan 18 10:32:19 2017 -0400"
      },
      "message": "Validate that count in /_uuids is positive\n"
    },
    {
      "commit": "eaff862e6a806808aff817a665d87c1e95418120",
      "tree": "4b3eb086243f814a3a80afb3ddd958075eb4a348",
      "parents": [
        "bbc32e160562fc2f6233b6f583cdef28ced8ed9f",
        "2994cded4968fa3fbf9f6178c224f3b1f62f3ea5"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Jan 06 10:06:44 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Jan 06 10:06:44 2017 -0400"
      },
      "message": "Merge remote branch \u0027cloudant:fix-views_tests\u0027\n\nThis closes #220\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "2994cded4968fa3fbf9f6178c224f3b1f62f3ea5",
      "tree": "4b3eb086243f814a3a80afb3ddd958075eb4a348",
      "parents": [
        "bbc32e160562fc2f6233b6f583cdef28ced8ed9f"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Jan 05 17:30:00 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Jan 05 21:41:55 2017 -0400"
      },
      "message": "Fix couchdb_views tests\n\nPrevious commit made couch_file to monitor db_pid\ninstead of linking ot it, so number of monitored_by\nfor couch_db process, checked in couchdb_views_tests,\nchanged.\n\nCOUCHDB-3259\n"
    },
    {
      "commit": "bbc32e160562fc2f6233b6f583cdef28ced8ed9f",
      "tree": "bc3a7549fd3f56538231e00c9939d6b1cb353c71",
      "parents": [
        "b8a06c319aab95802c489383c19b40926269b896"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Dec 20 22:32:44 2016 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Dec 21 11:32:46 2016 +0000"
      },
      "message": "Don\u0027t trap exits in couch_file\n\nIt turns out to be impossible to trap the exit message from the parent\nprocess in a gen_server, which is the only reason couch_file traps\nexits in the first place (i.e, this has never worked).\n\nThis commit also changes the hot upgrade code to handle this\ntransition (but not the previous one).\n\nCOUCHDB-3259\n"
    },
    {
      "commit": "b8a06c319aab95802c489383c19b40926269b896",
      "tree": "8ecee505f3570f10d419ee7e798040c8e0c49bdb",
      "parents": [
        "1df631aeb741daaa1813bf6bf2f4cbf0b84af4a2",
        "58382d441e5ed499dce5904229d176068c17a5bc"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Dec 15 09:47:27 2016 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Dec 15 09:47:27 2016 -0600"
      },
      "message": "Merge branch \u0027COUCHDB-3255-fix-new-revid\u0027\n"
    },
    {
      "commit": "58382d441e5ed499dce5904229d176068c17a5bc",
      "tree": "8ecee505f3570f10d419ee7e798040c8e0c49bdb",
      "parents": [
        "1df631aeb741daaa1813bf6bf2f4cbf0b84af4a2"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Dec 13 17:30:46 2016 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Dec 14 10:14:24 2016 -0600"
      },
      "message": "Make revision generation deterministic\n\nThis removes the influence of the attachment disk information when\ngenerating revisions when a document is being recreated (ie, it existed\nonce but has been deleted).\n\nBig thanks to @tonysun83 for getting a reproducer as well as the test\nincluded with this PR.\n\nCOUCHDB-3255\n"
    },
    {
      "commit": "1df631aeb741daaa1813bf6bf2f4cbf0b84af4a2",
      "tree": "3bf37a5399a574ddec2ebe9a208bf34056af9aae",
      "parents": [
        "b83f1a77eba40c937fd83e896345ab56438ef616",
        "87b01e84e7e9d884a0f020a11fe530035be17614"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Dec 13 10:07:48 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Dec 13 10:07:48 2016 -0400"
      },
      "message": "Merge remote branch \u0027cloudant:add-filter-changes-test\u0027\n\nThis closes #213\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "87b01e84e7e9d884a0f020a11fe530035be17614",
      "tree": "3bf37a5399a574ddec2ebe9a208bf34056af9aae",
      "parents": [
        "3eeda46552cd3798ed1430200537944b896572e6"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Nov 11 20:50:37 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Dec 13 10:05:59 2016 -0400"
      },
      "message": "Add tests for filter by filter function\n"
    },
    {
      "commit": "3eeda46552cd3798ed1430200537944b896572e6",
      "tree": "d24d0422a0d2b1ada08696b4296efacfdb2223c6",
      "parents": [
        "8adf7d973ae6d336ccb081b087fe65884eb34d7d"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Nov 11 20:38:50 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Dec 13 10:05:59 2016 -0400"
      },
      "message": "Reduce duplicated code, rename vars consistently\n"
    },
    {
      "commit": "8adf7d973ae6d336ccb081b087fe65884eb34d7d",
      "tree": "d2561770448674e5d7f94ae36d3b820a705b142f",
      "parents": [
        "b83f1a77eba40c937fd83e896345ab56438ef616"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Nov 11 18:53:23 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Dec 13 10:05:59 2016 -0400"
      },
      "message": "Prevent consumer from hiding error messages\n"
    },
    {
      "commit": "b83f1a77eba40c937fd83e896345ab56438ef616",
      "tree": "2b28c9aa593420334075683ee7d280d58664fb36",
      "parents": [
        "1659fda5dd1808f55946a637fc26c73913b57e96",
        "e8a97f52b0cf0d0408d5a4ea625644684edaa6f5"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Dec 07 11:10:36 2016 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Dec 07 11:10:36 2016 -0600"
      },
      "message": "Merge branch \u00273251-remove-filename-rootname\u0027\n"
    },
    {
      "commit": "e8a97f52b0cf0d0408d5a4ea625644684edaa6f5",
      "tree": "2b28c9aa593420334075683ee7d280d58664fb36",
      "parents": [
        "1659fda5dd1808f55946a637fc26c73913b57e96"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Dec 06 13:37:45 2016 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Dec 06 13:37:45 2016 -0600"
      },
      "message": "Remove use of filename:rootname/1\n\nIt turns out that filename:rootname/1 is fairly expensive. Given that we\ncall it millions of times when doing database name validation it adds up\nsignificantly. This is a fairly easy optimization to just use binary\nmatching instead.\n\nCOUCHDB-3251\n"
    },
    {
      "commit": "1659fda5dd1808f55946a637fc26c73913b57e96",
      "tree": "09b03152fd5ecd06d8298dc8c431a1450171b8ab",
      "parents": [
        "54890e1b8f1d44225ed559ec53f7bf1f4402435b"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Nov 30 12:26:56 2016 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Nov 30 14:15:38 2016 -0500"
      },
      "message": "Make couchjs -S option take effect\n\nPreviously it was used to set JS context\u0027s stack chunk size.\n\nInstead, to be effective it should set max GC size of the runtime.\n\nStack chunk size was set to the recommended value: 8K\n\nThis brings back an accidentally reverted commit:\n\nhttps://github.com/apache/couchdb-couch/commit/62dafe81e13d7f8e27e95057e65f76d534aa2313\n\nby @tilgovi\n\nReference:\n\nhttps://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/JSAPI_reference/JS_NewContext\n\nCOUCHDB-3245\n"
    },
    {
      "commit": "54890e1b8f1d44225ed559ec53f7bf1f4402435b",
      "tree": "59e67ad0ff9f65c875c8a03a5964bcbda1c3caec",
      "parents": [
        "ac698562b5e50711ecf35a04e09713d703d917ce"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Nov 23 15:20:11 2016 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Nov 23 15:20:11 2016 +0000"
      },
      "message": "Handle open_result message that arrives after the delete\n\nOpening a database is asynchronous, therefore it\u0027s possible for the\ndatabase to have been deleted before the open is complete. The\nopen_result code assumes this doesn\u0027t happen, so when it does,\ncouch_server crashes, taking the couch_dbs ETS table with it.\n\nExplicitly handle the case and keep on keeping on.\n\nCOUCHDB-3241\n"
    },
    {
      "commit": "ac698562b5e50711ecf35a04e09713d703d917ce",
      "tree": "81810fcfb91d5bb2afbd51b049cd4f6421aaa72b",
      "parents": [
        "8f53c1fc97f36dc88c150768d1544d1fbf8d675e",
        "2f26dd234e08c8381fd5177ed43c9e1cefd630b0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 11 16:22:24 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 11 16:22:24 2016 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:71810-handle-errors-terms-from-fabric\u0027\n\nThis closes #206\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "2f26dd234e08c8381fd5177ed43c9e1cefd630b0",
      "tree": "81810fcfb91d5bb2afbd51b049cd4f6421aaa72b",
      "parents": [
        "8f53c1fc97f36dc88c150768d1544d1fbf8d675e"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Oct 13 14:56:19 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 11 16:19:19 2016 -0800"
      },
      "message": "Add test suite for handling errors from fabric\n\nCOUCHDB-3195\n"
    },
    {
      "commit": "8f53c1fc97f36dc88c150768d1544d1fbf8d675e",
      "tree": "41a32c7188ecd13a4eb4e5042034a822e4397845",
      "parents": [
        "7dbc670d65960d58f3a164819be2bbbc4e7a5fec",
        "5763fd772e1dad300cbe66a7b8c48d62bd0417e6"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 11 06:34:25 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 11 06:34:25 2016 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:78142-allow-user-to-correct-invalid-user-docs\u0027\n\nThis closes #211\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "5763fd772e1dad300cbe66a7b8c48d62bd0417e6",
      "tree": "41a32c7188ecd13a4eb4e5042034a822e4397845",
      "parents": [
        "7dbc670d65960d58f3a164819be2bbbc4e7a5fec"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 10 15:02:51 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 10 16:59:37 2016 -0800"
      },
      "message": "Allow fixing users\u0027 documents\n\nAllow adding missing fields:\n- type\n- roles\n\nAllow update of the type field from incorrect value to the correct one\n(currently it suppose to have value \u0027user\u0027).\n\nCOUCHDB-3231\n"
    },
    {
      "commit": "7dbc670d65960d58f3a164819be2bbbc4e7a5fec",
      "tree": "0008a83f3541e7b28bcd3bfe78e054136451bb20",
      "parents": [
        "b4cd6709e98ad3034f482b7c266e4533cce4b891",
        "8ea01dd6bd7e0f47ec72ec63bd79d20068f467e8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 10 09:51:47 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 10 09:51:47 2016 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:75431-truncate-revs-to-revs_limit\u0027\n\nThis closes #205\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "8ea01dd6bd7e0f47ec72ec63bd79d20068f467e8",
      "tree": "0008a83f3541e7b28bcd3bfe78e054136451bb20",
      "parents": [
        "b4cd6709e98ad3034f482b7c266e4533cce4b891"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Oct 13 10:27:25 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 10 09:50:47 2016 -0800"
      },
      "message": "Truncate revs returned from couch_db:open_doc_revs\n\nReturn max revs_limit revisions from couch_db:open_doc_revs.\n\nCOUCHDB-3193\n"
    },
    {
      "commit": "b4cd6709e98ad3034f482b7c266e4533cce4b891",
      "tree": "efe5f524d87a2295fdbf21c1df66799825bfc100",
      "parents": [
        "bd64fa170c42cf0047ec47e2691d473ecfcdd3c6"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Thu Jun 02 17:04:17 2016 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Nov 09 17:13:12 2016 -0500"
      },
      "message": "Add optional `fields` to change feed selectors\n\nWhen using selectors with `include_docs\u003dtrue` can specify an optional fields\narray in the POST request JSON body.\n\nEach element in the array can be a json field (or even a key path\nspecified as field1.field2...). Resulting documents will contain only the\nspecified document fields.\n\nFor example:\n`\nhttp://.../d1/_changes?filter\u003d_selector\u0026include_docs\u003dtrue\n\n{\n  \"selector\": {\"z\" : {\"$gte\" : 1} }, \"fields\": [\"field1\", \"field2\"]\n\n}\n`\nWill first select only document with \"z\" value \u003e\u003d 1, then will return only field1 and field2 in documents.\n\n{ \"field1\": \"field1value\", \"field2\": \"field2value\"}\n\n(This requires a companion pr in fabric to work)\n\nJira: COUCHDB-2988\n"
    },
    {
      "commit": "bd64fa170c42cf0047ec47e2691d473ecfcdd3c6",
      "tree": "b42d56796accbd7d9892798efc858f70ee1ed860",
      "parents": [
        "189af37a8b1c9b7df102f9a622061094b3790122",
        "9c98070cc91bd4064ab158f60b7356fb21459acf"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Mon Nov 07 10:15:02 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Mon Nov 07 10:15:02 2016 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:log_filepath_on_errors\u0027\n\nThis closes #210\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "9c98070cc91bd4064ab158f60b7356fb21459acf",
      "tree": "b42d56796accbd7d9892798efc858f70ee1ed860",
      "parents": [
        "189af37a8b1c9b7df102f9a622061094b3790122"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 03 09:05:00 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Nov 03 11:41:44 2016 -0700"
      },
      "message": "Include file_path on errors from couch_file\n\nAdd PathFile as part of a reason for following errors:\n - read_beyond_eof\n - exceed_pread_limit exceptions\n"
    },
    {
      "commit": "189af37a8b1c9b7df102f9a622061094b3790122",
      "tree": "a8ea3b14a13ba53f374674987a281f23d109d65c",
      "parents": [
        "fb12795de011f8eb65a6f0a1ed67828486d21bb8",
        "3888faf8182a4f33de37f8fe3852c08e7cefc107"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Oct 21 12:09:04 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Oct 21 12:09:04 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:add-couch_debug-opened_files_by_regexp\u0027\n\nThis closes #207\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "3888faf8182a4f33de37f8fe3852c08e7cefc107",
      "tree": "a8ea3b14a13ba53f374674987a281f23d109d65c",
      "parents": [
        "8553050abdde53bb189567aa0b7173cd669a40e7"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Oct 21 11:51:05 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Oct 21 11:51:05 2016 -0700"
      },
      "message": "Add couch_debug:opened_files_contains/1\n\ncouch_debug:opened_files_contains is an efficient way to find out list\nof file descriptors or couch_file processes which path contains given\nsubstring.\n"
    },
    {
      "commit": "8553050abdde53bb189567aa0b7173cd669a40e7",
      "tree": "89330dc3d746e0a9b53dbde3acd78c8c445bdd41",
      "parents": [
        "fb12795de011f8eb65a6f0a1ed67828486d21bb8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Oct 21 11:26:18 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Oct 21 11:32:57 2016 -0700"
      },
      "message": "Add couch_debug:opened_files_by_regexp/1\n\ncouch_debug:opened_files_by_regexp is an efficient way to find out list\nof file descriptors or couch_file processes which path matches given\nregexp\n"
    },
    {
      "commit": "fb12795de011f8eb65a6f0a1ed67828486d21bb8",
      "tree": "2dfd7f8146c1a0043353be49091fbb5691be1b71",
      "parents": [
        "6b40de3c185dd8f56d193dc0b2f83e28841bb3ed"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Oct 12 21:54:00 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Oct 12 21:54:00 2016 +0100"
      },
      "message": "whitespace change to trigger github mirror sync\n"
    },
    {
      "commit": "6b40de3c185dd8f56d193dc0b2f83e28841bb3ed",
      "tree": "a9777e34c3da1edf87763caa75778d90c2c92e63",
      "parents": [
        "bfed196d4cade50be6864db71611f0b909cc919b"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Oct 10 01:47:49 2016 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Oct 10 01:47:49 2016 -0400"
      },
      "message": "Fix module name in couch_httpd:check_max_request_length/1 call\n"
    },
    {
      "commit": "bfed196d4cade50be6864db71611f0b909cc919b",
      "tree": "699714f394abb93c14db9500f52975ad54e23186",
      "parents": [
        "fc082b4b2095b8195091f82b3b573d2c1fc23d69",
        "7dec013e8dc12db718ce124ad07f62b7cd3f7419"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Oct 06 17:14:52 2016 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Oct 06 17:14:52 2016 -0400"
      },
      "message": "Merge branch \u0027couchdb-3174\u0027\n"
    },
    {
      "commit": "fc082b4b2095b8195091f82b3b573d2c1fc23d69",
      "tree": "e254c354f33c82e1bc3a792fd36228110deb08b3",
      "parents": [
        "01c2b5ce9e3e4c789d431d5af8fa6a351af754eb",
        "334618e8bfc205948822edbcb8e98fc0b6cc438a"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Oct 06 19:01:50 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Oct 06 19:01:50 2016 +0100"
      },
      "message": "Merge remote-tracking branch \u0027banjiewen/stale-stable-update\u0027\n"
    },
    {
      "commit": "01c2b5ce9e3e4c789d431d5af8fa6a351af754eb",
      "tree": "7b01cfdee2bef7aead5886d90765ff69ac73b0fb",
      "parents": [
        "7dca41578cefc70e1aa5b07cb89b7193fdb0e985",
        "be236b9a8957af4ba3fc4520a53f25855b9c5d92"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 14:28:51 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 14:28:51 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:fix-find_newest_header-type-spec\u0027\n\nThis closes #203\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "be236b9a8957af4ba3fc4520a53f25855b9c5d92",
      "tree": "7b01cfdee2bef7aead5886d90765ff69ac73b0fb",
      "parents": [
        "7dca41578cefc70e1aa5b07cb89b7193fdb0e985"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 14:25:19 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 14:25:19 2016 -0700"
      },
      "message": "update typespec of find_newest_header\n"
    },
    {
      "commit": "7dca41578cefc70e1aa5b07cb89b7193fdb0e985",
      "tree": "1a066bb526124a29c16e3b8150afc95e8eea31dd",
      "parents": [
        "6997c3c236ef9c492810410077fbdff1c303bca0",
        "570376b47cf661804891597329b4b662fafb6a74"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 10:01:26 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 10:01:26 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:69425-handle-truncated-req-in-recv_body\u0027\n\nThis closes #200\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "570376b47cf661804891597329b4b662fafb6a74",
      "tree": "1a066bb526124a29c16e3b8150afc95e8eea31dd",
      "parents": [
        "6997c3c236ef9c492810410077fbdff1c303bca0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Sep 22 16:11:02 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Oct 05 09:29:51 2016 -0700"
      },
      "message": "Adding test suite for trancated _update\n\nCOUCHDB-3158\n"
    },
    {
      "commit": "6997c3c236ef9c492810410077fbdff1c303bca0",
      "tree": "81be3bce2de11de410c79cb0d94748b00169703c",
      "parents": [
        "2a66f41424fb3d21a87e6e66b743c53a451440c2",
        "d5fbb6dd0d770861222b6a5de3124f10d9eafd4f"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 04 13:18:35 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 04 13:18:35 2016 -0500"
      },
      "message": "Merge remote-tracking branch \u0027cloudant/3061-adaptive-header-search\u0027\n"
    },
    {
      "commit": "d5fbb6dd0d770861222b6a5de3124f10d9eafd4f",
      "tree": "81be3bce2de11de410c79cb0d94748b00169703c",
      "parents": [
        "2a66f41424fb3d21a87e6e66b743c53a451440c2"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Tue Oct 04 10:58:51 2016 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Tue Oct 04 11:12:06 2016 -0700"
      },
      "message": "Use vectored reads to search for buried headers\n\nCurrent behavior attempts to read a header at each block, starting at\nthe eof and working backwards one block at a time. Deeply buried headers\ncan take a long time to find, depending on the depth of the header,\nserver load, etc.\n\nThis commit changes the behavior so that if the last block in the file\ndoes not contain a header, it switches to using a \"vectored\" approach\nwhere multiple candidate header prefixes (of 5 bytes) are read in a\nsingle operation, greatly speeding up the search. On a modern linux\nsystem with SSD, we see improvements up to 15x.\n\nCOUCHDB-3061\n"
    },
    {
      "commit": "2a66f41424fb3d21a87e6e66b743c53a451440c2",
      "tree": "e11fc761df074d2a6062c8fb3cb7f55e5a4c8da8",
      "parents": [
        "f129308c44f761db1c82530e37b8656b563b3a03",
        "37d3778172ca354f124334edf13bc09d9abc28bc"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 04 09:51:43 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 04 09:51:43 2016 -0500"
      },
      "message": "Merge branch \u00273173-fix-couchjs-character-replacement\u0027\n"
    },
    {
      "commit": "37d3778172ca354f124334edf13bc09d9abc28bc",
      "tree": "e11fc761df074d2a6062c8fb3cb7f55e5a4c8da8",
      "parents": [
        "f129308c44f761db1c82530e37b8656b563b3a03"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 04 09:45:36 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 04 09:45:36 2016 -0500"
      },
      "message": "Fix CouchJS character replacement\n\nThis was a bad backport from an old bug. We accidentally backed up when\nlooking at the second half of a surrogate pair. Instead the backup\nshould only happen when we see a low half of a surrogate pair with no\npreceding high half.\n\nCOUCHDB-3173\n"
    },
    {
      "commit": "7dec013e8dc12db718ce124ad07f62b7cd3f7419",
      "tree": "9c4d56aeb5a921880e3d3fe4cedd05ea639d6438",
      "parents": [
        "f129308c44f761db1c82530e37b8656b563b3a03"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Oct 04 02:50:07 2016 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Oct 04 02:50:07 2016 -0400"
      },
      "message": "Add max_document_size checking for multipart PUT requests\n\nPreviously multipart/related PUT requests didn\u0027t check maximum request sizes.\n\nThis commit checks content-length and compares that with the maximum.\n\nThis means keeping the current \"semantics\" of max_document_size which actually\nmeans \"max request size\". But this makes the check more efficient and can\nbe done earlier in request processing time.\n\nJira: COUCHDB-3174\n"
    },
    {
      "commit": "f129308c44f761db1c82530e37b8656b563b3a03",
      "tree": "f403543982a7e5671e9f4276ca66396eb5d53bc9",
      "parents": [
        "2ad85bcfc4a56c5984c1afdd292fc8a847a4c954",
        "f72e607c6a8d3b2a345bfeacb7a5c9d6f3216c2b"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 20 12:51:07 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 20 12:51:07 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:74046-authentication_db-should-be-sysdb\u0027\n\nThis closes #198\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "f72e607c6a8d3b2a345bfeacb7a5c9d6f3216c2b",
      "tree": "f403543982a7e5671e9f4276ca66396eb5d53bc9",
      "parents": [
        "2ad85bcfc4a56c5984c1afdd292fc8a847a4c954"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 13 11:42:47 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 20 10:35:05 2016 -0700"
      },
      "message": "Make sure clustered authentication_db is sys_db\n\nFixes the case when the following are configured to something other than _users\n - chttpd_auth.authentication_db\n - couch_httpd_auth.authentication_db\n\nIntroduce \"couchdb.users_db_suffix\" config key\n\nRemove distinction between clustered and local users databases\nconfiguration. We remove following configuration options and replace\nthem with \"couchdb.users_db_suffix\":\n\n- chttpd_auth.authentication_db\n- couch_httpd_auth.authentication_db\n\nCOUCHDB-2731\n"
    },
    {
      "commit": "2ad85bcfc4a56c5984c1afdd292fc8a847a4c954",
      "tree": "34692a6cbb2ab0fcd463ed23a830a3e6a80fd6a0",
      "parents": [
        "a468b0db6f1a9795b32e26c34b340df4d51f31b0",
        "7c5615abfb4ca62bf9fd04755ccfce509c872a9a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 20 10:03:36 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Sep 20 10:03:36 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:define_couch_version\u0027\n\nThis closes #199\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "7c5615abfb4ca62bf9fd04755ccfce509c872a9a",
      "tree": "34692a6cbb2ab0fcd463ed23a830a3e6a80fd6a0",
      "parents": [
        "30cc961a34ecf30d4a721e07d4b0662ee5337db0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:13:08 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:42:47 2016 -0700"
      },
      "message": "Define COUCHDB_VERSION macro\n"
    },
    {
      "commit": "30cc961a34ecf30d4a721e07d4b0662ee5337db0",
      "tree": "3a39af22d54ef6e388112e758ea04ec71d707c4d",
      "parents": [
        "0883e3f43e3c572a1a1d1663ac0113dd7f475299"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:11:56 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:42:47 2016 -0700"
      },
      "message": "Remove rebar.config\n"
    },
    {
      "commit": "0883e3f43e3c572a1a1d1663ac0113dd7f475299",
      "tree": "d94889eb6158b4e7f287f79259e15ed8903f84d9",
      "parents": [
        "888c8f6756642c35c2fce05aa5f843fefffc9b56"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:38:53 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:38:53 2016 -0700"
      },
      "message": "Revert \"Get couch version from environment not git\"\n\nThis reverts commit c613dabf635ca3a5d6de2240d00b80c334dc8f43.\n"
    },
    {
      "commit": "888c8f6756642c35c2fce05aa5f843fefffc9b56",
      "tree": "e5e948b6ed8f743b994555e0857b0f20a43cf9c1",
      "parents": [
        "22af8a813da9094c376c9991285d8827529bcb4e"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:38:40 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:38:40 2016 -0700"
      },
      "message": "Revert \"get version from environment in cross-platform way\"\n\nThis reverts commit 7d0cfb5f9d1f0fcdc607b46f31ae33cbf65115df.\n"
    },
    {
      "commit": "22af8a813da9094c376c9991285d8827529bcb4e",
      "tree": "3c98d599dfb7a28b8c67f0c88f40a99321722a50",
      "parents": [
        "a468b0db6f1a9795b32e26c34b340df4d51f31b0"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:36:34 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Sep 16 13:36:34 2016 -0700"
      },
      "message": "Partial revert Fix Windows version string determ..\"\n\nThis partially reverts commit 70b61f08618c34f4604bebc2ad2b8d71f90cca5e.\n"
    },
    {
      "commit": "a468b0db6f1a9795b32e26c34b340df4d51f31b0",
      "tree": "dc06ecd678dd27661b6b4dabc8bde097f95bc838",
      "parents": [
        "7d0cfb5f9d1f0fcdc607b46f31ae33cbf65115df",
        "70b61f08618c34f4604bebc2ad2b8d71f90cca5e"
      ],
      "author": {
        "name": "Joan Touzet",
        "email": "wohali@atypical.net",
        "time": "Mon Sep 12 15:52:51 2016 -0400"
      },
      "committer": {
        "name": "Joan Touzet",
        "email": "wohali@atypical.net",
        "time": "Mon Sep 12 15:52:51 2016 -0400"
      },
      "message": "Merge branch \u0027fix-windows-version\u0027 of https://github.com/wohali/couchdb-couch\n"
    },
    {
      "commit": "70b61f08618c34f4604bebc2ad2b8d71f90cca5e",
      "tree": "dc06ecd678dd27661b6b4dabc8bde097f95bc838",
      "parents": [
        "7d0cfb5f9d1f0fcdc607b46f31ae33cbf65115df"
      ],
      "author": {
        "name": "Joan Touzet",
        "email": "wohali@atypical.net",
        "time": "Mon Sep 12 15:28:31 2016 -0400"
      },
      "committer": {
        "name": "Joan Touzet",
        "email": "wohali@atypical.net",
        "time": "Mon Sep 12 15:28:31 2016 -0400"
      },
      "message": "Fix Windows version string determination\n\nFor some reason, the COUCHD_VERSION string on Windows is getting\nsuffixed whitespace. We fix this by string:strip(Version0, right) on the\nvariable before use.\n"
    },
    {
      "commit": "7d0cfb5f9d1f0fcdc607b46f31ae33cbf65115df",
      "tree": "96649c9cff58d9ffe89fda8f41bbd14afbeea36c",
      "parents": [
        "c613dabf635ca3a5d6de2240d00b80c334dc8f43"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 12 10:28:51 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 12 10:28:51 2016 +0100"
      },
      "message": "get version from environment in cross-platform way\n"
    },
    {
      "commit": "c613dabf635ca3a5d6de2240d00b80c334dc8f43",
      "tree": "69137aff3200554be9a7c3a58085fefc127cc80d",
      "parents": [
        "3fed6863af49358925a8b3a0df1cfa1f4bdb242b"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sun Sep 11 12:47:51 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sun Sep 11 12:47:51 2016 +0100"
      },
      "message": "Get couch version from environment not git\n"
    },
    {
      "commit": "3fed6863af49358925a8b3a0df1cfa1f4bdb242b",
      "tree": "f0047d1f7515a2c80665fedc10d708484a730c12",
      "parents": [
        "100241c182e9af1f7fe05046c3f9e0e87c7b64e4",
        "ac7435c334eae2b8454fa6d0b6a1154bca8f6874"
      ],
      "author": {
        "name": "Joan Touzet",
        "email": "wohali@apache.org",
        "time": "Sun Sep 11 04:54:27 2016 -0400"
      },
      "committer": {
        "name": "Joan Touzet",
        "email": "wohali@apache.org",
        "time": "Sun Sep 11 04:54:27 2016 -0400"
      },
      "message": "Merge branch \u00273140-disable-queue-as-fifo-test\u0027 of https://github.com/wohali/couchdb-couch\n"
    },
    {
      "commit": "ac7435c334eae2b8454fa6d0b6a1154bca8f6874",
      "tree": "f0047d1f7515a2c80665fedc10d708484a730c12",
      "parents": [
        "100241c182e9af1f7fe05046c3f9e0e87c7b64e4"
      ],
      "author": {
        "name": "Joan Touzet",
        "email": "wohali@atypical.net",
        "time": "Sun Sep 11 02:24:40 2016 -0400"
      },
      "committer": {
        "name": "Joan Touzet",
        "email": "wohali@atypical.net",
        "time": "Sun Sep 11 02:24:40 2016 -0400"
      },
      "message": "Disable should_process_waiting_queue_as_fifo test\n\nCOUCHDB-3140\n\nThis PR disables the problematic queue-as-fifo test. As written, any\ncall in a test to spawn_client/1 returns immediately, and does not\nguarantee that the call to couch_query_servers:get_ddoc_process/2\nreturns before control flow proceeds to the next line in the eunit test.\nAs it turns out, on Windows, the call to spawn_client for ddoc5 succeeds\nprior to the ddoc4 call in this test, thus always failing.\n\nInsertion of a timer:sleep/1 call between the spawn_client/1 calls seems\nto solve the problem, but even this is \"lucky\" behaviour. Semantically\nthe way this test is written, with spawn_client/1 using spawn/1 to spin\noff the actual get_ddoc_process/2 call, there is no guarantee that the\ncouch_proc_manager FIFO queue is being populated correctly.\n\nFurther, if the get_ddoc_process/2 call takes longer than the defined\ntimeout (5000 ms) this test will always fail, as no provision is made to\nkeep trying for an os_process after that time. Again we are \"lucky\" that\nthe test runs fast enough that this is not a problem, but relying on a\nperformant BEAM VM for test success in any regard is equally\nproblematic.\n\nFor this reason I am completely commenting out this test until the\nharness can be fixed. I believe the impact to couchdb is minimal.\n\n(It also suggests we may want to rethink how requests for os processes\nare queued and issued at some point in the future; this approach seems\nsub-optimal, especially if strict FIFO ordering is an expectation of the\nsystem.)\n\n/cc @eiri @rnewson @janl\n"
    },
    {
      "commit": "100241c182e9af1f7fe05046c3f9e0e87c7b64e4",
      "tree": "b0a59dd6f96b719982b6e38e4356dc6443fa2f7d",
      "parents": [
        "092dec86bbf068e0ab99f6586668260515fc86a9"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sat Sep 10 10:03:54 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sat Sep 10 10:03:54 2016 +0100"
      },
      "message": "Fix unused variables warning\n\nUserCtx was available here in the past so we could upgrade password\nhashes when authenticating. In the clustered case we found this to be\nmessy as multiple attempts to upgrade the same document would occur\nclose together. For 2.0, we elected to remove this upgrade-on-auth\npath.\n"
    },
    {
      "commit": "092dec86bbf068e0ab99f6586668260515fc86a9",
      "tree": "d227182fc7d55e48628d19d8b0bc1669e00e5bc4",
      "parents": [
        "72869b8bf139ffc2542d02a2bd3b862042a668c3"
      ],
      "author": {
        "name": "Randall Leeds",
        "email": "randall@apache.org",
        "time": "Sat Apr 23 17:49:34 2016 -0700"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Sep 09 14:12:47 2016 +0100"
      },
      "message": "option to disable runtime code evaluation\n"
    },
    {
      "commit": "72869b8bf139ffc2542d02a2bd3b862042a668c3",
      "tree": "1fcffa407d9f5e6eb4c62c432f3d9d1689a7bf4d",
      "parents": [
        "f122f94291bfbc87496efca3c04540bb190b985a",
        "3c090118775fa0080d18cf97285cf417bc4fce1a"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Sep 01 11:10:27 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Sep 01 11:10:27 2016 -0300"
      },
      "message": "Merge remote branch \u0027cloudant:3114-fix-docid-validation\u0027\n\nThis closes #193\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "3c090118775fa0080d18cf97285cf417bc4fce1a",
      "tree": "1fcffa407d9f5e6eb4c62c432f3d9d1689a7bf4d",
      "parents": [
        "f122f94291bfbc87496efca3c04540bb190b985a"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Sep 01 09:51:14 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Sep 01 10:50:56 2016 -0300"
      },
      "message": "Fix validation for ddoc name\n"
    },
    {
      "commit": "f122f94291bfbc87496efca3c04540bb190b985a",
      "tree": "fd8bf2ed363a4d1ff9c5da457c1edb13da855c5c",
      "parents": [
        "b8b4982f4d591553a5e1cb3bdb56907ee74824ac"
      ],
      "author": {
        "name": "Jan Lehnardt",
        "email": "jan@apache.org",
        "time": "Wed Aug 31 21:39:13 2016 +0200"
      },
      "committer": {
        "name": "Jan Lehnardt",
        "email": "jan@apache.org",
        "time": "Wed Aug 31 21:39:13 2016 +0200"
      },
      "message": "feat: allow couchspawnkillable to live in directories with spaces\n"
    },
    {
      "commit": "b8b4982f4d591553a5e1cb3bdb56907ee74824ac",
      "tree": "dd413081180094dda160435bb88b01b6cc967210",
      "parents": [
        "8bd756e60291e762fc691e22a9de9181102ecbb8",
        "a701c4b73640f74e80245a8c262e1a2d583f2290"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:59:27 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:59:27 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3102-fix-config_subscription\u0027\n\nThis closes #192\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "a701c4b73640f74e80245a8c262e1a2d583f2290",
      "tree": "dd413081180094dda160435bb88b01b6cc967210",
      "parents": [
        "608942f9ac7c5b2b225ec9598363228583f70f92"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 13:15:57 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 13:18:15 2016 -0700"
      },
      "message": "Use `define` to avoid repeating yourself\n\nCOUCHDB-3102\n"
    },
    {
      "commit": "608942f9ac7c5b2b225ec9598363228583f70f92",
      "tree": "15090069961ebcf73ef54ffdb1e1fe0e45d8efa3",
      "parents": [
        "8bd756e60291e762fc691e22a9de9181102ecbb8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 17 11:24:08 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 12:23:45 2016 -0700"
      },
      "message": "Update handle_config_terminate API\n\nCOUCHDB-3102\n"
    },
    {
      "commit": "8bd756e60291e762fc691e22a9de9181102ecbb8",
      "tree": "f92d57b508d9ac0ada150597fec663b744bce69a",
      "parents": [
        "7ee0b8161ea68530c567f98597019f3f38dcce1a",
        "b4c05798e8e0ce3012156dd82e83905b8e4f581b"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Aug 16 12:08:56 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Aug 16 12:08:56 2016 -0300"
      },
      "message": "Merge remote branch \u0027cloudant:66640-simplify-proc_manager\u0027\n\nThis closes #191\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "b4c05798e8e0ce3012156dd82e83905b8e4f581b",
      "tree": "f92d57b508d9ac0ada150597fec663b744bce69a",
      "parents": [
        "f0b84513752cad3d7f6f944ff912244be4c08e32"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Aug 15 13:45:20 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Aug 16 12:06:15 2016 -0300"
      },
      "message": "Add tests for process pool\n\nThis adds tests for re-use of procs,\nproper waiters dequeue and idle pool reduction\n"
    },
    {
      "commit": "f0b84513752cad3d7f6f944ff912244be4c08e32",
      "tree": "61e5692025c6a406c2ac7c70d66a92a3760abfb6",
      "parents": [
        "7ee0b8161ea68530c567f98597019f3f38dcce1a"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Aug 11 17:45:32 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Aug 16 12:06:06 2016 -0300"
      },
      "message": "Simplify proc manager assignment logic\n\nThis changes how proc manager handles proc assignment.\nInstead of doing this in three different places:\nget_proc call handler, return_proc/2 with maybe_assign_proc\nand flush_waiters/2, proc manager now just places\nall the incoming requests in the waiting queue\nand then flushes it.\n\nAs a result all the logic kept in one place which makes\nit more obvious that we are treating proc management\nas a processing of a single FIFO queue\nwith \"soft\" and \"hard\" upper limits.\n\nConsequently this is fixing a bug in maybe_assign_proc\nwhere it was possible to assign a client a process\nthat wasn\u0027t aware of it.\n\nCOUCHDB-3095\n"
    },
    {
      "commit": "7ee0b8161ea68530c567f98597019f3f38dcce1a",
      "tree": "a75dec4c1133627e7ffc35522994279b58f7e66b",
      "parents": [
        "1df597fc2e9a8208e7716f8542a7f6a8e9b606e8",
        "93c2c62f3e8e23d4e6fe1c48619eb767f229801b"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 10 12:35:58 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 10 12:35:58 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3080-fix-validate_dbname\u0027\n\nThis closes #188\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    }
  ],
  "next": "93c2c62f3e8e23d4e6fe1c48619eb767f229801b"
}
