I suppose no tests are needed since this one is pretty straightforward.

 
Lua stack was broken because we forgot to clear the context
in case of an error when return value of called function was
not serializable.
 
Closes #4617
---
Branch:
https://github.com/tarantool/tarantool/compare/eljashm/gh-4617-broken-lua-stack 
Issue:
https://github.com/tarantool/tarantool/issues/4617 
 
@ChangeLog
Remove context from lua stack in case of an error.
 
 src/box/lua/call.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/src/box/lua/call.c b/src/box/lua/call.c
index 6588ec2fa..7ab49983d 100644
--- a/src/box/lua/call.c
+++ b/src/box/lua/call.c
@@ -436,6 +436,7 @@ port_lua_do_dump(struct port *base, struct mpstream *stream,
     int top = lua_gettop(L);
     if (lua_cpcall(L, handler, &ctx) != 0) {
         luaT_toerror(port->L);
+        lua_pop(L, 1); 
         return -1;
     }
     lua_settop(L, top);
-- 
2.24.0