Tarantool development patches archive
 help / color / mirror / Atom feed
* [tarantool-patches] [PATCH v2 0/3] box: stacked diagnostics area in fiber
@ 2019-08-23  9:59 Kirill Shcherbatov
  2019-08-23  9:59 ` [tarantool-patches] [PATCH v2 1/3] box: rfc for stacked diagnostic area in Tarantool Kirill Shcherbatov
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Kirill Shcherbatov @ 2019-08-23  9:59 UTC (permalink / raw)
  To: tarantool-patches, georgy; +Cc: alexander.turenko, kostja, Kirill Shcherbatov

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2019-08-30 14:19 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-23  9:59 [tarantool-patches] [PATCH v2 0/3] box: stacked diagnostics area in fiber Kirill Shcherbatov
2019-08-23  9:59 ` [tarantool-patches] [PATCH v2 1/3] box: rfc for stacked diagnostic area in Tarantool Kirill Shcherbatov
2019-08-26 22:26   ` [tarantool-patches] " Konstantin Osipov
2019-08-26 23:25     ` Alexander Turenko
2019-08-27 18:38       ` Konstantin Osipov
2019-08-30 12:58   ` Alexander Turenko
2019-08-30 13:24     ` Kirill Shcherbatov
2019-08-30 14:11       ` Alexander Turenko
2019-08-30 14:13         ` Kirill Shcherbatov
2019-08-30 14:19           ` Alexander Turenko
2019-08-23  9:59 ` [tarantool-patches] [PATCH v2 2/3] box: rename diag_add_error to diag_set_error Kirill Shcherbatov
2019-08-26 22:27   ` [tarantool-patches] " Konstantin Osipov
2019-08-23  9:59 ` [tarantool-patches] [PATCH v2 3/3] box: introduce stacked diagnostic area Kirill Shcherbatov
2019-08-26 22:34   ` [tarantool-patches] " Konstantin Osipov
2019-08-26 23:23     ` Alexander Turenko
2019-08-28  9:26       ` Konstantin Osipov
2019-08-26 22:34   ` Konstantin Osipov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox