From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp55.i.mail.ru (smtp55.i.mail.ru [217.69.128.35]) (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 330F743D678 for ; Thu, 24 Oct 2019 03:22:05 +0300 (MSK) Date: Thu, 24 Oct 2019 03:21:56 +0300 From: Alexander Turenko Message-ID: <20191024002155.6tn2b2zrju7wmi2n@tkn_work_nb> References: <6d69f49ae7d4a58dfef92a654b0c6341df3f0344.1568152663.git.v.shpilevoy@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <6d69f49ae7d4a58dfef92a654b0c6341df3f0344.1568152663.git.v.shpilevoy@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH 1/1] app: exit gracefully when a main script throws an error List-Id: Tarantool development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladislav Shpilevoy Cc: tarantool-patches@freelists.org, tarantool-patches@dev.tarantool.org I know, the patch was already pushed, but I looked on it briefly anyway. It is LGTM, however I have one question: see below. WBR, Alexander Turenko. > @@ -678,6 +686,12 @@ tarantool_lua_run_script(char *path, bool interactive, > ev_run(loop(), 0); > /* The fiber running the startup script has ended. */ > script_fiber = NULL; > + /* > + * Result can't be obtained via fiber_join - script fiber > + * never dies if os.exit() was called. This is why diag > + * is checked explicitly. > + */ > + return diag_is_empty(diag_get()) ? 0 : -1; This is the only part I'm a bit tentative: can the diagnostic area be populated by a user somehow? I tried to do-- | fio.open('non_existent', {'O_RDONLY'}) | os.exit() --in the main script and it seems that it uses some other diagnostic area, because the fio error was not reported as the main script fail. So, things seems to work good, but I didn't got how exactly.