diff --git a/src/lua/console.lua b/src/lua/console.lua index 09948f6bff8d0793c4d648b17a5cc69b6940f0a8..3aea03ab3c0b55659321bb5b1b99bab43cae0198 100644 --- a/src/lua/console.lua +++ b/src/lua/console.lua @@ -291,11 +291,17 @@ local function connect(uri) end -- check connection && permissions + local status, reason if remote.console then - remote:console('return true') + status, reason = pcall(remote.console, remote, 'return true') else - remote:eval('return true') + status, reason = pcall(remote.eval, remote, 'return true') end + if not status then + remote:close() -- don't leak net.box connection + error(reason) -- re-throw original error (there is no better way) + end + -- override methods self.remote = remote self.eval = remote_eval