Tarantool development patches archive
 help / color / mirror / Atom feed
From: lvasiliev <lvasiliev@tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v2 4/5] iproto: Add session settings for IPROTO
Date: Thu, 16 Apr 2020 12:36:27 +0300	[thread overview]
Message-ID: <c0cd57e9-70d3-2d88-8da2-d3fe815fb6d5@tarantool.org> (raw)
In-Reply-To: <5c3af252-f1ce-3e93-ac64-135eed764e06@tarantool.org>

Hi! Thanks you for the feedback.

On 16.04.2020 3:06, Vladislav Shpilevoy wrote:
> Hi! Thanks for the fixes!
> 
>>>> @TarantoolBot document
>>>>       Title: Add session_setting
>>>
>>> The doc request is corrupted, docbot won't understand that because
>>> of leading whitespaces.
>>>
>>>> iproto_error_format setting has been added to _session_settings
>>>
>>> Looks like there is a lack of global setting similar to what we had
>>> for tracebacks. Currently, when the option is false (by default), and
>>> I want to use the new format everywhere, I need to find every single
>>> place where I create a new session, and put there code saying
>>>
>>>       box.session.settings.error_format = new/old/whatever
>>>
>>> I think there should be a global option when a user's application is
>>> ready to switch to the new format completely. Otherwise it is going
>>> to be hell to find all places where a new session is created, and patch
>>> them.
>>>
>>> Just a reminder - every fiber.new(), fiber.create() creates a session,
>>> every iproto connection is a session.
>> This was discussed in TPT chat with Mons and Nazarov, and after that with you, Turenko, Mons ... in zoom. I was orienteted by the net.box session and I might not know something. Where do you suggest storing the setting?
> 
> Looks like you didn't understood me. I don't propose to remove the
> session local option. I propose to provide an ability to override it
> with a global option if necessary. So we have session option by
> default with the old format, and global option unset.
> 
> If someone is ready to start using new errors everywhere, he just turns
> the global option on.
> 
> If someone is not ready, he continues using session local option.
> 
> Why that may be needed - I said above. Turning that option on for every
> session is going to be very tricky. But maybe it can be moved to the next
> release (the global option). Don't know. The issue is already a huge
> blackhole which absorbed lots of independent initially unplanned
> features. The more we move for later, the better.
> 
> You should try to ask users in the red chat. It helps sometimes, they
> can share their opinions and experience of upgrades. Just formulate your
> question in a short but detailed manner, provide a couple of
> ready-to-choose answers, probably a poll.
> 
Ok. But for beginning, I need to understand where this flag can be
located. I will think about that but if you have a proposal, please,
write it.
>>>> +        local ext_err_supported = version_at_least(remote.peer_version_id, 2, 4, 1)
>>>
>>> 3. This won't work in case it is an instance bootstrapped from the master
>>> branch before 2.4.1 was released. I don't know how to fix it now.
>> Sorry, I think this should not work until the release.
> 
> Exactly for 'between-releases' users we introduced the new versioning schema
> with 4 numbers. I don't think we can just say fuck off to them now. I
> would better drop this from the patchset and added when somebody explicitly
> asks for that, with good design and planning.
> 
Ok.I have remove it, but:"Don't have 'between-releases' users a version 
more when previous release?"
>>>
>>>> +        if not ext_err_supported then
>>>> +            box.error(box.error.PROC_LUA,
>>>> +                      "Server doesn't support extended error format")
>>>> +        end
>>>> +        remote.space._session_settings:update('iproto_error_format',
>>>> +                                              {{'=', 2, 1}})
>>>
>>> 4. This is additional network hop. I don't think it should be done
>>> automatically. I would let users do that.
>> It's network hop only if option will be set.As optimization it can be included to auth packet in future.
> 
> Auth packets have nothing to do with session settings. It would be
> encapsulation violation. Moreover, in addition to settings we may
> want to configure more things in future. What if an encryption will
> be added to Tarantool? What if we will add key exchange? I think we
> should not add a new option + 1 network hop for every 'negotiation'
> thing. Better omit this for now and design this properly when we have
> more time.
> 
> I don't propose to remove your code. I just propose to finish some
> non-critical parts of it later.
> 
ok

  reply	other threads:[~2020-04-16  9:36 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-10  8:10 [Tarantool-patches] [PATCH v2 0/5] Extending error functionality Leonid Vasiliev
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 1/5] error: Add a Lua backtrace to error Leonid Vasiliev
2020-04-14  1:11   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:00       ` Vladislav Shpilevoy
2020-04-16  1:11         ` Alexander Turenko
2020-04-16  8:58           ` lvasiliev
2020-04-16  9:30             ` Alexander Turenko
2020-04-16 12:27               ` lvasiliev
2020-04-16 12:45                 ` Alexander Turenko
2020-04-16 17:48                   ` lvasiliev
2020-04-16  8:40         ` lvasiliev
2020-04-16  9:04           ` lvasiliev
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 2/5] error: Add the custom error type Leonid Vasiliev
2020-04-14  1:11   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:02       ` Vladislav Shpilevoy
2020-04-16  9:18         ` lvasiliev
2020-04-16 21:03           ` Vladislav Shpilevoy
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 3/5] error: Increase the number of fields transmitted through IPROTO Leonid Vasiliev
2020-04-14  1:12   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:02       ` Vladislav Shpilevoy
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 4/5] iproto: Add session settings for IPROTO Leonid Vasiliev
2020-04-14  1:12   ` Vladislav Shpilevoy
2020-04-15  9:26     ` lvasiliev
2020-04-16  0:06       ` Vladislav Shpilevoy
2020-04-16  9:36         ` lvasiliev [this message]
2020-04-16 21:04           ` Vladislav Shpilevoy
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 5/5] iproto: Update error MsgPack encoding Leonid Vasiliev
2020-04-14  1:12   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:11       ` Vladislav Shpilevoy
2020-04-16 10:04         ` lvasiliev
2020-04-16 21:06           ` Vladislav Shpilevoy
2020-04-14  1:10 ` [Tarantool-patches] [PATCH v2 0/5] Extending error functionality Vladislav Shpilevoy
2020-04-15  9:48   ` lvasiliev

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=c0cd57e9-70d3-2d88-8da2-d3fe815fb6d5@tarantool.org \
    --to=lvasiliev@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v2 4/5] iproto: Add session settings for IPROTO' \
    /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