Igor Munkin
authored
Since Tarantool fibers don't respect Lua coroutine switch mechanism, JIT machinery stays unnotified when one lua_State substitutes another one. As a result if trace recording hasn't been aborted prior to fiber switch, the recording proceeds using the new lua_State and leads to a failure either on any further compiler phase or while the compiled trace is executed. This changeset extends <cord_on_yield> routine aborting trace recording when the fiber switches to another one. If the switch-over occurs while mcode is being run the platform finishes its execution with EXIT_FAILURE code and calls panic routine prior to the exit. Closes #1700 Fixes #4491 Reviewed-by:Sergey Ostanevich <sergos@tarantool.org> Reviewed-by:
Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Signed-off-by:
Igor Munkin <imun@tarantool.org>
Name | Last commit | Last update |
---|---|---|
.. | ||
app-tap | ||
app | ||
box-py | ||
box-tap | ||
box | ||
engine | ||
engine_long | ||
long_run-py | ||
replication-py | ||
replication | ||
share | ||
sql-tap | ||
sql | ||
swim | ||
unit | ||
vinyl | ||
wal_off | ||
xlog-py | ||
xlog | ||
.gitattributes | ||
.tarantoolctl | ||
CMakeLists.txt | ||
test-run.py |