State:Closed|icon_bug|icon_katana|database:public|Resolution:Fixed|TargetRelease:3.2v2|BugID:402631|
Problem summary:
Using Lua for procedurals and compiling a custom version of the interpreter can cause random crashes with the following backtrace:
======= Backtrace: =========/lib64/libc.so.6(+0x7f5d4)[0x7f92145a25d4]/lib64/libc.so.6(+0x82d98)[0x7f92145a5d98]/lib64/libc.so.6(__libc_malloc+0x4c)[0x7f92145a81ac].../base/lib/liblua-5.1.so(+0xf8de)[0x7f91dc3078de].../base/lib/liblua-5.1.so(+0x1347e)[0x7f91dc30b47e].../base/lib/liblua-5.1.so(+0x13c28)[0x7f91dc30bc28].../base/lib/liblua-5.1.so(+0x140b6)[0x7f91dc30c0b6].../base/lib/liblua-5.1.so(+0x15372)[0x7f91dc30d372].../base/lib/liblua-5.1.so(lua_setfield+0x4e)[0x7f91dc3000ae].../katana/3.2v1.010042b/plugins/Resources/Core/Geolib3/Ops/OpScriptLuaJIT.so(luaL_setfuncs+0x83)[0x7f91fbeb5163].../katana/3.2v1.010042b/plugins/Resources/Core/Geolib3/Ops/OpScriptLuaJIT.so(+0x24d45)[0x7f91fbd59d45]======= End backtrace: ========= And the following error is thrown:
======= Error: =========OpScriptAPIModernizer returned error: module 'Katana.OpScript._APIModernizer' not found:APIModernizer.lua: bad header in precompiled chunkno field package.preload['Katana.OpScript._APIModernizer']no file '.../base/share/lua/luasocket/Katana/OpScript/_APIModernizer.lua'no file '.../base/lib/lua/luasocket/Katana/OpScript/_APIModernizer.so'no file '.../base/lib/lua/luasocket/Katana.so'===== End error: ======== This started happening only in 3.2v1.010038a.
Steps to reproduce:
export LD_PRELOAD=~/.conan/data/Lua/5.1.5/foundry/katana_cmake_phase1/package/de9c231f84c85def9df09875e1785a1319fa8cb6/lib/liblua-5.1.so
OpScriptAPIModernizer returned error: module 'Katana.OpScript._APIModernizer' not found:APIModernizer.lua: bad header in precompiled chunk no field package.preload['Katana.OpScript._APIModernizer'] no file './Katana/OpScript/_APIModernizer.lua' no file '/usr/local/share/lua/5.1/Katana/OpScript/_APIModernizer.lua' no file '/usr/local/share/lua/5.1/Katana/OpScript/_APIModernizer/init.lua' no file '/usr/local/lib/lua/5.1/Katana/OpScript/_APIModernizer.lua' no file '/usr/local/lib/lua/5.1/Katana/OpScript/_APIModernizer/init.lua' no file './Katana/OpScript/_APIModernizer.so' no file '/usr/local/lib/lua/5.1/Katana/OpScript/_APIModernizer.so' no file '/usr/local/lib/lua/5.1/loadall.so' no file './Katana.so' no file '/usr/local/lib/lua/5.1/Katana.so' no file '/usr/local/lib/lua/5.1/loadall.so' Segmentation fault ~~~~~~~~~~~~~~~~~~~~ Expected behaviour:
No error messages and no crash.
Actual behaviour:
Katana crashes with error messages.
Workaround:
Setting KATANA_OPSCRIPT_INTERPRETER environment variable to ‘Lua_5_1’. However, this uses the standard Lua interpreter, instead of the more performant JIT compiler.
Tested versions/platforms:
3.2v1.010021a - Unaffected
3.2v1.010038a - Affected
Customer version/platform:
CentOS 7
We're sorry to hear that
Please tell us why