From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id ED3E143D67A for ; Thu, 17 Oct 2019 23:25:54 +0300 (MSK) References: <6de1f18613e9b6a3f716c60b9c85457d2bd9eb64.1571341771.git.v.shpilevoy@tarantool.org> <20191017200042.GC9698@uranus.lan> From: Vladislav Shpilevoy Message-ID: Date: Thu, 17 Oct 2019 22:31:00 +0200 MIME-Version: 1.0 In-Reply-To: <20191017200042.GC9698@uranus.lan> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [tarantool-patches] Re: [PATCH 1/1] console: fix usage of an undeclared variable List-Id: Tarantool development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cyrill Gorcunov Cc: tarantool-patches@freelists.org, tarantool-patches@dev.tarantool.org On 17/10/2019 22:00, Cyrill Gorcunov wrote: > On Thu, Oct 17, 2019 at 09:50:44PM +0200, Vladislav Shpilevoy wrote: >> Console client's eval() method in case of an error at >> reading from a socket was trying to return a variable >> declared in a different view scope. Instead, the >> error should be raised to drop the connection. >> --- >> Branch: https://github.com/tarantool/tarantool/tree/gerold103/console-undefined-variable >> >> No test, because can be reproduced only in repl mode of a client. >> >> src/box/lua/console.lua | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/src/box/lua/console.lua b/src/box/lua/console.lua >> index f70ed830a..52df67465 100644 >> --- a/src/box/lua/console.lua >> +++ b/src/box/lua/console.lua >> @@ -451,7 +451,7 @@ local text_connection_mt = { >> self.print_f(rc) >> end >> end >> - return rc >> + return error(self:set_error()) > > Wait > ... > local rc = self:read() > if not rc then > break > end > ... > > We're reading from a socket and there could be EOF, which will > give us zero return code. But now we will start to yielding > an error in this case. > set_error is aware of that. It says 'Peer closed' on EOF.