diff --git a/src/box/iproto.cc b/src/box/iproto.cc index 54ef40356d2cfb7bcba26d4ae8b71dc0ad3311a3..39b492734f06161478ba3fea3c183b38c9e66d4d 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 bd450f49a4eea9021d3574dacd3e4e97fcc569c5..daaadfb2c0e0ce2a90f5cd095f05363e34250d50 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