)]}'
{
  "log": [
    {
      "commit": "999e7b48c72866672ce9f45471fd58c5c9e7cab8",
      "tree": "8136d590a248011e892bee09bb28b60ea63b62a9",
      "parents": [
        "e0f9ba402909bf32e047af12d0399b4dd82f8b96"
      ],
      "author": {
        "name": "Jiahui Li",
        "email": "lijiahui702@gmail.com",
        "time": "Tue Sep 09 14:51:20 2025 -0500"
      },
      "committer": {
        "name": "Jiahui Li",
        "email": "lijiahui702@gmail.com",
        "time": "Tue Sep 09 16:38:06 2025 -0500"
      },
      "message": "Add error handling for `noproc`\n\nAdd error handling to avoid the following error:\n\n```bash\n$ make eunit apps\u003dcouch suites\u003dcouch_btree_prop_tests\n...\n**error:{assertMatch,[{module,couch_btree_prop_tests},\n              {line,35},\n              {comment,\"Failed property test \u0027prop_btree_\u0027\"},\n              {expression,\"proper : quickcheck ( ? MODULE : F ( ) , [ { to_file , user } , { start_size , 2 } , { numtests , 3000 } , long_result ] )\"},\n              {pattern,\"true\"},\n              {value,[[{set,{var,1},\n                            {call,couch_btree_prop_tests,query_modify,\n                                  [[551,502],[{882,c},{948,a}],[]]}}]]}]}\n```\n\nRelated PR:\n- https://github.com/apache/couchdb/pull/5635\n- https://github.com/apache/couchdb/pull/5636\n"
    },
    {
      "commit": "e0f9ba402909bf32e047af12d0399b4dd82f8b96",
      "tree": "8e7d13feec01ba7cb695dd189027340fcfddeaa9",
      "parents": [
        "8fd9ce23c890cc333a8b36f2471f0cc45c65819e"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Thu Mar 06 11:07:19 2025 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Mar 06 11:46:29 2025 -0500"
      },
      "message": "Make sure to handle `other` priority in ioq\u0027s new bypass/2 API\n\nIt\u0027s a new API to check if the request would be bypassed by the IOQ. IOQ2\nserver didn\u0027t handle that clause properly and it would throw function_clause\nerrors as a result.\n\nIOQ1 apparently handles any value for the priority so we ensure to do the same.\nNormally it would be `undefined` though but we\u0027ll go with IOQ1\u0027s approach and\naccept any junk there since it\u0027s the \"other\" category.\n"
    },
    {
      "commit": "8fd9ce23c890cc333a8b36f2471f0cc45c65819e",
      "tree": "f3b349e4ecb6d449196844ce3bf1e8801a30fe0a",
      "parents": [
        "fe7f2424dbc0002755fa1a47cc609e4a7e553250"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Wed Feb 19 18:50:14 2025 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Wed Feb 19 22:28:57 2025 -0500"
      },
      "message": "Add ioq:bypass/2 API\n\nGiven a message and a priority, return `true` if that operation would be\nbypassed. This is used by the parallel preads commit [1] with the cfile handle\nwhen we know the request would be bypassed by the IOQ.\n\nIf/when we figure out how to teach the IOQ server to call a regular MFA, as\nopposed to always sending a \u0027$gen_call\u0027 message, we won\u0027t have a need for\nthis and can remove this API.\n\nWhile at it, do some minor test housekeeping and use the standard `?TDEF_FE`\nhelper macro to remove the eunit `?_test/begin` boilerplate code.\n\n[1] https://github.com/apache/couchdb/pull/5399\n"
    },
    {
      "commit": "fe7f2424dbc0002755fa1a47cc609e4a7e553250",
      "tree": "11184e0d254057dbe049bc66e3a9a826122dcbfb",
      "parents": [
        "961a5c84b2079689a7e61d675685011d57629b36"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Wed Jul 19 18:40:09 2023 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Wed Jul 19 18:53:17 2023 -0400"
      },
      "message": "Remove folsom references.\n\nWe removed it in the main repo already.\n\nIssue: https://github.com/apache/couchdb/issues/4650\n"
    },
    {
      "commit": "961a5c84b2079689a7e61d675685011d57629b36",
      "tree": "586472991e422a830d5d9abba19e61d9cc15bde4",
      "parents": [
        "6abecf97f0caff1f5ea11deb92a02d689ce4eb17",
        "33e84022caf46ca675292ad1df7adf1a582ae662"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Nov 17 21:07:23 2022 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 17 21:07:23 2022 -0500"
      },
      "message": "Merge pull request #24 from apache/add-reshard-ioq-priority\n\nAdd a proper reshard ioq class"
    },
    {
      "commit": "33e84022caf46ca675292ad1df7adf1a582ae662",
      "tree": "586472991e422a830d5d9abba19e61d9cc15bde4",
      "parents": [
        "6abecf97f0caff1f5ea11deb92a02d689ce4eb17"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Thu Nov 17 13:44:51 2022 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Thu Nov 17 13:44:51 2022 -0500"
      },
      "message": "Add a proper reshard ioq class\n\nThis mirrors the upstream PR https://github.com/apache/couchdb/pull/4270\n"
    },
    {
      "commit": "6abecf97f0caff1f5ea11deb92a02d689ce4eb17",
      "tree": "51d8bdb40ad24db3fda70fd383ee46cc3508e925",
      "parents": [
        "f8661b6be4583ba887213c8e48dca4fca81e647c"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Oct 11 15:40:02 2022 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Tue Oct 11 22:40:36 2022 -0700"
      },
      "message": "Fix compiler warnings\n\n- test/ioq_tests.erl:14:2: Warning: export_all flag enabled - all functions will be exported\n- src/ioq_server2.erl:857: Warning: the result of the expression is ignored (suppress the warning by assigning the expression to the _ variable)\n- src/ioq/src/ioq_server2.erl:928:52: Warning: variable \u0027RL\u0027 is unused\n- test/ioq_kv_tests.erl:125:14: Warning: random:uniform/1 is deprecated; use the \u0027rand\u0027 module instead\n"
    },
    {
      "commit": "f8661b6be4583ba887213c8e48dca4fca81e647c",
      "tree": "56fad391e1873515dd72281bc83644edc153e8b3",
      "parents": [
        "9d89189de787b0415b4724c2d0be2299fe9b1729"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Oct 11 15:20:21 2022 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Tue Oct 11 22:40:36 2022 -0700"
      },
      "message": "Quiet noisy config tests\n\nThese tests are noisy because they start the `couch_log` application\nwithout also starting `folsom`:\n\n❯ make check apps\u003dioq suites\u003dioq_config_tests\n\u003d\u003d\u003e ioq (eunit)\nCompiled test/ioq_config_tests.erl\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d EUnit \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nmodule \u0027ioq_config_tests\u0027\n  Test config updates\n    ioq_config_tests:51: -t_restart_config_listener/1-fun-4-...ok\n[error] 2022-10-11T22:20:45.053540Z nonode@nohost \u003c0.290.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.292.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.081876Z nonode@nohost \u003c0.290.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.292.0\u003e exit with reason shutdown in context child_terminated\n[info] 2022-10-11T22:20:45.081889Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.081892Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.081899Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.081902Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.081910Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.081914Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.081917Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.081920Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.081945Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_log exited with reason: stopped\n[info] 2022-10-11T22:20:45.081955Z nonode@nohost \u003c0.44.0\u003e -------- Application config exited with reason: stopped\n    ioq_config_tests:66: -t_update_ioq_config/1-fun-5-...[notice] 2022-10-11T22:20:45.106776Z nonode@nohost \u003c0.318.0\u003e -------- config: [ioq] concurrency set to 200 for reason nil\n[0.021 s] ok\n[info] 2022-10-11T22:20:45.109593Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.109600Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.109605Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.109615Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.109620Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.109623Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.109833Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.109839Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.109845Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.110157Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.110162Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.110165Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n    ioq_config_tests:103: -t_update_ioq2_config/1-fun-5-...[notice] 2022-10-11T22:20:45.118370Z nonode@nohost \u003c0.385.0\u003e -------- config: [ioq2] concurrency set to 200 for reason nil\nok\n[info] 2022-10-11T22:20:45.121645Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.121654Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.121658Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.121661Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.121670Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.121673Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.121682Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.121687Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.121926Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.121933Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.121937Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.121941Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.122356Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.122361Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.122365Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.122369Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n    ioq_config_tests:82: -t_update_ioq_config_on_listener_restart/1-fun-6-...[error] 2022-10-11T22:20:45.128953Z nonode@nohost \u003c0.494.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.496.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.128983Z nonode@nohost \u003c0.494.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.496.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.128999Z nonode@nohost \u003c0.494.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.496.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.129009Z nonode@nohost \u003c0.494.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.496.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.129021Z nonode@nohost \u003c0.494.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.496.0\u003e exit with reason shutdown in context child_terminated\n[0.051 s] ok\n[info] 2022-10-11T22:20:45.182979Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.182995Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.183002Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.183009Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.183031Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.183055Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.183060Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.183064Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.183068Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.183072Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.183438Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.183447Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.183454Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.183460Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.183471Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.183880Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.183892Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.183896Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.183901Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.183910Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n    ioq_config_tests:119: -t_update_ioq2_config_on_listener_restart/1-fun-6-...[error] 2022-10-11T22:20:45.190997Z nonode@nohost \u003c0.563.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.565.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.191027Z nonode@nohost \u003c0.563.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.565.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.191064Z nonode@nohost \u003c0.563.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.565.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.191087Z nonode@nohost \u003c0.563.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.565.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.191101Z nonode@nohost \u003c0.563.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.565.0\u003e exit with reason shutdown in context child_terminated\n[error] 2022-10-11T22:20:45.191114Z nonode@nohost \u003c0.563.0\u003e -------- Supervisor ioq_sup had child config_listener_mon started with config_listener_mon:start_link(ioq_sup, nil) at \u003c0.565.0\u003e exit with reason shutdown in context child_terminated\n[0.051 s] ok\n[info] 2022-10-11T22:20:45.244863Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.244877Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.244884Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.244891Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.244900Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.244905Z nonode@nohost \u003c0.44.0\u003e -------- Application ioq exited with reason: stopped\n[info] 2022-10-11T22:20:45.244912Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.244916Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.244921Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.244925Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.244929Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.244933Z nonode@nohost \u003c0.44.0\u003e -------- Application hqueue exited with reason: stopped\n[info] 2022-10-11T22:20:45.245083Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.245088Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.245093Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.245098Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.245110Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.245115Z nonode@nohost \u003c0.44.0\u003e -------- Application couch_stats exited with reason: stopped\n[info] 2022-10-11T22:20:45.245531Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n[info] 2022-10-11T22:20:45.245538Z nonode@nohost \u003c0.44.0\u003e -------- Application folsom exited with reason: stopped\n    [done in 0.899 s]\n  ioq_config_tests:155: -priorities_test_/0-fun-1-...ok\n  ioq_config_tests:155: -priorities_test_/0-fun-1-...ok\n  ioq_config_tests:155: -priorities_test_/0-fun-1-...ok\n  ioq_config_tests:155: -priorities_test_/0-fun-1-...ok\n  ioq_config_tests:155: -priorities_test_/0-fun-1-...ok\n  ioq_config_tests:155: -priorities_test_/0-fun-1-...ok\n  ioq_config_tests:170: -parse_shard_string_test_/0-fun-1-...ok\n  ioq_config_tests:170: -parse_shard_string_test_/0-fun-1-...ok\n  ioq_config_tests:170: -parse_shard_string_test_/0-fun-1-...ok\n  ioq_config_tests:170: -parse_shard_string_test_/0-fun-1-...ok\n  ioq_config_tests:181: -parse_bad_string_test_/0-fun-1-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  ioq_config_tests:199: -to_float_test_/0-fun-2-...ok\n  Test ioq_config setters\n[notice] 2022-10-11T22:20:45.305678Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] concurrency set to 9 for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.305681Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305690Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305696Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305704Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[notice] 2022-10-11T22:20:45.305733Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] resize_limit set to 8888 for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.305710Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[notice] 2022-10-11T22:20:45.305762Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] dedupe set to false for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.305764Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305768Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...[error] 2022-10-11T22:20:45.305774Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305779Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305800Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305805Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305809Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305813Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305817Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305837Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[notice] 2022-10-11T22:20:45.305837Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] scale_factor set to 3.14000000000000012434e+00 for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.305841Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305850Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305856Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305862Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305879Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[notice] 2022-10-11T22:20:45.305879Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] max_priority set to 9.99999900000000052387e+04 for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.305883Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305888Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305893Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305913Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305918Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305921Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305926Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305929Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[notice] 2022-10-11T22:20:45.305930Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] enabled set to true for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.305951Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305954Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305961Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305967Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305972Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305991Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305995Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.305999Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[notice] 2022-10-11T22:20:45.305996Z nonode@nohost \u003c0.609.0\u003e -------- config: [ioq2] dispatch_strategy set to fd_hash for reason \"ioq_config_tests\"\n[error] 2022-10-11T22:20:45.306004Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306009Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306013Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306017Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306021Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306024Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306050Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306053Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306060Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306065Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306070Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306080Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.306084Z nonode@nohost \u003c0.609.0\u003e -------- unknown metric: [couch_log,level,notice]\nok\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...ok\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...ok\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...ok\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...ok\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...ok\n    ioq_config_tests:241: -check_simple_configs/1-fun-1-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n    ioq_config_tests:249: -check_simple_configs/1-fun-4-...ok\n[notice] 2022-10-11T22:20:45.350387Z nonode@nohost \u003c0.639.0\u003e -------- config: [ioq2.bypass] interactive set to true for reason \"Bypassing interactive\"\n    ioq_config_tests:263: -check_bypass_configs/1-fun-1-...[error] 2022-10-11T22:20:45.350404Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350428Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350445Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350482Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350495Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350504Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350514Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.350520Z nonode@nohost \u003c0.639.0\u003e -------- unknown metric: [couch_log,level,notice]\nok\n    [done in 0.050 s]\n  Test ioq_config is_valid_class logic\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:284: -check_default_classes/1-fun-3-...ok\n    ioq_config_tests:288: -check_undeclared_class/1-fun-1-...ok\n[notice] 2022-10-11T22:20:45.447281Z nonode@nohost \u003c0.701.0\u003e -------- config: [ioq2.classes] search set to 1.0 for reason nil\n[error] 2022-10-11T22:20:45.447295Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447301Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447304Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n    [error] 2022-10-11T22:20:45.447307Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\nioq_config_tests:293: -check_declared_class/1-fun-1-...[error] 2022-10-11T22:20:45.447311Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447420Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447430Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447436Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447442Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447452Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\n[error] 2022-10-11T22:20:45.447455Z nonode@nohost \u003c0.701.0\u003e -------- unknown metric: [couch_log,level,notice]\nok\n    [done in 0.100 s]\n  [done in 1.106 s]\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  All 53 tests passed.\n\nThis removes `couch_log` from started applications, and instead just\nmocks the single function that was being used, cleaning up test\noutput, and speeding up the tests.\n"
    },
    {
      "commit": "9d89189de787b0415b4724c2d0be2299fe9b1729",
      "tree": "f90016baf0f5cf2ef3cd18a5154bf153115502ac",
      "parents": [
        "4612e9f57c3db873cb4420eff950fb3fb4be7193"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Oct 11 15:19:31 2022 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Tue Oct 11 22:40:36 2022 -0700"
      },
      "message": "Git ignore .eunit directory\n"
    },
    {
      "commit": "4612e9f57c3db873cb4420eff950fb3fb4be7193",
      "tree": "f6d834de059f6fd51d040d0f70a9ff5febfd86b9",
      "parents": [
        "63268992ee9f868b911449b6e775adb497d4cc4a",
        "0baa19f09a013a8a0fa7a473e63b0ad1189dfef4"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Thu Jul 28 04:53:29 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 28 04:53:29 2022 -0700"
      },
      "message": "Merge pull request #22 from noahshaw11/add-editors-magic-lines\n\nAdd editors magic lines"
    },
    {
      "commit": "63268992ee9f868b911449b6e775adb497d4cc4a",
      "tree": "41cc434b566b1f656a8d82a3efc7e7018777f023",
      "parents": [
        "3c379fef2ba895811ee637d11f2b1894af1f0b2a",
        "fb49e09a8bb803c0fb6c7bd51ffa35eb68365bc3"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Wed Jul 27 15:02:37 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 27 15:02:37 2022 -0700"
      },
      "message": "Merge pull request #21 from apache/add-search-ioq-server\n\nAdd IOQ2 pid for search traffic"
    },
    {
      "commit": "fb49e09a8bb803c0fb6c7bd51ffa35eb68365bc3",
      "tree": "41cc434b566b1f656a8d82a3efc7e7018777f023",
      "parents": [
        "3c379fef2ba895811ee637d11f2b1894af1f0b2a"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Fri Jul 15 14:18:01 2022 -0700"
      },
      "committer": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Wed Jul 27 15:00:35 2022 -0700"
      },
      "message": "Add IOQ2 pid for search traffic\n\nThis adds a dedicated IOQ2 pid for search traffic.\nIt also reworks some of the dispatch logic.\n"
    },
    {
      "commit": "0baa19f09a013a8a0fa7a473e63b0ad1189dfef4",
      "tree": "ee777f2fe6d62ae4117780f96e586d34d80a7935",
      "parents": [
        "3c379fef2ba895811ee637d11f2b1894af1f0b2a"
      ],
      "author": {
        "name": "Noah Shaw",
        "email": "noahshaw11@yahoo.com",
        "time": "Mon Jul 25 18:40:59 2022 -0500"
      },
      "committer": {
        "name": "Noah Shaw",
        "email": "noahshaw11@yahoo.com",
        "time": "Mon Jul 25 18:40:59 2022 -0500"
      },
      "message": "Add editors magic lines\n"
    },
    {
      "commit": "3c379fef2ba895811ee637d11f2b1894af1f0b2a",
      "tree": "72eaf2d473095ee82de56c5b151faf76e656f609",
      "parents": [
        "17f6562e50db93c39db1e0642440f7dd6a7e52f9",
        "048c64b9f77028d485bd7345807cb5393671a31c"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Mon Jul 25 16:27:07 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 25 16:27:07 2022 -0700"
      },
      "message": "Merge pull request #19 from apache/4101-add-iopriority\n\n4101 add iopriority"
    },
    {
      "commit": "048c64b9f77028d485bd7345807cb5393671a31c",
      "tree": "72eaf2d473095ee82de56c5b151faf76e656f609",
      "parents": [
        "17f6562e50db93c39db1e0642440f7dd6a7e52f9"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Wed Jul 13 15:21:36 2022 -0700"
      },
      "committer": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Mon Jul 25 15:56:56 2022 -0700"
      },
      "message": "Add IOQ system and search channels\n"
    },
    {
      "commit": "17f6562e50db93c39db1e0642440f7dd6a7e52f9",
      "tree": "cc388c45887a0b80d6aaa5997be3c905fbf5aa2c",
      "parents": [
        "a91feeaa5cd092d9192a94f2fdd3996d6fc889d4",
        "cc271de2869edd0be4ad05cfc637bfbd0a06f272"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Wed Apr 06 11:02:01 2022 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 06 11:02:01 2022 -0700"
      },
      "message": "Merge pull request #18 from apache/guard-negative-timedelta\n\nIOQ improvements"
    },
    {
      "commit": "cc271de2869edd0be4ad05cfc637bfbd0a06f272",
      "tree": "cc388c45887a0b80d6aaa5997be3c905fbf5aa2c",
      "parents": [
        "7c6cd10040db2b11adde2232512adec1f6842404"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Apr 05 16:58:03 2022 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Apr 05 16:58:03 2022 -0700"
      },
      "message": "Handle stats db conflicts\n\nSince a timestamp is used as the document id, it\u0027s possible for e.g.\nmultiple nodes to attempt to insert the same document, resulting in\nlogged errors like the following:\n\n[error] 2022-04-05T21:00:35.302496Z node1@127.0.0.1 emulator -------- Error in process \u003c0.588.159\u003e on node \u0027node1@127.0.0.1\u0027 with exit value:\n{{nocatch,conflict},[{fabric,update_doc,3,[{file,\"src/fabric.erl\"},{line,332}]},{ioq_server,save_to_db,0,[{file,\"src/ioq_server.erl\"},{line,529}]}]}\n\nThis catches cases of `error:conflict` and logs them at info level\ninstead.\n"
    },
    {
      "commit": "7c6cd10040db2b11adde2232512adec1f6842404",
      "tree": "440818a5ce500254a27c42f858a41f410df6429c",
      "parents": [
        "a91feeaa5cd092d9192a94f2fdd3996d6fc889d4"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Apr 05 12:48:10 2022 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Apr 05 12:48:10 2022 -0700"
      },
      "message": "Guard against negative time deltas\n\nDespite the use of `erlang:monotonic_time/0`, it is still possible on\nsome platforms, such as sleeping/awakening laptops, for time to move\nin surprising directions. When this happens, and a negative time delta\nis passed to `timebin/1`, it crashes with:\n\nbad arithmetic expression at math:log10/1 \u003c\u003d ioq_server:timebin/1(line:480)\n\nThis adds a guard to return `0` for negative numbers as well as zero.\n"
    },
    {
      "commit": "a91feeaa5cd092d9192a94f2fdd3996d6fc889d4",
      "tree": "1f5d04578ae8a6813976acf09c4f7fbc016de11e",
      "parents": [
        "4843f3709b4be997cf8424c44f856523fd31b7d1",
        "41590f5847aa616f8e49f02154360bf7c41d5405"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Nov 02 23:06:10 2021 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 02 23:06:10 2021 -0700"
      },
      "message": "Merge pull request #17 from apache/app-env-to-config\n\nReplace app env with config"
    },
    {
      "commit": "41590f5847aa616f8e49f02154360bf7c41d5405",
      "tree": "1f5d04578ae8a6813976acf09c4f7fbc016de11e",
      "parents": [
        "4843f3709b4be997cf8424c44f856523fd31b7d1"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Nov 02 14:12:26 2021 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jaydoane@apache.org",
        "time": "Tue Nov 02 14:12:26 2021 -0700"
      },
      "message": "Replace app env with config\n\nCurrently, `stats_db` and `interval` are obtained from vm.args file\nvia `application:get_env/2`. This is surprising since IOQ already\ndepends on the config application for most of it\u0027s configuration\nparameters.\n\nThis changes where those configuration values are obtained from\nvm.args to .ini files.\n"
    },
    {
      "commit": "4843f3709b4be997cf8424c44f856523fd31b7d1",
      "tree": "bea45effc8bab233d3cccd7d9c3a4e4af69329fa",
      "parents": [
        "5ff5921b2ced0ed91f10b8f992420cdec5bf7f18"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Thu Nov 21 19:57:25 2019 -0800"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Thu Nov 21 19:57:25 2019 -0800"
      },
      "message": "Reduce logging noise\n"
    },
    {
      "commit": "5ff5921b2ced0ed91f10b8f992420cdec5bf7f18",
      "tree": "fb903d398cedfebeaba8c347f7fda6bc6819aebc",
      "parents": [
        "8ada5fa70b646fc0886612fc58924261cad4e26a",
        "b1ce76d63babeaeca2fa27a4bb0499344147a163"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Wed Jun 26 13:09:00 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 26 13:09:00 2019 -0700"
      },
      "message": "Merge pull request #15 from apache/ioq_update_hist\n\nLog from 0 is undefined"
    },
    {
      "commit": "b1ce76d63babeaeca2fa27a4bb0499344147a163",
      "tree": "fb903d398cedfebeaba8c347f7fda6bc6819aebc",
      "parents": [
        "8ada5fa70b646fc0886612fc58924261cad4e26a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Jun 26 18:53:34 2019 +0000"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Jun 26 18:53:34 2019 +0000"
      },
      "message": "Log from 0 is undefined\n"
    },
    {
      "commit": "8ada5fa70b646fc0886612fc58924261cad4e26a",
      "tree": "209aa4dd650937e295d3580fc415dff426ff1d31",
      "parents": [
        "7edcb03a8c2db99f79ceea2169419e64ed23107e",
        "c0ce268060a5974928e891192613c8895f16414f"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@gmail.com",
        "time": "Thu Apr 18 14:23:09 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 18 14:23:09 2019 -0700"
      },
      "message": "Merge pull request #13 from apache/allow-for-dynamic-ioq-classes\n\nAllow for dynamic ioq classes"
    },
    {
      "commit": "c0ce268060a5974928e891192613c8895f16414f",
      "tree": "209aa4dd650937e295d3580fc415dff426ff1d31",
      "parents": [
        "d6e7a78ccffba459860df6ffcfd9e022569118de"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Thu Apr 18 21:18:28 2019 +0000"
      },
      "committer": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Thu Apr 18 21:18:28 2019 +0000"
      },
      "message": "Add dynamic IOQ class documentation\n"
    },
    {
      "commit": "d6e7a78ccffba459860df6ffcfd9e022569118de",
      "tree": "b49bb5670a5cbf47f6d668c1a26aff1e82281fee",
      "parents": [
        "08c6bbb67031c39d48a1beb1b74ea21de38ded3a"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Fri Apr 12 22:36:18 2019 +0000"
      },
      "committer": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Fri Apr 12 22:45:42 2019 +0000"
      },
      "message": "Allow dynamic classes in is_valid_class\n\nThis adds support for dynamic classes in IOQ2. Before this change, the\nallowed set of classes was fixed and hardcoded, with no way for 3rd\nparty IO traffic to be prioritized, and similarly, no way for 3rd party\nIO traffic to bypass IOQ based on config settings. This change switches\nto checking to see if there\u0027s a declared IO priority value in the\nclasses config, and if so it is treated as a valid value. It\u0027s worth\nnoting that because `ioq_config:set_class_config` uses the\n`is_valid_class` check, you must use `config:set` directly to declare an\ninitial priority for the dynamic channel before being able to use the\n`ioq_config` helpers.\n\nThis change was motivated by not being able to bypass search in the\nDreyfus project, as it piggy-backed off of `interactive` and\n`view_update` channels. That was rectified in [1], and now Dreyfus uses\nthe `search` IOQ channel. As that is not used in CouchDB directly, this\ncommit adds the dynamic class support based off of config values, rather\nthan specifically hardcoding search, so that it can be used by any 3rd\nparty services running IO traffic through IOQ.\n\n[1] https://github.com/cloudant-labs/dreyfus/pull/46/commits/75d86c49c86f4e7e299d2d05a741c4ef68a144fb\n"
    },
    {
      "commit": "08c6bbb67031c39d48a1beb1b74ea21de38ded3a",
      "tree": "38b8a4cbea335814846e234308d7ba4f55cf5b58",
      "parents": [
        "7edcb03a8c2db99f79ceea2169419e64ed23107e"
      ],
      "author": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Fri Apr 12 22:35:55 2019 +0000"
      },
      "committer": {
        "name": "Russell Branca",
        "email": "chewbranca@apache.org",
        "time": "Fri Apr 12 22:45:29 2019 +0000"
      },
      "message": "Rearrange IOQ config declarations into header file\n"
    },
    {
      "commit": "7edcb03a8c2db99f79ceea2169419e64ed23107e",
      "tree": "a1ae9f461abbcf18c2c678e073308adb759ecc7c",
      "parents": [
        "af4f9767ac845cb24921c8a1fa521711129feed8",
        "9b4c5d8cfdc2f3bb6b35a25625f95bd473f09449"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Mon Mar 18 02:28:31 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 18 02:28:31 2019 -0700"
      },
      "message": "Merge pull request #12 from cloudant/start-couch_log-in-test\n\nStart couch_log in tests"
    },
    {
      "commit": "9b4c5d8cfdc2f3bb6b35a25625f95bd473f09449",
      "tree": "a1ae9f461abbcf18c2c678e073308adb759ecc7c",
      "parents": [
        "af4f9767ac845cb24921c8a1fa521711129feed8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Mar 15 18:14:48 2019 +0000"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Mar 15 18:14:48 2019 +0000"
      },
      "message": "Start couch_log in tests\n"
    },
    {
      "commit": "af4f9767ac845cb24921c8a1fa521711129feed8",
      "tree": "39b1dea166b8c2e7d9d64a9f5eeaccf66502ab12",
      "parents": [
        "103cf1c14ed14770da20f7801dc8cf4ccc3fa241",
        "471e6c23e10370692432accb112a6834405982c1"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Feb 28 19:00:02 2019 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 28 19:00:02 2019 +0000"
      },
      "message": "Merge pull request #11 from apache/optional-proper\n\nMake PropEr an optional (test) dependency"
    },
    {
      "commit": "471e6c23e10370692432accb112a6834405982c1",
      "tree": "39b1dea166b8c2e7d9d64a9f5eeaccf66502ab12",
      "parents": [
        "103cf1c14ed14770da20f7801dc8cf4ccc3fa241"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Feb 28 14:07:13 2019 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Feb 28 14:47:03 2019 +0000"
      },
      "message": "Make PropEr an optional (test) dependency\n"
    },
    {
      "commit": "103cf1c14ed14770da20f7801dc8cf4ccc3fa241",
      "tree": "559ea0e647bf1ed2d8c7a87bce14f5e972d2bef1",
      "parents": [
        "1b2f8ca0353b4f8a93eb2a1e226b0bdc04fb799a",
        "63617af731f72ed9ac4fb8eb5e1100725c59ec34"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Thu Feb 21 09:15:37 2019 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 21 09:15:37 2019 -0800"
      },
      "message": "Merge pull request #10 from cloudant/fix-compilation-warnings\n\nFix compiler warnings"
    },
    {
      "commit": "63617af731f72ed9ac4fb8eb5e1100725c59ec34",
      "tree": "559ea0e647bf1ed2d8c7a87bce14f5e972d2bef1",
      "parents": [
        "1b2f8ca0353b4f8a93eb2a1e226b0bdc04fb799a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Feb 20 19:16:14 2019 +0000"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Feb 21 12:05:59 2019 +0000"
      },
      "message": "Fix compiler warnings\n\n- Replace use of `erlang:now/0` with `erlang:monotonic_time/0`\n- Replace use of `random` module with `rand` module\n"
    },
    {
      "commit": "1b2f8ca0353b4f8a93eb2a1e226b0bdc04fb799a",
      "tree": "a31a3b8bd862d18c4492057b34f78a54c443ab4b",
      "parents": [
        "89fe01fdada8ffdd7afc8aed7521f8c1c99d23f8",
        "8dfe69544f3d209a9f6ae23f328acc37eb457939"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Thu Feb 21 03:37:58 2019 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 21 03:37:58 2019 -0800"
      },
      "message": "Merge pull request #9 from cloudant/use-cast-for-ioq2-update_config\n\nUse cast to send `update_config` to `ioq2`"
    },
    {
      "commit": "8dfe69544f3d209a9f6ae23f328acc37eb457939",
      "tree": "a31a3b8bd862d18c4492057b34f78a54c443ab4b",
      "parents": [
        "89fe01fdada8ffdd7afc8aed7521f8c1c99d23f8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Tue Feb 19 20:11:23 2019 +0000"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Tue Feb 19 21:59:39 2019 +0000"
      },
      "message": "Use cast to send update_config to ioq2\n"
    },
    {
      "commit": "89fe01fdada8ffdd7afc8aed7521f8c1c99d23f8",
      "tree": "1ce63e82ea894a9ffabbee9fd16c559f0ac9722e",
      "parents": [
        "aa88b1ea824f6ea41d1754a43d317477d39a25ac",
        "b5b801abc02f820ad4a6ada202270015eafc1ba9"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Tue Feb 19 11:37:20 2019 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 19 11:37:20 2019 -0800"
      },
      "message": "Merge pull request #8 from cloudant/update_handle_config_terminate\n\nReconfigure IOQ on config update"
    },
    {
      "commit": "b5b801abc02f820ad4a6ada202270015eafc1ba9",
      "tree": "1ce63e82ea894a9ffabbee9fd16c559f0ac9722e",
      "parents": [
        "aa88b1ea824f6ea41d1754a43d317477d39a25ac"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Feb 15 13:01:22 2019 +0000"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Mon Feb 18 19:23:02 2019 +0000"
      },
      "message": "Reconfigure IOQ on config update\n"
    },
    {
      "commit": "aa88b1ea824f6ea41d1754a43d317477d39a25ac",
      "tree": "651cf3b76c440ac22cd3d39cebf0892f1ad6ccf6",
      "parents": [
        "04bebb3f99b2045da0deb090afb4e6c4eacb67f5",
        "907d196c30e3602fbd90014d9297d11c3a807b7d"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jan 30 17:08:56 2019 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 30 17:08:56 2019 +0000"
      },
      "message": "Merge pull request #7 from apache/cloudant-ioq\n\nImport Cloudant\u0027s full IOQ code"
    },
    {
      "commit": "907d196c30e3602fbd90014d9297d11c3a807b7d",
      "tree": "651cf3b76c440ac22cd3d39cebf0892f1ad6ccf6",
      "parents": [
        "04bebb3f99b2045da0deb090afb4e6c4eacb67f5"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jan 30 12:17:08 2019 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jan 30 13:26:04 2019 +0000"
      },
      "message": "Import Cloudant\u0027s full IOQ code\n"
    },
    {
      "commit": "04bebb3f99b2045da0deb090afb4e6c4eacb67f5",
      "tree": "7fc657f3732353079643f44416194d1761d6ce02",
      "parents": [
        "1d2b149ee12dfeaf8d89a67b2f937207f4c5bdf2",
        "345804ce4d34786acbf0f498a93eac7013a2b0b5"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Oct 05 13:22:37 2017 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Oct 05 13:22:37 2017 -0400"
      },
      "message": "Merge branch \u0027use-couch-rand-module\u0027\n\nFixes #6\n"
    },
    {
      "commit": "345804ce4d34786acbf0f498a93eac7013a2b0b5",
      "tree": "7fc657f3732353079643f44416194d1761d6ce02",
      "parents": [
        "1d2b149ee12dfeaf8d89a67b2f937207f4c5bdf2"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Oct 05 12:05:28 2017 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Oct 05 12:05:28 2017 -0400"
      },
      "message": "Use couch_rand compatibility module\n"
    },
    {
      "commit": "1d2b149ee12dfeaf8d89a67b2f937207f4c5bdf2",
      "tree": "8593fe1e3c5d43b16e6ce3ac326bc012cf639c1b",
      "parents": [
        "ba99ec70d31cf82fe4868ab4bb92b0978f4fe67f",
        "5f5375a0d4fb1ceae9a14ba28ad991ff020a9c9e"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Oct 04 13:10:57 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Oct 04 13:10:57 2016 -0300"
      },
      "message": "Merge remote branch \u0027cloudant:remove-unused-config-subscriber\u0027\n\nThis closes #5\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "5f5375a0d4fb1ceae9a14ba28ad991ff020a9c9e",
      "tree": "8593fe1e3c5d43b16e6ce3ac326bc012cf639c1b",
      "parents": [
        "ba99ec70d31cf82fe4868ab4bb92b0978f4fe67f"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Oct 03 11:42:02 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Oct 03 12:05:32 2016 -0300"
      },
      "message": "Remove unused code\n\nWe are subscribing both ioq and ioq_sup to config_event,\nbut while ioq is actually processing config changes,\nioq_sup just sends uncatched messages to unexisting ioq_server.\n"
    },
    {
      "commit": "ba99ec70d31cf82fe4868ab4bb92b0978f4fe67f",
      "tree": "4509b4aacd23e39fe0b2db91b10971a71f0cd3fb",
      "parents": [
        "c7c75ebeaf41599e3a3e211097d864f0e7785829",
        "126a849fa394f336bc769e85adad143a651c4ec1"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:59:51 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:59:51 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3102-fix-config_subscription\u0027\n\nThis closes #4\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "126a849fa394f336bc769e85adad143a651c4ec1",
      "tree": "4509b4aacd23e39fe0b2db91b10971a71f0cd3fb",
      "parents": [
        "bdcfe6aa3a33c28411f0e4b9b121fff33474c3eb"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:23:24 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 14:25:27 2016 -0700"
      },
      "message": "Fix a typo in a child name\n\nCOUCHDB-3102\n"
    },
    {
      "commit": "bdcfe6aa3a33c28411f0e4b9b121fff33474c3eb",
      "tree": "5ff50ffa1fb26c23e45db0b1e733ae2631605531",
      "parents": [
        "c7c75ebeaf41599e3a3e211097d864f0e7785829"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Aug 22 14:42:07 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Aug 23 12:43:35 2016 -0700"
      },
      "message": "Update handle_config_terminate API\n\nCOUCHDB-3102\n"
    },
    {
      "commit": "c7c75ebeaf41599e3a3e211097d864f0e7785829",
      "tree": "eb709dcb55749662ac18a15b488f152cba919dc2",
      "parents": [
        "217503577e23f26dfd2f9cbaa52e9f78aaa3b308",
        "0ffa7cd9fd1e89ae667ed234d21e04696e3033ae"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Wed Feb 04 18:43:21 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Wed Feb 04 18:43:21 2015 +0300"
      },
      "message": "Merge remote-tracking branch \u0027iilyak/2561-make-config-API-consistent\u0027\n\nThis closes #3\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "0ffa7cd9fd1e89ae667ed234d21e04696e3033ae",
      "tree": "eb709dcb55749662ac18a15b488f152cba919dc2",
      "parents": [
        "ad60d329a038d2b1aa5ee083f22b1ee7906ec31d"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jan 30 11:30:02 2015 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jan 30 11:30:02 2015 -0800"
      },
      "message": "Don\u0027t restart event handler on termination\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "ad60d329a038d2b1aa5ee083f22b1ee7906ec31d",
      "tree": "4b875f11e128ac472e5f18b714d8fc40eb82fcb8",
      "parents": [
        "217503577e23f26dfd2f9cbaa52e9f78aaa3b308"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jan 30 10:59:43 2015 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jan 30 10:59:43 2015 -0800"
      },
      "message": "Update config_listener behaviuor\n\nCOUCHDB-2561\n"
    },
    {
      "commit": "217503577e23f26dfd2f9cbaa52e9f78aaa3b308",
      "tree": "89768e337a12afedcc04dcf47d77f76d07a7485d",
      "parents": [
        "c552c665dc6af0ca750ce074c816c4fcb0f05962"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Jan 13 03:28:39 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Jan 13 03:28:39 2015 +0300"
      },
      "message": "Handle {gen_event_EXIT,{config_listener,ioq},shutdown} message\n"
    },
    {
      "commit": "c552c665dc6af0ca750ce074c816c4fcb0f05962",
      "tree": "1665faa50aa71ac2003beba28ff138e54a8f9f0a",
      "parents": [
        "40d157f39c0fa0d80db9ccf61b770b72103ddbed"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Sep 22 17:35:37 2014 +0400"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Oct 13 21:21:03 2014 +0400"
      },
      "message": "Allow to customize concurrency value\n"
    },
    {
      "commit": "40d157f39c0fa0d80db9ccf61b770b72103ddbed",
      "tree": "c9d94082677adc2c1f0e2cb2a937d1d77a79fb2b",
      "parents": [
        "c7f9ad1c0f77b601aa456e62c963793d517c1026"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Sep 22 17:32:44 2014 +0400"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Oct 13 21:21:02 2014 +0400"
      },
      "message": "Update state on config changes\n"
    },
    {
      "commit": "c7f9ad1c0f77b601aa456e62c963793d517c1026",
      "tree": "dc8792f75009affa0ea2d5a10e504737cca2b972",
      "parents": [
        "04aea732058c5f0b7081b1fa444dbf4b3761cd02"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Sep 05 18:22:44 2014 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Sep 05 18:22:44 2014 +0100"
      },
      "message": "Fallback to direct I/O if ioq is not running\n"
    },
    {
      "commit": "04aea732058c5f0b7081b1fa444dbf4b3761cd02",
      "tree": "93a0cfa4dd419f6c370df5856aa4908636367b0c",
      "parents": [
        "6293a8b88d1cd67c254ac764a046a1c3a0905be4"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 01 19:20:09 2014 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 01 19:20:09 2014 +0100"
      },
      "message": "new IOQ api\n"
    },
    {
      "commit": "6293a8b88d1cd67c254ac764a046a1c3a0905be4",
      "tree": "a71b9e79622d55c4ab5031557001536f4a10201b",
      "parents": [],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Jul 17 17:53:45 2014 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Jul 17 18:01:53 2014 +0100"
      },
      "message": "Initial commit\n\nThis is substantively the work from branch 1775-feature-io-regulator\nbut with erlang application paraphenalia.\n"
    }
  ]
}
