tarantool / tarantool/doc

Document IPROTO_FEATURE_ERROR_EXTENSION

Open
#2,416 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

2.10 errors feature iproto
Dominant language
CSS
Stars
15
Forks
49
Avg merge
1d 13h
Merged PRs (30d)
3

Description

Product: Tarantool
Since: 2.10.0-beta2
Audience/target: developers
Root document: https://www.tarantool.io/en/doc/latest/dev_guide/internals/box_protocol/
SME:* @ locker

Details

A new feature bit for the IPROTO_ID command was added:

IPROTO_FEATURE_ERROR_EXTENSION = 2 

The protocol version was incremented - now it equals 2.

If a network client sets this bit, errors returned by CALL/EVAL will be
encoded as the MP_ERROR MsgPack extension (unless disabled globally by
msgpack.cfg.encode_error_as_ext). If the bit is unset, errors will be
encoded according to the serialization rules used for generic cdata
objects (converted to strings by default).

The built-in net.box connector sets this feature bit.

The server sets this feature bit if it supports the MP_ERROR MsgPack
extension so a net.box client can explicitly request the feature upon
connecting to a server:

net.box.connect(uri, {required_protocol_features = {'error_extension'}})

Requested by @locker in https://github.com/tarantool/tarantool/commit/342f601fc0f984ffa975897ee602d9f9cfc2d0ad

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Open the box protocol root document at the Tarantool documentation URL and find the section covering IPROTO_ID features. Document IPROTO_FEATURE_ERROR_EXTENSION, protocol version 2, MP_ERROR encoding behavior, and the net.box required_protocol_features example; the work is done when these details are accurately reflected in the protocol guide.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.