From: Sergey Kaplun via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: Igor Munkin <imun@tarantool.org> Cc: tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH luajit 4/4] ARM64: Fix xpcall() error case (really). Date: Fri, 11 Jun 2021 11:08:08 +0300 [thread overview] Message-ID: <YMMZ6KAmzgvTbPSC@root> (raw) In-Reply-To: <20210610135243.GA3944@tarantool.org> Hi, Igor! Thanks for the review! On 10.06.21, Igor Munkin wrote: > Sergey, > > Thanks for the patch! There are still typos left after fixing Sergos > review comments (the commit message is taken from the branch). > Otherwise, LGTM. > > | ARM64: Fix xpcall() error case (really). > | > | Thanks to François Perrad and Stefan Pejic. > | > | (cherry picked from commit d417ded17945b4211608d497d50b509e0274f5e0) > | > | Premature decrement of VM's RC register before switch to fff_fallback > | handler during processing `xpcall()` fast function leads to incorrect > | stack layout (not enough arguments on stack), when `xpcall()` calls > > Typo: s/calls/is called/. > > | without a second argument or if it is not a function (see > | <test/lua-Harness-tests/301-basic.t:832> > > Typo: looks like line underfull (in LaTeX terms). > > | test in lua-Harness test suite). While further error processing it leads > | to incorrect error message, due to stack inconsistency. > | > | This patch stores intermediate result into TMP1 register (it does not > | determine fallback's behaviour and there is no way to return from > | fallback back to xpcall processing with spoiled TMP1) and moves RC > | setting after the switch to the fallback handler. > | > | Sergey Kaplun: > | * added the description for the problem > | > | Resolves tarantool/tarantool#6093 > | Part of tarantool/tarantool#5629 Fixed. Branch is force-pushed: The new commit message is: =================================================================== ARM64: Fix xpcall() error case (really). Thanks to François Perrad and Stefan Pejic. (cherry picked from commit d417ded17945b4211608d497d50b509e0274f5e0) Premature decrement of VM's RC register before switch to fff_fallback handler during processing `xpcall()` fast function leads to incorrect stack layout (not enough arguments on stack), when `xpcall()` is called without a second argument or if it is not a function (see <test/lua-Harness-tests/301-basic.t:832> test in lua-Harness test suite). While further error processing it leads to incorrect error message, due to stack inconsistency. This patch stores intermediate result into TMP1 register (it does not determine fallback's behaviour and there is no way to return from fallback back to xpcall processing with spoiled TMP1) and moves RC setting after the switch to the fallback handler. Sergey Kaplun: * added the description for the problem Resolves tarantool/tarantool#6093 Part of tarantool/tarantool#5629 =================================================================== > > -- > Best regards, > IM -- Best regards, Sergey Kaplun
next prev parent reply other threads:[~2021-06-11 8:09 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-24 13:27 [Tarantool-patches] [PATCH luajit 0/4] Fix LuaJIT tests on aarch64, odroid Sergey Kaplun via Tarantool-patches 2021-05-24 13:27 ` [Tarantool-patches] [PATCH luajit 1/4] ARM, ARM64, PPC: Fix TSETR fallback Sergey Kaplun via Tarantool-patches 2021-06-02 12:04 ` Sergey Ostanevich via Tarantool-patches 2021-06-04 13:12 ` Sergey Kaplun via Tarantool-patches 2021-06-04 15:33 ` Sergey Ostanevich via Tarantool-patches 2021-06-04 15:39 ` Sergey Kaplun via Tarantool-patches 2021-06-10 13:51 ` Igor Munkin via Tarantool-patches 2021-06-11 8:47 ` Sergey Kaplun via Tarantool-patches 2021-06-12 13:09 ` Sergey Kaplun via Tarantool-patches 2021-05-24 13:27 ` [Tarantool-patches] [PATCH luajit 2/4] test: add skipcond on architectures for memprof Sergey Kaplun via Tarantool-patches 2021-06-02 12:28 ` Sergey Ostanevich via Tarantool-patches 2021-06-04 13:37 ` Sergey Kaplun via Tarantool-patches 2021-06-04 15:36 ` Sergey Ostanevich via Tarantool-patches 2021-06-04 16:18 ` Sergey Kaplun via Tarantool-patches 2021-06-10 13:51 ` Igor Munkin via Tarantool-patches 2021-06-11 8:18 ` Sergey Kaplun via Tarantool-patches 2021-05-24 13:27 ` [Tarantool-patches] [PATCH luajit 3/4] ARM64: Fix xpcall() error case Sergey Kaplun via Tarantool-patches 2021-06-02 12:47 ` Sergey Ostanevich via Tarantool-patches 2021-06-04 13:45 ` Sergey Kaplun via Tarantool-patches 2021-06-10 13:51 ` Igor Munkin via Tarantool-patches 2021-05-24 13:27 ` [Tarantool-patches] [PATCH luajit 4/4] ARM64: Fix xpcall() error case (really) Sergey Kaplun via Tarantool-patches 2021-06-02 14:43 ` Sergey Ostanevich via Tarantool-patches 2021-06-04 13:56 ` Sergey Kaplun via Tarantool-patches 2021-06-10 13:52 ` Igor Munkin via Tarantool-patches 2021-06-11 8:08 ` Sergey Kaplun via Tarantool-patches [this message] 2021-06-01 11:11 ` [Tarantool-patches] [PATCH luajit 0/4] Fix LuaJIT tests on aarch64, odroid Igor Munkin via Tarantool-patches 2021-06-12 16:02 ` Igor Munkin via Tarantool-patches
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=YMMZ6KAmzgvTbPSC@root \ --to=tarantool-patches@dev.tarantool.org \ --cc=imun@tarantool.org \ --cc=skaplun@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH luajit 4/4] ARM64: Fix xpcall() error case (really).' \ /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