From: Serge Petrenko via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: v.shpilevoy@tarantool.org, alexander.turenko@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH v2 3/5] feedback_daemon: send feedback on server start Date: Thu, 8 Apr 2021 16:38:39 +0300 [thread overview] Message-ID: <0feec24c50d302255a300e27678448577f30540b.1617888916.git.sergepetrenko@tarantool.org> (raw) In-Reply-To: <cover.1617888916.git.sergepetrenko@tarantool.org> Send the first report as soon as instance's initial configuration finishes. Part of #5750 --- src/box/lua/feedback_daemon.lua | 10 ++++++++++ src/box/lua/load_cfg.lua | 34 ++++++++++++++++++++++----------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/box/lua/feedback_daemon.lua b/src/box/lua/feedback_daemon.lua index d00eedf39..43bbc1fa2 100644 --- a/src/box/lua/feedback_daemon.lua +++ b/src/box/lua/feedback_daemon.lua @@ -323,6 +323,12 @@ local function fill_in_feedback(feedback) return feedback end +-- fixme: remove this hack. +-- It's here to prevent too early feedback sending. +-- This leads to problems with thread sanitization after fork() on Mac OS. +-- Google objc_initializeAfterForkError for details. +local is_first_send = true + local function feedback_loop(self) fiber.name(PREFIX, { truncate = true }) @@ -333,6 +339,10 @@ local function feedback_loop(self) if msg == "stop" then break elseif feedback ~= nil then + if is_first_send then + fiber.sleep(10) + is_first_send = nil + end pcall(http.post, self.host, json.encode(feedback), {timeout=1}) end end diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua index 44bb95ed1..885a0cac1 100644 --- a/src/box/lua/load_cfg.lua +++ b/src/box/lua/load_cfg.lua @@ -626,6 +626,27 @@ setmetatable(box, { end }) +-- A trigger on initial box.cfg{} call. Used to perform some checks and +-- send feedback report once instance is fully configured. +local function on_initial_config() + -- Check if schema version matches Tarantool version and print + -- warning if it's not (in case user forgot to call + -- box.schema.upgrade()). + local needs, schema_version_str = private.schema_needs_upgrade() + if needs then + local msg = string.format( + 'Your schema version is %s while Tarantool %s requires a more'.. + ' recent schema version. Please, consider using box.'.. + 'schema.upgrade().', schema_version_str, box.info.version) + log.warn(msg) + end + + -- Send feedback as soon as instance is configured. + if private.feedback_daemon ~= nil then + private.feedback_daemon.send() + end +end + -- Whether box is loaded. -- -- `false` when box is not configured or when the initialization @@ -716,17 +737,8 @@ local function load_cfg(cfg) box_is_configured = true - -- Check if schema version matches Tarantool version and print - -- warning if it's not (in case user forgot to call - -- box.schema.upgrade()). - local needs, schema_version_str = private.schema_needs_upgrade() - if needs then - local msg = string.format( - 'Your schema version is %s while Tarantool %s requires a more'.. - ' recent schema version. Please, consider using box.'.. - 'schema.upgrade().', schema_version_str, box.info.version) - log.warn(msg) - end + on_initial_config() + end box.cfg = locked(load_cfg) -- 2.24.3 (Apple Git-128)
next prev parent reply other threads:[~2021-04-08 13:42 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-08 13:38 [Tarantool-patches] [PATCH v2 0/5] send feedback on start and on key events Serge Petrenko via Tarantool-patches 2021-04-08 13:38 ` [Tarantool-patches] [PATCH v2 1/5] feedback_daemon: include server uptime in the report Serge Petrenko via Tarantool-patches 2021-04-08 13:38 ` [Tarantool-patches] [PATCH v2 2/5] feedback_daemon: rename `send_test` to `send` Serge Petrenko via Tarantool-patches 2021-04-08 13:38 ` Serge Petrenko via Tarantool-patches [this message] 2021-04-09 21:53 ` [Tarantool-patches] [PATCH v2 3/5] feedback_daemon: send feedback on server start Vladislav Shpilevoy via Tarantool-patches 2021-04-10 15:03 ` Serge Petrenko via Tarantool-patches 2021-04-08 13:38 ` [Tarantool-patches] [PATCH v2 4/5] feedback_daemon: generate report right before sending Serge Petrenko via Tarantool-patches 2021-04-09 21:53 ` Vladislav Shpilevoy via Tarantool-patches 2021-04-10 15:03 ` Serge Petrenko via Tarantool-patches 2021-04-08 13:38 ` [Tarantool-patches] [PATCH v2 5/5] feedback_daemon: count and report some events Serge Petrenko via Tarantool-patches 2021-04-13 8:31 ` Alexander Turenko via Tarantool-patches 2021-04-13 10:38 ` Serge Petrenko via Tarantool-patches 2021-04-11 14:15 ` [Tarantool-patches] [PATCH v2 0/5] send feedback on start and on key events Vladislav Shpilevoy via Tarantool-patches 2021-04-12 6:04 ` Kirill Yukhin via Tarantool-patches 2021-04-13 9:44 ` Alexander Turenko via Tarantool-patches 2021-04-12 6:05 ` Kirill Yukhin via Tarantool-patches
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=0feec24c50d302255a300e27678448577f30540b.1617888916.git.sergepetrenko@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=alexander.turenko@tarantool.org \ --cc=sergepetrenko@tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 3/5] feedback_daemon: send feedback on server start' \ /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