From: Alexander Turenko <alexander.turenko@tarantool.org>
To: Timur Safin <tsafin@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org
Subject: Re: [Tarantool-patches] [PATCH 2.X 3/7] module api: luaT_newthread
Date: Fri, 2 Oct 2020 15:53:52 +0300 [thread overview]
Message-ID: <20201002125352.qktch5vzkxiidk3p@tkn_work_nb> (raw)
In-Reply-To: <09e801d698b7$4c3c36a0$e4b4a3e0$@tarantool.org>
On Fri, Oct 02, 2020 at 03:26:47PM +0300, Timur Safin wrote:
> : From: Alexander Turenko <alexander.turenko@tarantool.org>
> : Subject: Re: [PATCH 2.X 3/7] module api: luaT_newthread
> :
> : On Thu, Sep 24, 2020 at 08:00:16PM +0300, Timur Safin wrote:
> : > Exporting `luaT_newthread` as it's necessary for external merger
> :
> : But you expose accessors for the temporary Lua state in the later patch.
> : Built-in merger only uses luaT_newthread() in luaT_temp_luastate().
>
> Good point! Indeed - it would be unnecessary iff we keep
> luaT_temp_luastate part of module api...
>
> But looks like we are not (and would copy corresponding code back to
> merger' utils code), so we should consider this patch once again as
> necessary.
It seems, me and Vlad agreed on using lua_newthread() inside the module.
Don't know whether it worth to wrap it with Lua OOM error catching now.
The code at whole should consider possibility of such error, but now it
does not.
Since there is no agreement on this topic, I would say that we should
postpone it until we'll elaborate certain pathway how a module developer
should overcome possible OOM errors. You know, you can get it from any
function that perform allocation of a new Lua object. So protection of
just one allocation function does not change the situation at whole.
Maybe we should elaborate certain recommendations how to determine code
sections that should be protected and how to actually protect them.
Current merger code unlikely handle Lua OOM gracefully.
I would also add here, that a mechanish of Lua OOM error injection is
necessary, because any contract that is not tested is a kind of lie.
WBR, Alexander Turenko.
next prev parent reply other threads:[~2020-10-02 12:53 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-24 17:00 [Tarantool-patches] [PATCH 2.X 0/7] RFC: module api: extend for external merger Lua module Timur Safin
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 1/7] module api: export box_tuple_validate Timur Safin
2020-09-28 22:20 ` Vladislav Shpilevoy
2020-10-02 12:24 ` Timur Safin
2020-10-09 1:11 ` Alexander Turenko
2020-10-09 20:11 ` Vladislav Shpilevoy
2020-10-10 1:19 ` Alexander Turenko
2020-09-29 5:25 ` Alexander Turenko
2020-10-05 7:35 ` Alexander Turenko
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 2/7] module api: export box_key_def_dup Timur Safin
2020-09-28 22:21 ` Vladislav Shpilevoy
2020-09-29 5:03 ` Alexander Turenko
2020-09-29 23:19 ` Vladislav Shpilevoy
2020-10-01 3:05 ` Alexander Turenko
2020-10-02 12:25 ` Timur Safin
2020-10-02 12:26 ` Timur Safin
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 3/7] module api: luaT_newthread Timur Safin
2020-09-28 22:21 ` Vladislav Shpilevoy
2020-10-02 12:27 ` Timur Safin
2020-10-02 21:48 ` Vladislav Shpilevoy
2020-09-29 6:25 ` Alexander Turenko
2020-10-02 12:26 ` Timur Safin
2020-10-02 12:53 ` Alexander Turenko [this message]
2020-09-29 15:19 ` Igor Munkin
2020-10-02 16:12 ` Timur Safin
2020-10-03 16:57 ` Igor Munkin
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 4/7] module api: luaL_register_module & luaL_register_type Timur Safin
2020-09-28 22:21 ` Vladislav Shpilevoy
2020-09-29 5:09 ` Alexander Turenko
2020-09-29 23:20 ` Vladislav Shpilevoy
2020-09-30 6:31 ` Alexander Turenko
2020-09-30 6:33 ` Alexander Turenko
2020-10-02 16:14 ` Timur Safin
2020-09-29 8:03 ` Igor Munkin
2020-09-29 23:21 ` Vladislav Shpilevoy
2020-10-02 16:14 ` Timur Safin
2020-10-03 3:24 ` Alexander Turenko
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 5/7] module api: luaT_temp_luastate & luaT_release_temp_luastate Timur Safin
2020-09-28 22:21 ` Vladislav Shpilevoy
2020-09-29 5:17 ` Alexander Turenko
2020-09-29 23:21 ` Vladislav Shpilevoy
2020-10-01 3:35 ` Alexander Turenko
2020-09-29 15:10 ` Igor Munkin
2020-09-29 21:03 ` Alexander Turenko
2020-09-29 23:23 ` Vladislav Shpilevoy
2020-09-30 10:09 ` Alexander Turenko
2020-10-01 15:06 ` Igor Munkin
2020-10-03 2:16 ` Alexander Turenko
2020-10-02 12:24 ` Timur Safin
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 6/7] module api: luaL_checkibuf & luaL_checkconstchar Timur Safin
2020-09-28 22:21 ` Vladislav Shpilevoy
2020-09-29 5:53 ` Alexander Turenko
2020-09-29 23:25 ` Vladislav Shpilevoy
2020-10-01 3:00 ` Alexander Turenko
2020-10-02 16:14 ` Timur Safin
2020-10-02 21:48 ` Vladislav Shpilevoy
2020-10-08 13:50 ` Timur Safin
2020-09-24 17:00 ` [Tarantool-patches] [PATCH 2.X 7/7] module api: luaL_cdata_iscallable Timur Safin
2020-09-28 22:21 ` Vladislav Shpilevoy
2020-09-29 5:19 ` Alexander Turenko
2020-10-02 16:14 ` Timur Safin
2020-10-02 12:23 ` [Tarantool-patches] [PATCH 2.X 0/7] RFC: module api: extend for external merger Lua module Timur Safin
2020-10-02 21:49 ` Vladislav Shpilevoy
2020-10-03 2:54 ` Alexander Turenko
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=20201002125352.qktch5vzkxiidk3p@tkn_work_nb \
--to=alexander.turenko@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--cc=tsafin@tarantool.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH 2.X 3/7] module api: luaT_newthread' \
/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