{"push_id":2953880153,"size":15,"distinct_size":10,"ref":"refs/heads/84736-handle-db-deletion-in-load_validation_funs","head":"81aeced9968677f8466fb97996209448ff751d70","before":"51a27b3713b6ee6a47e2cf119e736f2a307e2901","commits":[{"sha":"5ee80858da68566a6007b5eb4682963534aa5185","author":{"name":"Nick Vatamaniuc","email":"3cdad521b2e24072cc1b058966344ec834a57fa6@apache.org"},"message":"Do not crash replicator on VDU function failure\n\nPreviously a user could insert a VDU function into one of the _replicator\ndatabases such that it prevents the replicator application from updating\ndocuments in that db. Replicator application would then crash and prevent\nreplications from running on the whole cluster.\n\nTo avoid crashing the replicator when saving documents, log the error\nand return `{ok, forbidden}`. The return might seem odd but we are\nasserting that forbidden is an OK value in this context and explicitly\nhandling it. This shape of the return also conforms to the expected\n`{ok, _Rev}` result, noticing that `_Rev` is never actually used.","distinct":false,"url":"https://api.github.com/repos/cloudant/couchdb/commits/5ee80858da68566a6007b5eb4682963534aa5185"},{"sha":"4d3dfc6c0aad1f8786d89616b961a51afec2cd6e","author":{"name":"Paul J. Davis","email":"50cc62d38ec7f9c59e76c9391aabf5777fb03fab@gmail.com"},"message":"Enable parameterized module calls\n\nThis is a temporary bandaid to allow us to continue using parameterized\nmodules with Erlang 21. We'll have to go back and modify every one of\nthese files to avoid that as well as figuring out how to upgrade\nmochiweb to something that doesn't use parameterized modules by the time\nthey are fully removed from Erlang.\n\nFixes #1396","distinct":false,"url":"https://api.github.com/repos/cloudant/couchdb/commits/4d3dfc6c0aad1f8786d89616b961a51afec2cd6e"},{"sha":"2e8cde50bd3973fdb40fcd7c0ecd9d299b80dc85","author":{"name":"Paul J. Davis","email":"50cc62d38ec7f9c59e76c9391aabf5777fb03fab@gmail.com"},"message":"Fix couch_log eunit tests\n\nFixes #1396","distinct":false,"url":"https://api.github.com/repos/cloudant/couchdb/commits/2e8cde50bd3973fdb40fcd7c0ecd9d299b80dc85"},{"sha":"436e5f0d29ab399d6e14a4c531bfa35336591d41","author":{"name":"Paul J. Davis","email":"50cc62d38ec7f9c59e76c9391aabf5777fb03fab@gmail.com"},"message":"Fix use of process_info(Pid, monitored_by)\n\nThis can now return references that are from NIFs monitoring the\nprocess. This is important for the new file IO NIFs that monitor the\ncontrolling process. For now we'll just take the easy way out by\nfiltering the references from our returned monitor lists.\n\nFixes #1396","distinct":false,"url":"https://api.github.com/repos/cloudant/couchdb/commits/436e5f0d29ab399d6e14a4c531bfa35336591d41"},{"sha":"be6de6f32d0be7147dce8ebe39dd54c07d7be31f","author":{"name":"Paul J. Davis","email":"50cc62d38ec7f9c59e76c9391aabf5777fb03fab@gmail.com"},"message":"Update rebar.config.script and travis CI\n\nFixes #1396","distinct":false,"url":"https://api.github.com/repos/cloudant/couchdb/commits/be6de6f32d0be7147dce8ebe39dd54c07d7be31f"},{"sha":"aa63804c3b3fc4b637d7095f5ff993ff2d01818e","author":{"name":"ILYA Khlopotov","email":"3fd039c72976f9f89629fb5b95d0a929c183add0@apache.org"},"message":"Validate database prefix against DBNAME_REGEX for system dbs\n\nPreviously we only checked that the suffix of the database is\nmatching one of the predefined system databases. We really should\ncheck the prefix against DBNAME_REGEXP to prevent creation of\nillegally named databases.\n\nThis fixes #1644","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/aa63804c3b3fc4b637d7095f5ff993ff2d01818e"},{"sha":"959945575293244f948e887d6b0c42449fcdccd6","author":{"name":"iilyak","email":"3fd039c72976f9f89629fb5b95d0a929c183add0@users.noreply.github.com"},"message":"Merge pull request #1647 from cloudant/validate-prefix-for-systemdbs\n\nValidate database prefix against DBNAME_REGEX for system dbs","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/959945575293244f948e887d6b0c42449fcdccd6"},{"sha":"d9843824ee16ef237b182abd30b5dbfa5d251bcd","author":{"name":"Robert Newson","email":"6be1d2eb1da4ad201ef1d6e1cff61f9bfb8675fe@apache.org"},"message":"Pass user_ctx in _bulk_get\n\nThis fixes _bulk_get for _users db and probably others I don't know","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/d9843824ee16ef237b182abd30b5dbfa5d251bcd"},{"sha":"9675616d432b4553ebc5f77267ec05b71e05495b","author":{"name":"Robert Newson","email":"6be1d2eb1da4ad201ef1d6e1cff61f9bfb8675fe@apache.org"},"message":"Merge pull request #1650 from apache/bulk_get_users_db\n\nPass user_ctx in _bulk_get","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/9675616d432b4553ebc5f77267ec05b71e05495b"},{"sha":"ec7ec28164dd62130aa475c7edae7241a48af164","author":{"name":"Eric Avdey","email":"d1b8c13b9dc857314f3c7b04848a5bc2785ed1a4@eiri.ca"},"message":"Restrict access to _active_tasks to server admin","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/ec7ec28164dd62130aa475c7edae7241a48af164"},{"sha":"7073ef1870f070c092f63e5952b0163a51034d0c","author":{"name":"Eric Avdey","email":"d1b8c13b9dc857314f3c7b04848a5bc2785ed1a4@eiri.ca"},"message":"Merge pull request #1652 from cloudant/restrict-active_tasks-to-server-admin\n\nRestrict access to `_active_tasks` to server admin","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/7073ef1870f070c092f63e5952b0163a51034d0c"},{"sha":"87fde5988e84913909ed1ad5258f151f7ef4c165","author":{"name":"jiangph","email":"7bca46234a6b6ea39aa997f9abe15096afa92b20@cn.ibm.com"},"message":"Add document_purges counter for stats\n\nCOUCHDB-3326","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/87fde5988e84913909ed1ad5258f151f7ef4c165"},{"sha":"adebd386ee55f65c1b58b3fab232dda9f351c739","author":{"name":"Peng Hui Jiang","email":"b9c58f23b3d6fe1eceb3ad4d014c4cea584f0458@apache.org"},"message":"Merge pull request #1649 from apache/COUCHDB-3326-metrics-docs-purges\n\nAdd document_purges counter for stats","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/adebd386ee55f65c1b58b3fab232dda9f351c739"},{"sha":"9872b9772269249d82b963e8f81afd740a887ed8","author":{"name":"ILYA Khlopotov","email":"3fd039c72976f9f89629fb5b95d0a929c183add0@apache.org"},"message":"Handle db deletion in couch_db:load_validation_funs\n\nPreviously there were few problems with load_validation_funs\nin the case when clustered database is deleted.\n\n- the calls to load_validation_funs were failing with `internal_server` error [1]\n- the deleted database stayed opened because:\n  - the caller of the load_validation_funs (update_doc) stayed alive\n  - the main_pid of the deleted database wasn't killed either\n- there was an infinite loop in ddoc_cache_entry trying to recover ddoc from deleted database\n\nThe solution is:\n- do not call `recover` for deleted database\n- close `main_pid`\n- use `erlang:error` to crash the caller\n\n[1] - The stack trace was:\n```\n{database_does_not_exist,[\n    {mem3_shards,load_shards_from_db,\"bailey/meta\",[\n        {file,\"src/mem3_shards.erl\"},{line,394}]},\n    {mem3_shards,load_shards_from_disk,1,[\n        {file,\"src/mem3_shards.erl\"},{line,369}]},\n    {mem3_shards,for_db,2,[\n        {file,\"src/mem3_shards.erl\"},{line,54}]},\n    {fabric_view_all_docs,go,5,[\n        {file,\"src/fabric_view_all_docs.erl\"},{line,24}]},\n    {ddoc_cache_entry_validation_funs,recover,1,[\n        {file,\"src/ddoc_cache_entry_validation_funs.erl\"},{line,33}]},\n    {ddoc_cache_entry,do_open,1,[\n        {file,\"src/ddoc_cache_entry.erl\"},{line,294}]}]}\n```","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/9872b9772269249d82b963e8f81afd740a887ed8"},{"sha":"81aeced9968677f8466fb97996209448ff751d70","author":{"name":"ILYA Khlopotov","email":"3fd039c72976f9f89629fb5b95d0a929c183add0@apache.org"},"message":"Add tests for database delete case for load_validation_funs","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/81aeced9968677f8466fb97996209448ff751d70"}]}
{"actor":{"display_login":"iilyak"}}