[tarantool-patches] [PATCH v2 0/3] box: stacked diagnostics area in fiber
Kirill Shcherbatov
kshcherbatov at tarantool.org
Fri Aug 23 12:59:27 MSK 2019
Support stacked diagnostics for Tarantool allows to accumulate all
occurred errors during processing a request. This allows to better
understand what has happened and handle errors correspondingly.
This patch introduces core methods diag_add(), diag_svp(),
diag_rollback_to_svp() that allows you to produce a better
diagnostics information for a user.
There is an other new Lua endpoint
box.error.prev() that allows you to get a reason for a given
error object.
Changes in v2:
- new API - user shouldn't have an ability to modify an existent
error object that he didn't constructed.
- a new detailed unit-test that performs a good coverage for
many complicated reference-counting scenarios.
Branch: http://github.com/tarantool/tarantool/tree/kshch/gh-1148-stacked-errors
Issue: https://github.com/tarantool/tarantool/issues/1148
Kirill Shcherbatov (3):
box: rfc for stacked diagnostic area in Tarantool
box: rename diag_add_error to diag_set_error
box: introduce stacked diagnostic area
src/lib/core/diag.h | 82 ++++++++++++-
src/lib/core/exception.h | 2 +-
src/lua/error.h | 3 +
src/box/key_list.c | 16 +--
src/box/lua/call.c | 6 +-
src/box/vy_scheduler.c | 6 +-
src/lib/core/diag.c | 1 +
src/lua/error.c | 2 +-
src/lua/utils.c | 2 +-
doc/rfc/1148-stacked-diagnostics.md | 175 ++++++++++++++++++++++++++++
src/box/applier.cc | 2 +-
src/box/error.cc | 2 +-
src/box/lua/error.cc | 20 ++++
src/box/relay.cc | 4 +-
src/lib/core/exception.cc | 2 +-
src/lua/error.lua | 2 +
test/engine/func_index.result | 48 ++++++--
test/engine/func_index.test.lua | 7 ++
test/unit/CMakeLists.txt | 2 +-
test/unit/fiber.cc | 157 +++++++++++++++++++++++++
test/unit/fiber.result | 60 ++++++++++
21 files changed, 566 insertions(+), 35 deletions(-)
create mode 100644 doc/rfc/1148-stacked-diagnostics.md
--
2.22.1
More information about the Tarantool-patches
mailing list