Size: a a a

2019 February 20

CP

Companion Philipp in Lua in Moscow
Угу, увидел
источник
2019 February 22

KO

Konstantin Osipov in Lua in Moscow
Народ, а никто не наступал на ассерт в gc_marktrace когда luajit пытается сколлектить текущий исполняемый трейс
источник

KO

Konstantin Osipov in Lua in Moscow
?
источник

KO

Konstantin Osipov in Lua in Moscow
вот такой трейс целиком:
источник

KO

Konstantin Osipov in Lua in Moscow
#1  0x00007ff6e5c43ce8 in abort () from /home/vlad/tmp/frs-issues/lib64/libc.so.6
#2  0x000000000040f8e3 in sig_fatal_cb (signo=<optimized out>, siginfo=<optimized out>, context=<optimized out>) at /build/usr/src/debug/tarantool-1.10.1.227/src/main.cc:258
#3  <signal handler called>
#4  0x000000000050deb9 in gc_marktrace (traceno=16590, g=0x40cda3b8) at lj_gc.c:230
#5  gc_traverse_trace (g=g@entry=0x40cda3b8, T=T@entry=0x406fb830) at lj_gc.c:251
#6  0x000000000050e55c in gc_traverse_trace (T=0x406fb830, g=0x40cda3b8) at lj_gc.c:243
#7  propagatemark (g=0x40cda3b8) at lj_gc.c:340
#8  0x000000000050e789 in gc_onestep (L=L@entry=0x406ed288) at lj_gc.c:643
#9  0x000000000050edb4 in lj_gc_step (L=0x406ed288) at lj_gc.c:725
#10 0x000000000050ee66 in lj_gc_step_fixtop (L=L@entry=0x406ed288) at lj_gc.c:748
источник

KO

Konstantin Osipov in Lua in Moscow
падает на ассерте что текущий исполняемый трейс пытается сколлектиться
источник

KO

Konstantin Osipov in Lua in Moscow
источник

AG

Alexander Gladysh in Lua in Moscow
источник

KO

Konstantin Osipov in Lua in Moscow
у нас на это в проде регулярно наступает @inthrax
источник

KO

Konstantin Osipov in Lua in Moscow
это очевидно что, бага в luajit, т.к. он неправильно помечает текущий исполняемый трейс в mark&sweep
источник

KO

Konstantin Osipov in Lua in Moscow
но может быть вы уже это расковыривали?
источник

KO

Konstantin Osipov in Lua in Moscow
mike pall вестимо отморозился:
источник

KO

Konstantin Osipov in Lua in Moscow
источник

IM

Igor Munkin in Lua in Moscow
Konstantin Osipov
у нас на это в проде регулярно наступает @inthrax
Да, Монс мне жаловался при встрече, но я оказался не в силах ему помочь. Может @igelhaus что-то расскажет.
источник

A

Anton in Lua in Moscow
источник

A

Anton in Lua in Moscow
То есть, начинаем с того, что GCtrace зависит от целого ряда GC-объектов:

* "Константы уровня трассы" (GCobj *gclist)
* Прототип, с которого делали трассу (startpt)
* Трассы, на которую данная трасса ссылается (link, nextroot, nextside)

"Сфейлились на маркировке трассы" значит, что что-то от чего трасса зависит, уже сколлекчено. Дальше остаётся только гадать на кофейной гуще и смотреть, как вы заанкорили трассу таким образом, что она коллектится позже зависимостей.

Инспектирование frame 4 в gdb поможет сказать, на маркировке какой зависимости вы упали.
источник

KO

Konstantin Osipov in Lua in Moscow
погоди, а marktrace разве не помечает достижимые трассы?
источник

KO

Konstantin Osipov in Lua in Moscow
по идее mark помечает достижимые ,а sweep собирает недостижимые
источник

KO

Konstantin Osipov in Lua in Moscow
каким образом gc_marktrace видит что "что-то от чего трасса зависит уже сколлекчено?
источник

KO

Konstantin Osipov in Lua in Moscow
ассерт падает следующий:
источник