You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2021/04/20 07:15:44 UTC
[couchdb] branch weatherreport updated (9a5c53c -> 1afcfc2)
This is an automated email from the ASF dual-hosted git repository.
jaydoane pushed a change to branch weatherreport
in repository https://gitbox.apache.org/repos/asf/couchdb.git.
discard 9a5c53c Merge branch '3.x' into weatherreport
discard b5c5a8b Merge branch '3.x' into weatherreport
discard f0f8f84 Add getopt copyright to NOTICE
discard 30f8831 Revert "Remove Cloudant copyright"
discard 2bf5b8a Replace riaknostic in source headers with "derived from riaknostic"
discard 0d0a05b Remove obsolete files
discard 2ce080b Update README.md
discard 768843f Add description and short command flag for config path (--etc)
discard 997051c Remove obsolete files
discard 34ff823 fixup: Add weatherreport-test target
discard 9aba491 Change search check failure from error to warning
discard 5f51de7 Remove Cloudant copyright
discard eec4da1 Support default IOQ in weatherreport
discard 9406932 Fix weatherreport check process calls
discard 1807efc Build, escriptize, and clean up weatherreport
discard 2a7390c Merge remote-tracking branch 'weatherreport/master' into weatherreport
discard 998e1c5 Merge pull request #21 from cloudant/45855-dbnext-rebase
discard 40c1bfc Change s/cloudant/couchdb/g for maintenance_mode
discard 5dc84ee Merge pull request #20 from cloudant/37593-downgrade-proc-count-to-notice
discard d5e52ee Downgrade process call count to notice
discard fc31ca0 Fix description of process_memory check
discard b4b48a9 Merge pull request #16 from cloudant/32877-add-check-for-node-stats-list
discard 4d08c36 Check mean node statistics over one second
discard 54625d26 Merge pull request #15 from cloudant/32872-add-check-for-internal-replication-jobs
discard 86eac03 Check number of pending internal replication jobs
discard 27555c5 Merge pull request #19 from cloudant/34157-handle-conflicted-custodian-output
discard e8c0401 Handle conflicted shard maps
discard 2a6095b there is no app
discard 95026e3 Merge pull request #18 from cloudant/34016-remove-redundant-rpc-calls
discard d052e62 Don't include node name in diagnostic messages
discard 1485d59 Remove redundant rpc calls
discard b412bd2 Remove escriptize from all target
discard 3f745d5 Remove unused function exports
discard e67f4c5 Remove packaged rebar
discard 46d8b4b Remove the getopt dependency
discard cf890f5 Remove twig dependency
discard eef2569 Remove rebar.config dependencies
discard cc5f1b8 Merge pull request #12 from cloudant/32875-check-for-processes-with-high-memory-usage
discard 1ff03d0 Merge pull request #13 from cloudant/32881-check-for-recv-q-and-send-q
discard de7cbf2 Add diagnostic check for TCP recv and send queues
discard 9a96a29 Merge pull request #14 from cloudant/33831-check-safe-to-rebuild
discard 5c365cb Add check for whether node can be safely rebuilt
discard af787ef Diagnostic check for processes by memory usage
discard 8935bfa Generalise threshold checks on process attributes
discard 4ef4f27 Merge pull request #11 from cloudant/33697-flush-stdout-before-exiting
discard c3343fc Try to ensure writes to stdout are flushed
discard 20ebf17 Merge pull request #10 from cloudant/33740-handle-rpc-failures-as-diagnostic-messages
discard 507666a Merge pull request #9 from cloudant/33731-run-single-node-checks-via-rpc
discard 040aee0 Failed checks are turned into diagnostic messages
discard d338928 Run local checks via RPC
discard 3615f61 Run local checks via RPC
discard a00f797 Merge pull request #8 from cloudant/33697-make-timeout-configurable-and-raise-default
discard d004820 Improve logging of failed RPC calls
discard 660ef3f Make timeout for check-over-RPC configurable
discard 4563d9b Merge pull request #7 from cloudant/33696-handle-undefined-first-or-current-call
discard 79cb676 Handle cases where first/current call is undefined
discard 7a055aa Whitespace
discard efb9b90 Merge pull request #6 from cloudant/33695-route-rpc-calls-via-local-cluster-node
discard 21e245f Route rpc checks via local cluster node
discard c9e5052 Remove weatherreport_node:cluster_command funs
discard 28a1e57 Merge pull request #5 from cloudant/33243-provide-option-for-running-on-all-cluster-nodes
discard a564c9d Allow checks to be run across the cluster
discard 185604a Optimize noatime check
discard 7b90d12 Merge pull request #3 from cloudant/32880-diagnostic-checks-for-ioq
discard 8b3427c Add check for IOQ active requests
discard acca5a9 Merge pull request #1 from cloudant/32911-check-processes-by-first-and-current-calls
discard 6ac5681 Add check for processes by first/current call
discard cfa547a Merge pull request #2 from cloudant/32914-custodian-checks
discard 928d635 Merge pull request #4 from cloudant/32909-check-clouseau-availability
discard d544300 Add check for search availability
discard ff6410c Fix unused variable warning
discard 0ea9de9 Improve default etc directory
discard 795e591 Include the node name when logging to stdout
discard b281218 Remove meck as a dependency
discard bbff0c0 Add check for shard safety/liveness
discard 2bf7b20 Add a check for processes with high mbox sizes
discard a402662 Add check for mem3_sync
discard 229f70f Add documentation for adding checks
discard c6fb00e Port to CouchDB: Modify docs and comments
discard a7671d4 Port to CouchDB: Remove travis build status
discard 7119e0f Port to CouchDB: Add weatherreport to .gitignore
discard 20981f1 Port to CouchB: Modify to work with Apache CouchDB
discard 764f347 Port to CouchDB: Update rebar.config
discard e13edc0 Port to CouchDB: Remove targets from Makefile
discard 51b2470 Port to CouchDB: Rename src/riaknostic*
discard bbd45df Port to CouchDB: Remove unwanted files
discard 7f02e64 Merge pull request #83 from basho/bugfix/jsb/start-ensemble-without-aae
discard 7abb29c - Adds a check for strong consistency configuration -- warning when strong consistency is enabled and AAE is disabled (defect https://github.com/basho/riak_kv/issues/959)
discard 8e06fd9 Bump lager dep to 2.0.3
discard 0013176 Bump lager dep to 2.0.2
discard 79924d0 Fix rebar.config url to stay consistent
discard 7801450 Merge branch '1.2' into develop
discard 55fbf4b Roll riaknostic 1.2.1 to pull in lager 2.0.1
discard 28f3b70 Merge pull request #75 from basho/jd-better-vm-args
discard adb8557 added extra -vm_args to CONFIG_ARGS for easy access by erlang vm
discard 6ffd581 Merge pull request #74 from basho/jd-cuttlefish
discard 919c928 pull app.config and vm.args from init:get_arguments
discard 0370d42 Standardize on a rebar.config dep format to reduce conflicts
discard eb3cc66 Standardize meck dep
discard c412315 Remove sysctl checks
discard 4d7e306 Pin meck dependency to a specific tag
discard 77e1e8e Roll riaknostic version 1.2.0
discard 46e8b1d Merge pull request #70 from basho/eas-restore-riaknostic-console-out
discard 338ccc6 Restore riaknostic output to console
discard 4a1931a Merge pull request #68 from basho/bs-lagerbugfix
discard 12f3771 newline fix
discard 7bd0633 Merge pull request #67 from basho/bs-lagerbugfix
discard de4cf10 Add an extra log line for clarity when running non-existent checks
discard daa0abe9 Merge pull request #66 from basho/bs-lagerbugfix
discard cffb60b Un-escriptize riaknostic and modify for lager 2.0 compatability
discard 556a391 Merge pull request #61 from basho/adt-lager2.0-final
discard 4d9bd11 Lager to 2.0.0 final
discard 056f5ac Merge pull request #60 from basho/adt-lager-2.0
discard 1f1f301 Update lager dep to 2.0.0rc2
discard f18c999 Merge pull request #56 from jmatthew/openbsd
discard 9acde62 Add OpenBSD bits
discard 2d181ef Merge pull request #55 from janpieper/misplaced-paranthesis
discard bef4d66 removed misplaced parathesis
discard 9543b22 Merge pull request #54 from macintux/riaknostic-now-in-1.3
discard 3ce0dd3 Clarify that Riak 1.3 already has Riaknostic installed
discard 8fd232a Roll version riaknostic 1.1.0
discard 012c50e Change dep on lager to 1.2.2 to match the rest of riak
discard 5dfbcb5 Fixate lager dependency on 1.2.1
discard 38ba58f Fix lager dependency version now that lager was updated
discard e4ddcfa Added some comments and TODO's
discard fa5cfd1 Fix default output
discard 391e516 Changed getopt version, one other fix
discard 5965eea Merge pull request #41 from evanmcc/pevm_machine_readable_output
discard d255054 Merge pull request #50 from evanmcc/pevm_export_command
discard 3c6b86b Merge pull request #51 from bsparrow435/pevm_sysctl_checks
discard 2d48559 Merge pull request #52 from scalp42/patch-1
discard 8579be4 Update README.md
discard ce9f9ec Removed freeBSD stuff
discard 9813483 clean up, fix some bugs, add directory-grabbing
discard 1246b87 add basic sysctl checking
discard 4737e43 Merge branch 'pevm_machine_readable_output' of github.com:evanmcc/riaknostic into pevm_machine_readable_output, rebasing towards try
discard ba6f3d1 midstream checking to get back to work on export
discard 7d8d0f7 added a (bad) first pass at machine-readable output
discard 45e049b Merge branch 'master' into pevm_export_command to get up to date with master
discard 409f563 update to flesh out the export command a bit more. still needs much testing, especially on smartos
discard 56a4f78 midstream checking to get back to work on export
discard f0d2123 Merge pull request #39 from evanmcc/pevm_38_reassuring_output
discard 8c84b78 added the ability to copy out named files changed the where the files were stored before cleanup to CWD.
discard c5b6650 Added some reassuring output.
discard 18bdc8b another broken checkin, so I can work on something else
discard c3dc0ee move stuff to zip rather than os:cmd added multiple platform support. a couple of bugs/features: - we also need to be able to just grab a copy of a file - we need a list of tests for each platform - need cases for sunos and freebsd - fold in regular diagnostic messages (once I land the fix for #14). - there is a bug in shelling out, only some of the output is actually recorded.
discard 1c16fc2 end of the day temp commit, code still kind of broken
discard 53f3244 added a (bad) first pass at machine-readable output
discard 1aa3a6e Merge pull request #40 from evanmcc/pevm_gitignore_changes
discard 72269f5 add lines for the autosaves of the one true editor
discard 52bce9f Merge pull request #33 from brianshumate/master
discard 868e598 Add Travis CI Build Status to README.md
discard 643e432 some work on the docs re: 26 & 29
discard f9cd8a8 v1.0.2
discard 44270ad Merge pull request #25 from mirell/master
discard a2d5df5 Initial eunit test for riaknostic_check_ring using meck
discard 1471ad9 Add meck as a dependency
discard 1e05e52 Ignore .eunit folder
discard 48d4616 Travis CI config
discard 26b5607 Check if connected first before running all connected
discard da8bbe8 Add can_connect_all to check if all nodes are available.
discard b1a347c eaccess -> eacces to catch the error correctly
discard dc58708 Fix xargs argument for Linux
discard 1ccf9f7 Merge pull request #24 from basho/string-command-output-fix
discard 549b70f Changed regex split to string tokens. Fixes failure in Ubuntu
discard a210a25 Merge pull request #23 from basho/tm-fix-rebar
discard 768d7eb Update lager dependency
discard 670806c v1.0.1
discard 4471a4d Merge pull request #22 from basho/tm-add-check-search
discard ae0f4fa Check whether search is enabled on all nodes
discard a0bdfb4 Merge pull request #20 from basho/igp-ring-preflists-satisfy-n-val
discard 7d6e134 1 Added check for ring preflists satisfying n_val
discard cde9eb8 Merge pull request #19 from mirell/tm-fix-cluster-command
discard 5be1ef5 Fix cluster_command
discard 7b9495a Merge pull request #15 from basho/more_ring_checks
discard 721f882 Fix dialyzer warnings.
discard d5754cd Setup dialyzer.
discard 119a7d2 Fedora installs Riak libraries to /usr/lib64. Closes #18
discard 6a5b8e4 Fix a few mistakes.
discard fc7bbf2 Leave out the ring size/vnode messages until we have a better understanding of the relationship and can give better advice.
discard 741db03 Use -nocookie to prevent usage of the .erlang.cookie file. Closes #16.
discard 1aa2e9b Forgot to stage this line.
discard cb21f07 Solaris ps doesn't understand -o command and we don't use it anyway.
discard 8013a40 Add a word of caution.
discard 5734119 Minor wording correction, add missing docs to riaknostic_node.
discard 7e321ef Change ring size inappropriate check from multiple of 2 to power of 2.
discard 2498c20 Check for: * Ring sizes not a multiple of 2 * Deployments where vnodes/node < 3% of ring size * Deployments where vnodes/node > 70% of ring size
discard 4b31f93 Update the README.
discard b3b439c Build package tarball. Closes #12.
discard f9b07c0 Added Dr. Basho. Thanks @jgnewman! Closes #13.
discard 69f85cb Remove useless memsup info.
discard 522cab8 Make sure to ignore root PNG files and add the new image to the pages.
discard 32b35c7 Add forkme ribbon.
discard 5c603f2 WIP make pages.
discard 65747c8 Ignore parts of the gh-pages branch.
discard b406fba Don't need to link to edoc, reflow some of those paragraphs.
discard e8eca34 Initial version of the landing page.
discard 7680503 Make clear that this stylesheet is for edoc.
discard 27381e9 Add a more verbose description of the behaviour.
discard 453d672 Finish up some styles and documentation, more detail on behaviour needed.
discard ecee063 Add edoc overview, initial stylesheet.
discard 56e1667 Fix docs target, ignore generated docs.
discard 30b3b4d Fix a few bugs and enhance debugging information.
discard ca32f11 Added riaknostic_node module for interacting with the local/cluster nodes.
discard d2eebc0 Recognize -sname switch and distinguish between short and long names.
discard 7e7c4f9 Adjust crash dump detector to use base_dir().
discard 33a57ea Expose base_dir/0 and etc_dir/0.
discard b6fdd55 Absolutize data directories.
discard 90a1333 application:get_env/2 returns {ok, Value}.
discard 364ea48 Implement a huge swath of the runner, disk check works!
discard 5e6e161 Remove high-impact bitcask check.
discard 53cab8b Add top-level script with getopt and check descriptions.
discard 8e97837 WIP riaknostic_config accessors.
discard 54c77b8 Do a little line-wrapping.
discard 58d5fe5 Switching to use a global notion of the config, probably app env but TBD.
discard b8d2d5d Add getopt, cleanup unused or antiquated modules.
discard a05171f Add a little documentation to the private functions.
discard 3fa010f Refactor Joe's disk check module.
discard e13d086 Update TODOs.
discard 1f75b6a Add ability to identify modules that are checks.
discard b419c4d Rename disk check module.
discard b56daf3 Fix typo/syntax error.
discard 98c4905 Refactor ring size check.
discard afe91bc Refactor nodes connected and fix some compilation bugs.
discard 8454e55 Added noatime check.
discard 8c5987a Refactor ring membership.
discard 2c1661b Refactor memory use, add TODOs.
discard ee1172b Starting refactor of check modules.
discard 70d4700 Add check-module behavior according to plan.
discard 92deac7 Add a Makefile, copied from lager.
discard 47a35fa Upgrade rebar.
discard 291f380 Add license headers to all source files. Closes #3.
discard 9fa256c Fixed broken lager:warning call.
discard adffd38 Merge pull request #2 from basho/erlang
discard 80fa9fe Inserted tabs in readme - usage
discard ae97124 Key vals are binary_to_termed before printing.
discard bba4111 Added a guard to bitcask_threshold_check function
discard c9f97a4 Added sibling and vclock options to large value check
discard 124b30d Added lots of command line configuration
discard d712baa Improved code organization Moved from dicts to basic prop lists Added all ebin directories in riak lib to path Riaknostics are discovered via their run/1 methods
discard a3e17b2 Integrated lager
discard d974c58 vm.args can now be parsed in A bit of cleanup
discard f0da5f4 Added conversion from binary to float Fixed issue with higher memory usage check
discard 2ea1fb7 Using list:keyfind for OTP release per Sean's comment
discard ae227aa Improved logging with more logical strucutre
discard 8740e31 Merge pull request #1 from ian-plosker/AZ162-general-cleanup
discard ecfa401 Added a gen_server for logging.
discard 224be02 Added ability to output warnings and errors from riaknostic modules.
discard f05cc9e Improved organization Added util library
discard b43be5f Memory use stats
discard 10f2269 Fixed incorrect application start callback return.
discard 0545eac More readable output.
discard 3c0b588 Got rid of unnecessary sup.
discard 162cbe2 Better output from nodes connected
discard b9e2911 Added dizzy's bitcask large value check.
discard 05ad257 Removed perl script.
discard f1bd2b0 Exrcised riaknostic node from connected node list.
discard 2912fa7 Removed flag to specify vm name because it's not needed.
discard 7ee1046 Added noatime check for all mounted disks.
discard 42f77f1 Added initial version of disk check.
discard 1409d44 Added node to Config dict.
discard 7c4ae90 Added more output to nodes connected.
discard c8c9886 Added type specs.
discard a02ce23 Added a README
discard 3929b1a Scriptized. Name and cookie can be passed in as parameters.
discard 3b50b4f Updated rebar to the current version
discard 948417e Removed unneccassary filter code.
discard 7030565 Moved log directories into the riaknostic.app.
discard 07a6558 General code cleanup.
discard d6b1c94 Fixed ping riak to work more consistantly.
discard 3974f5b Add module to check for connected nodes.
discard 598cb61 Add more check modules.
discard 087f3f4 Add module to test for ring membership.
discard 259e36c Change run code to use a config dict.
discard 7af8996 Less code is good. Just tail-recurse it.
discard 91d9234 Find Riak logs.
discard 8afcc58 Add Riak installation detection.
discard a572cfa Fetch and start printing data from the Riak instance.
discard adec6df Remove shell script version.
discard 705aaf0 Remove io:format that's broken anyway.
discard 8438715 Start porting Riaknostic to Erlang.
discard 7bdcb66 Add some checks if the node is running to prevent errors in checks.
discard 4a57f29 Check number of connected nodes vs. ring members.
discard bacfccf Align status output for easier parsing.
discard e61cb8a Add checks for number of partitions vs. nodes and for not being part of the ring.
discard ef90624 Look for crash dumps and emfile errors.
discard ed58a7c Fetch number of nodes in the ring.
discard 74ef14d Make it a proper hash.
discard cc1bfd8 Check if the Riak node is running.
discard 85767bc Add check for ring_creation_size != num_partitions.
discard a2d80ee Some cleaning up of the Perl code.
discard a0415b7 Port to Perl.
discard 342ba9e I think I'm done with shell scripts for now.
discard d6bfc62 Include Erlang runtime version.
add 7ef98a9 Display name of tests
add f7528c8 Document strip_last_msg in default.ini
add 0144802 Make silly list configurable
add 96b782b Merge pull request #3489 from cloudant/configurable_filter_fields
add ca86ae1 Fix collation issue for older versions of libicu library
add 1842e8c Add support for Spidermonkey 78
add ed21b64 Support uri_file write for chttpd (#3428)
add a27f241 [CI] Move to new containers, expand Erlang matrix (#3504)
add 1d987ae [CI] Move to new containers for full build (#3505)
add 098c5a2 Add docker creds to CI run (#3508)
add 946ab2c Swap OTP_VERSION with OTP_RELEASE macro
add f790830 Add tests for password reqexp
add 5c1739f Add password validation
add b4939ff Test speed up
add ffe608a Switch show-test-results.py to use python 3
add 920d005 Squash Riaknostic commits prior to Weather Report fork
add 0ed0451 Port to CouchDB: Remove unwanted files
add 883276c Port to CouchDB: Rename src/riaknostic*
add c9924af Port to CouchDB: Remove targets from Makefile
add 0d0d98c Port to CouchDB: Update rebar.config
add 05069fe Port to CouchB: Modify to work with Apache CouchDB
add a7057e5 Port to CouchDB: Add weatherreport to .gitignore
add 665ddd1 Port to CouchDB: Remove travis build status
add 57f1c47 Port to CouchDB: Modify docs and comments
add 5d5f3ac Add documentation for adding checks
add 8cfb473 Add check for mem3_sync
add 778fe0b Add a check for processes with high mbox sizes
add 28fb1d5 Remove meck as a dependency
add 9ea8991 Include the node name when logging to stdout
add 3f843a2 Improve default etc directory
add 2940768 Fix unused variable warning
add 0264084 Add check for search availability
add ecde7fc Add check for shard safety/liveness
add dd57fe1 Add check for processes by first/current call
add abc9c53 Add check for IOQ active requests
add d937147 Optimize noatime check
add 90d0691 Allow checks to be run across the cluster
add f3514c7 Remove weatherreport_node:cluster_command funs
add ad06ec0 Route rpc checks via local cluster node
add b18e9f0 Handle cases where first/current call is undefined
add 372e6a6 Whitespace
add 67fd6f3 Make timeout for check-over-RPC configurable
add 69defe2 Improve logging of failed RPC calls
add 045692f Run local checks via RPC
add 5f95349 Run local checks via RPC
add 49bf9e1 Failed checks are turned into diagnostic messages
add 8f14524 Try to ensure writes to stdout are flushed
add 4737cd7 Add check for whether node can be safely rebuilt
add 49d1fde Add diagnostic check for TCP recv and send queues
add 9fb7d72 Generalise threshold checks on process attributes
add 01981c5 Diagnostic check for processes by memory usage
add d85d301 Remove rebar.config dependencies
add 0669cca Remove twig dependency
add 7f722fc Remove the getopt dependency
add 26e7521 Remove packaged rebar
add 6b988ae Remove unused function exports
add aeee603 Remove escriptize from all target
add 9231c11 Remove redundant rpc calls
add 1f4ed90 Don't include node name in diagnostic messages
add 73c724b there is no app
add aa6ed85 Handle conflicted shard maps
add b3272c7 Check number of pending internal replication jobs
add d09b502 Check mean node statistics over one second
add 97295cf Fix description of process_memory check
add 7375ba6 Downgrade process call count to notice
add 3afa803 Change s/cloudant/couchdb/g for maintenance_mode
add 4128812 Merge remote-tracking branch 'weatherreport/riaknostic-squash' into weatherreport
add 62e22e3 Port custom recon process call checks
add 532052e Support default IOQ in weatherreport
add 8617997 Change search check failure from error to warning
add ba03c8e Change header preamble to "derived from riaknostic"
add 54c880e Delete obsolete weatherreport files and documentation
add ad79f3c Update weatherreport documentation
add 5cbb4da Add getopt copyright to NOTICE
add 1199069 Crash if config app fails to start
add 1afcfc2 Build and escriptize weatherreport
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (9a5c53c)
\
N -- N -- N refs/heads/weatherreport (1afcfc2)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
build-aux/Jenkinsfile.full | 96 ++++++----------
build-aux/Jenkinsfile.pr | 21 ++--
build-aux/show-test-results.py | 70 ++++++------
rel/overlay/etc/default.ini | 9 ++
src/chttpd/src/chttpd_sup.erl | 70 +++++++++++-
src/couch/include/couch_db.hrl | 4 +-
.../priv/couch_ejson_compare/couch_ejson_compare.c | 40 +++++++
src/couch/rebar.config.script | 15 ++-
src/couch/src/couch_sup.erl | 51 ---------
src/couch/src/couch_users_db.erl | 80 ++++++++++++-
src/couch/test/eunit/couch_js_tests.erl | 3 +-
src/couch_log/src/couch_log_config.erl | 24 +++-
src/couch_log/src/couch_log_config_dyn.erl | 3 +-
src/couch_log/src/couch_log_formatter.erl | 7 +-
src/couch_log/src/couch_log_sup.erl | 2 +
src/couch_log/test/eunit/couch_log_config_test.erl | 48 +++++++-
support/build_js.escript | 14 +--
test/elixir/test/users_db_test.exs | 125 +++++++++++++++++++++
18 files changed, 496 insertions(+), 186 deletions(-)