[Tarantool-patches] [PATCH luajit] FFI: Fix various issues in recff_cdata_arith.

Sergey Kaplun skaplun at tarantool.org
Thu Sep 12 13:16:45 MSK 2024


On 10.09.24, Sergey Kaplun via Tarantool-patches wrote:
> Hi, Sergey!
> Thanks for the review!
> 
> On 10.09.24, Sergey Bronnikov wrote:
> > Hi, Sergey,
> > 
> > On 09.09.2024 18:37, Sergey Bronnikov via Tarantool-patches wrote:
> > >
> > > Hi, Sergey,
> > >
> > > thanks for the patch! see my comments below.
> > >
> > > On 21.08.2024 19:52, Sergey Kaplun wrote:
> > >> From: Mike Pall <mike>
> > >>
> 
> <snipped>
> 
> > >> ---
> > >>
> > >> Branch:https://github.com/tarantool/luajit/tree/skaplun/lj-1224-fix-jit-cdata-arith
> > >> Related issues:
> > >> *https://github.com/tarantool/tarantool/issues/10199
> > >> *https://github.com/LuaJIT/LuaJIT/issues/1224
> > >>
> > >>   src/lj_crecord.c                              | 10 ++--
> > >>   .../lj-1224-fix-cdata-arith-ptr.test.lua      | 48 +++++++++++++++++++
> > >
> > > This test does not fail without fix (but repro from the issue does):
> > >
> > > [0] ~/sources/MRG/tarantool/third_party/luajit $ 
> > > ./build/gc64/src/luajit -Ohotloop=1 -e "
> > > repeat
> > >   r = 1LL + nil
> > > until true
> > > "
> > > LuaJIT ASSERT 
> > > /home/sergeyb/sources/MRG/tarantool/third_party/luajit/src/lj_ctype.c:185: 
> > > lj_ctype_intern: uninitialized cts->L
> > > Aborted
> > > [0] ~/sources/MRG/tarantool/third_party/luajit $ 
> > > ./build/gc64/src/luajit 
> > > test/tarantool-tests/lj-1224-fix-cdata-arith-ptr.test.lua
> > > TAP version 13
> > > 1..2
> > >     # cdata arithmetic with nil
> > > 1..2
> > >     ok - correct recording error with bad cdata arithmetic
> > >     ok - correct error message
> > >     # cdata arithmetic with nil: end
> > > ok - cdata arithmetic with nil
> > >     # cdata arithmetic with string
> > >     1..2
> > >     ok - correct recording error with bad cdata arithmetic
> > >     ok - correct error message
> > >     # cdata arithmetic with string: end
> > > ok - cdata arithmetic with string
> > > [0] ~/sources/MRG/tarantool/third_party/luajit $
> > >
> > 
> > With GC64 only (LUAJIT_ENABLE_GC64).
> 
> It don't fail with GC64?
> 
> Should I add the comment?

I've added the following comment to avoid the confusion.
Branch is force-pushed.

===================================================================
diff --git a/test/tarantool-tests/lj-1224-fix-cdata-arith-ptr.test.lua b/test/tarantool-tests/lj-1224-fix-cdata-arith-ptr.test.lua
index 9de9586d..dd7e23ec 100644
--- a/test/tarantool-tests/lj-1224-fix-cdata-arith-ptr.test.lua
+++ b/test/tarantool-tests/lj-1224-fix-cdata-arith-ptr.test.lua
@@ -11,6 +11,8 @@ local test = tap.test('lj-1224-fix-cdata-arith-ptr'):skipcond({
 
 test:plan(2)
 
+-- XXX: This test leads to the assertion failure before the patch
+-- only for non-GC64 build.
 local function arith_nil_protected()
   local i = 1
   while i < 3 do
===================================================================

> 
> > <snipped>
> 
> -- 
> Best regards,
> Sergey Kaplun

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list