From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: Nikita Pettik <korablev@tarantool.org>, tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH] box: always promote error created via box.error() to diag Date: Thu, 2 Apr 2020 02:37:56 +0200 [thread overview] Message-ID: <2d0316df-dda7-6438-d8cb-c7fd6290d830@tarantool.org> (raw) In-Reply-To: <cb1010c1497f1d134e576b5bbbd6c1d0520ff7f4.1585756172.git.korablev@tarantool.org> Thanks for the patch! On 01/04/2020 17:52, Nikita Pettik wrote: > Note that it is vital that box.error() now promotes error to diag, since > otherwise user is unable to set to diag custom error, which in turn is Why unable? I thought we have box.error.set(). You can always do box.error.set(error_object) box.error() This is equivalent of box.error(error_object) which you are doing in this patch. > linked with other errors: > > e1 = box.error.new({code = 111, reason = "cause"}) > e2 = box.error.new({code = 111, reason = "err"}) > e2:set_prev(e1) > -- There's no means to set e2 to diagnostic area. tarantool> e1 = box.error.new({code = 111}) --- ... tarantool> e2 = box.error.new({code = 111}) --- ... tarantool> e2:set_prev(e1) --- ... tarantool> box.error.set(e2) --- ... tarantool> box.error.last() == e2 --- - true ... > This patch makes box.error() always promote error to the diagnostic > area despite of passed arguments. But I am not against this patch. It is a nice sugar, when you need to both set + throw. It is LGTM except the commit message due to comments above. > Closes #4829 > > @TarantoolBot document > Title: always promote error created via box.error() to diag > > box.error() is able to accept two types of argument: either pair of code > + reason (box.error{code = 555, reason = 'Arbitrary message'}) or error > object (box.error(err)). In the first case error is promoted to > diagnostic area, meanwhile in the latter - it is not: > ``` > e1 = box.error.new({code = 111, reason = "cause"}) > box.error({code = 111, reason = "err"}) > - error: err > box.error.last() > - err > box.error(e1) > - error: cause > box.error.last() > - err > ``` > From now box.error(e1) sets error to diagnostic area as well: > ``` > box.error(e1) > - error: cause > box.error.last() > - cause > ``` > ---
next prev parent reply other threads:[~2020-04-02 0:37 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-01 15:52 Nikita Pettik 2020-04-02 0:37 ` Vladislav Shpilevoy [this message] 2020-04-02 14:15 ` Nikita Pettik 2020-04-02 22:20 ` Vladislav Shpilevoy 2020-04-03 1:55 ` Nikita Pettik
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=2d0316df-dda7-6438-d8cb-c7fd6290d830@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=korablev@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH] box: always promote error created via box.error() to diag' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox