From: Cyrill Gorcunov <gorcunov@gmail.com> To: tml <tarantool-patches@dev.tarantool.org> Cc: Mons Anderson <v.perepelitsa@corp.mail.ru>, Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Subject: [Tarantool-patches] [PATCH v3 4/4] cfg: configure crash report sending Date: Fri, 4 Dec 2020 18:30:03 +0300 [thread overview] Message-ID: <20201204153003.175555-5-gorcunov@gmail.com> (raw) In-Reply-To: <20201204153003.175555-1-gorcunov@gmail.com> Introcude a new option to box.cfg{} to control sending of a crash report. There is no simple way to test all this because it involves subsequent runs of tarantool. I've been using one terminal with tarantool running inside as > box.cfg{feedback_host="127.0.0.1:1500"} another terminal to listen for incoming data > while true ; do nc -l -p 1500 -c 'echo -e "HTTP/1.1 200 OK\n\n $(date)"'; done and one another to kill main tarantool instance > kill -11 `pidof tarantool` If we run as > box.cfg{feedback_host="127.0.0.1:1500", feedback_no_crashinfo=true} then the crash report will not be sent. Closes #5261 Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> @TarantoolBot document Title: Configuration reference Header: Feedback For better analisys of program crashes the information associated with the crash such as - utsname (similar to `uname -a` output except the network name) - build information - reason for a crash - call backtrace is sent to the feedback server. To disable it set `feedback_no_crashinfo` to `false`. --- src/box/lua/feedback_daemon.lua | 7 +++++++ src/box/lua/load_cfg.lua | 3 +++ src/lib/core/errstat.c | 2 +- test/box/admin.result | 2 ++ test/box/cfg.result | 4 ++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/box/lua/feedback_daemon.lua b/src/box/lua/feedback_daemon.lua index 1d39012ed..613d2864c 100644 --- a/src/box/lua/feedback_daemon.lua +++ b/src/box/lua/feedback_daemon.lua @@ -1,6 +1,7 @@ -- feedback_daemon.lua (internal file) -- local log = require('log') +local ffi = require('ffi') local json = require('json') local fiber = require('fiber') local http = require('http.client') @@ -360,12 +361,18 @@ local function reload(self) self:start() end +ffi.cdef[[ +void +cfg_errstat_set_params(void); +]] + setmetatable(daemon, { __index = { set_feedback_params = function() daemon.enabled = box.cfg.feedback_enabled daemon.host = box.cfg.feedback_host daemon.interval = box.cfg.feedback_interval + ffi.C.cfg_errstat_set_params() reload(daemon) return end, diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua index 770442052..1878c31bd 100644 --- a/src/box/lua/load_cfg.lua +++ b/src/box/lua/load_cfg.lua @@ -99,6 +99,7 @@ local default_cfg = { replication_skip_conflict = false, replication_anon = false, feedback_enabled = true, + feedback_no_crashinfo = false, feedback_host = "https://feedback.tarantool.io", feedback_interval = 3600, net_msg_max = 768, @@ -179,6 +180,7 @@ local template_cfg = { replication_skip_conflict = 'boolean', replication_anon = 'boolean', feedback_enabled = ifdef_feedback('boolean'), + feedback_no_crashinfo = ifdef_feedback('boolean'), feedback_host = ifdef_feedback('string'), feedback_interval = ifdef_feedback('number'), net_msg_max = 'number', @@ -277,6 +279,7 @@ local dynamic_cfg = { checkpoint_wal_threshold = private.cfg_set_checkpoint_wal_threshold, worker_pool_threads = private.cfg_set_worker_pool_threads, feedback_enabled = ifdef_feedback_set_params, + feedback_no_crashinfo = ifdef_feedback_set_params, feedback_host = ifdef_feedback_set_params, feedback_interval = ifdef_feedback_set_params, -- do nothing, affects new replicas, which query this value on start diff --git a/src/lib/core/errstat.c b/src/lib/core/errstat.c index 992bc426a..8664908f6 100644 --- a/src/lib/core/errstat.c +++ b/src/lib/core/errstat.c @@ -23,7 +23,7 @@ #define pr_panic(fmt, ...) panic(pr_fmt(fmt), ##__VA_ARGS__) static struct errstat glob_errstat; -static bool cfg_send_crash = false; +static bool cfg_send_crash = true; /* * We don't need it to be optimized but rather a compact form. diff --git a/test/box/admin.result b/test/box/admin.result index 8c5626c36..b8fa68749 100644 --- a/test/box/admin.result +++ b/test/box/admin.result @@ -47,6 +47,8 @@ cfg_filter(box.cfg) - https://feedback.tarantool.io - - feedback_interval - 3600 + - - feedback_no_crashinfo + - false - - force_recovery - false - - hot_standby diff --git a/test/box/cfg.result b/test/box/cfg.result index 5ca6ce72b..68c45b4cc 100644 --- a/test/box/cfg.result +++ b/test/box/cfg.result @@ -35,6 +35,8 @@ cfg_filter(box.cfg) | - https://feedback.tarantool.io | - - feedback_interval | - 3600 + | - - feedback_no_crashinfo + | - false | - - force_recovery | - false | - - hot_standby @@ -148,6 +150,8 @@ cfg_filter(box.cfg) | - https://feedback.tarantool.io | - - feedback_interval | - 3600 + | - - feedback_no_crashinfo + | - false | - - force_recovery | - false | - - hot_standby -- 2.26.2
next prev parent reply other threads:[~2020-12-04 15:30 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-04 15:29 [Tarantool-patches] [PATCH v3 0/4] crash dump: implement sending feedback Cyrill Gorcunov 2020-12-04 15:30 ` [Tarantool-patches] [PATCH v3 1/4] backtrace: allow to specify destination buffer Cyrill Gorcunov 2020-12-05 18:30 ` Vladislav Shpilevoy 2020-12-05 18:52 ` Cyrill Gorcunov 2020-12-04 15:30 ` [Tarantool-patches] [PATCH v3 2/4] errstat: add crash report base code Cyrill Gorcunov 2020-12-05 18:33 ` Vladislav Shpilevoy 2020-12-05 19:58 ` Cyrill Gorcunov 2020-12-06 15:50 ` Vladislav Shpilevoy 2020-12-04 15:30 ` [Tarantool-patches] [PATCH v3 3/4] crash: use errstat code in fatal signals Cyrill Gorcunov 2020-12-05 18:33 ` Vladislav Shpilevoy 2020-12-05 20:04 ` Cyrill Gorcunov 2020-12-04 15:30 ` Cyrill Gorcunov [this message] 2020-12-05 18:34 ` [Tarantool-patches] [PATCH v3 4/4] cfg: configure crash report sending Vladislav Shpilevoy 2020-12-05 18:30 ` [Tarantool-patches] [PATCH v3 0/4] crash dump: implement sending feedback Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201204153003.175555-5-gorcunov@gmail.com \ --to=gorcunov@gmail.com \ --cc=tarantool-patches@dev.tarantool.org \ --cc=v.perepelitsa@corp.mail.ru \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v3 4/4] cfg: configure crash report sending' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox