[Tarantool-patches] [PATCH 0/7] Stacked diagnostics area

Nikita Pettik korablev at tarantool.org
Wed Feb 19 17:16:49 MSK 2020


Branch: https://github.com/tarantool/tarantool/commits/np/gh-1148-stacked-diag
Issue:
https://github.com/tarantool/tarantool/issues/1148
https://github.com/tarantool/tarantool/issues/4778

Patch-set basically consists of two parts: first one fixes undocumented
behaviour of box.error.new() which sets created error to diagnostics
area. The reason why it is required is described in the corresponding
github ticked. Second part is about stacked diagnostics itself: patch
error structure extending it with double linked list, provide Lua and
C interfaces to interact with it, support stacked diagnostics in IProto
protocol and net.box module (all points according to the rfc: 
https://github.com/tarantool/tarantool/commit/1acd32d98f628431429b427df19caa9d269bb9c8).

Kirill Shcherbatov (2):
  box: rename diag_add_error to diag_set_error
  iproto: refactor error encoding with mpstream

Nikita Pettik (5):
  box/error: introduce box.error.set() method
  box/error: don't set error created via box.error.new to diag
  box: introduce stacked diagnostic area
  box/error: clarify purpose of reference counting in struct error
  iproto: support error stacked diagnostic area

 extra/exports                   |   2 +
 src/box/applier.cc              |   2 +-
 src/box/error.cc                |  33 +++++
 src/box/error.h                 |  24 ++++
 src/box/iproto_constants.h      |   6 +
 src/box/key_list.c              |  16 +--
 src/box/lua/call.c              |   6 +-
 src/box/lua/error.cc            |  71 ++++++----
 src/box/lua/net_box.lua         |  32 ++++-
 src/box/relay.cc                |   4 +-
 src/box/vy_scheduler.c          |   6 +-
 src/box/xrow.c                  | 150 ++++++++++++++++----
 src/lib/core/diag.c             |  51 +++++++
 src/lib/core/diag.h             | 110 ++++++++++++++-
 src/lib/core/exception.cc       |   2 +-
 src/lib/core/exception.h        |   2 +-
 src/lua/error.c                 |   2 +-
 src/lua/error.h                 |   3 +
 src/lua/error.lua               |  40 ++++++
 src/lua/utils.c                 |   2 +-
 test/box-py/iproto.result       |   6 +-
 test/box-py/iproto.test.py      |   6 +-
 test/box/iproto.result          | 166 ++++++++++++++++++++++
 test/box/iproto.test.lua        |  73 ++++++++++
 test/box/misc.result            | 295 ++++++++++++++++++++++++++++++++++++++++
 test/box/misc.test.lua          | 119 ++++++++++++++++
 test/box/net.box.result         |  65 +++++++++
 test/box/net.box.test.lua       |  25 ++++
 test/engine/func_index.result   |  50 +++++--
 test/engine/func_index.test.lua |   7 +
 30 files changed, 1282 insertions(+), 94 deletions(-)
 create mode 100644 test/box/iproto.result
 create mode 100644 test/box/iproto.test.lua

-- 
2.15.1



More information about the Tarantool-patches mailing list