summaryrefslogtreecommitdiffstats
path: root/doc/config-debugging.rst
diff options
context:
space:
mode:
authorTomas Krizek <tomas.krizek@nic.cz>2021-03-26 15:41:29 +0100
committerTomas Krizek <tomas.krizek@nic.cz>2021-05-25 14:39:44 +0200
commit17c19474e4b9e40cd15c51ce8ce5bd384b055c10 (patch)
tree534e9b886e43758f7cfd50f3515d6282cef8ccb3 /doc/config-debugging.rst
parentdoc: mention DEBUG_* policies for debugging requests (diff)
downloadknot-resolver-17c19474e4b9e40cd15c51ce8ce5bd384b055c10.tar.xz
knot-resolver-17c19474e4b9e40cd15c51ce8ce5bd384b055c10.zip
doc: document debugging options
Diffstat (limited to 'doc/config-debugging.rst')
-rw-r--r--doc/config-debugging.rst30
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/config-debugging.rst b/doc/config-debugging.rst
new file mode 100644
index 00000000..9de4295f
--- /dev/null
+++ b/doc/config-debugging.rst
@@ -0,0 +1,30 @@
+.. SPDX-License-Identifier: GPL-3.0-or-later
+
+Debugging options
+=================
+
+In case the resolver crashes, it is often helpful to collect a coredump from
+the crashed process. Configuring the system to collect coredump from crashed
+process is out of the scope of this documentation, but some tips can be found
+`here <https://lists.nic.cz/pipermail/knot-resolver-users/2019/000239.html>`_.
+
+Kresd uses *assumptions*, which are checks that should always pass and indicate
+some weird or unexpected state if they don't. In such cases, they show up in
+the log as errors. By default, the process recovers from those states, but the
+behaviour can be changed with the following options to aid further debugging.
+
+.. envvar:: debugging.assumption_abort = false|true
+
+ :return: boolean (default: false)
+
+ Allow the process to be aborted in case it encounters a failed assumption.
+
+.. envvar:: debugging.assumption_fork = true|false
+
+ :return: boolean (default: true)
+
+ If a proccess should be aborted, it can be done in two ways. When this is
+ set to true (default), a child is forked and aborted to obtain a coredump,
+ while the parent process recovers and keeps running. This can be useful to
+ debug a rare issue that occurs in production, since it doesn't affect the
+ main process.