From 5e0f9525991f5d122424922311bc3c0775ebfbb7 Mon Sep 17 00:00:00 2001 From: Georgy Moshkin <gmoshkin@picodata.io> Date: Fri, 14 Apr 2023 10:18:06 +0300 Subject: [PATCH] iproto: request handlers set the fiber name to proc name NO_DOC=picodata internal patch NO_CHANGELOG=picodata internal patch NO_TEST=picodata internal patch --- src/box/iproto.cc | 12 +++++++++++- test/box-luatest/gh_7860_syslog_json_test.lua | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/box/iproto.cc b/src/box/iproto.cc index 54ef40356d..39b492734f 100644 --- a/src/box/iproto.cc +++ b/src/box/iproto.cc @@ -2321,18 +2321,28 @@ tx_process_call(struct cmsg *m) int rc; struct port port; + char fiber_name_sv[FIBER_NAME_MAX]; + strlcpy(&fiber_name_sv[0], fiber_name(fiber()), FIBER_NAME_MAX); + switch (msg->header.type) { case IPROTO_CALL: - case IPROTO_CALL_16: + case IPROTO_CALL_16: { + const char *proc_name = msg->call.name; + uint32_t len = mp_decode_strl(&proc_name); + fiber_set_name_n(fiber(), proc_name, len); rc = box_process_call(&msg->call, &port); break; + } case IPROTO_EVAL: + fiber_set_name(fiber(), "(lua eval)"); rc = box_process_eval(&msg->call, &port); break; default: unreachable(); } + fiber_set_name(fiber(), &fiber_name_sv[0]); + trigger_clear(&fiber_on_yield); if (rc != 0) diff --git a/test/box-luatest/gh_7860_syslog_json_test.lua b/test/box-luatest/gh_7860_syslog_json_test.lua index bd450f49a4..daaadfb2c0 100644 --- a/test/box-luatest/gh_7860_syslog_json_test.lua +++ b/test/box-luatest/gh_7860_syslog_json_test.lua @@ -51,7 +51,7 @@ g.before_all(function(cg) result.file = nil t.assert_equals(result, { cord_name = 'main', - fiber_name = 'main', + fiber_name = '(lua eval)', line = 29, level = 'WARN', message = expected_msg, @@ -66,7 +66,7 @@ g.before_all(function(cg) t.assert_str_matches( hdr, '<%d+>%a+%s+%d%d?%s+%d%d:%d%d:%d%d%s+tt%[' .. cg.pid .. '%]:%s' .. - 'main/%d+/main/test%.box%-luatest%.gh_7860_syslog_json_test%s' .. + 'main/%d+/%(lua eval%)/test%.box%-luatest%.gh_7860_syslog_json_test%s' .. 'gh_7860_syslog_json_test%.lua:29') t.assert_equals(msg, expected_msg .. '\n') end -- GitLab