<HTML><BODY><div><div>Right, error fixed and now we found more details. Now the best</div><div>assumption is that lua_State is somehow being broken by</div><div>user-called function (which name we now know).</div><div>Now we will look into user code.</div><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">Среда, 22 июля 2020, 12:56 +03:00 от Igor Munkin <imun@tarantool.org>:<br> <div id=""><div class="js-helper js-readmsg-msg"><style type="text/css"></style><div><div id="style_15954117930501874199_BODY">Ilya,<br><br>On 22.07.20, Ilya Kosarev wrote:<br>><br>> Hi!<br>><br>> Thanks to @igormunkin we discovered more details of this problem.<br>> Turns out we can see lua_State stored in port and it seems that<br>> something is totally wrong here: it points to some function address<br>> (port_lua_dump_16()). Thus I will make some more research into it and<br>> this patch should be discarded for now.<br>> (gdb) p ((struct port_lua *)port)->vtab<br>> $19 = (const port_vtab *) 0x4e759f <port_lua_dump><br>> (gdb) p ((struct port_lua *)port)->L<br>> $20 = (lua_State *) 0x4e75c9 <port_lua_dump_16><br><br>I've just noticed: port is a stucture, not a pointer, so the values are<br>totally irrelevant. I guess you need something like this:<br>| ((struct port_lua *)&port)->L<br><br>Could you please share the results for the right dereference?<br><br>> <br><br><snipped><br><br>> <br>> --<br>> Ilya Kosarev<br>> <br><br>--<br>Best regards,<br>IM</div></div></div></div></blockquote> <div> </div><div data-signature-widget="container"><div data-signature-widget="content"><div>--<br>Ilya Kosarev</div></div></div><div> </div></div></BODY></HTML>