<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">RESEND<br class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div>--</div><div>Serge Petrenko</div><div><a href="mailto:sergepetrenko@tarantool.org" class="">sergepetrenko@tarantool.org</a></div><div class=""><br class=""></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">

</div>

<div><br class=""><blockquote type="cite" class=""><div class="">26 июня 2019 г., в 19:04, Serge Petrenko <<a href="mailto:sergepetrenko@tarantool.org" class="">sergepetrenko@tarantool.org</a>> написал(а):</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Resend for the mailing list<br class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">--</div><div class="">Serge Petrenko</div><div class=""><a href="mailto:sergepetrenko@tarantool.org" class="">sergepetrenko@tarantool.org</a></div><div class=""><br class=""></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">

</div>

<div class=""><br class=""><blockquote type="cite" class=""><div class="">26 июня 2019 г., в 19:02, Serge Petrenko <<a href="mailto:sergepetrenko@tarantool.org" class="">sergepetrenko@tarantool.org</a>> написал(а):</div><br class="Apple-interchange-newline"><div class=""><div class="">Replace prints that indicate on_shutdown trigger execution with<br class="">log.warn, which is more reliable. This eliminates occasional test<br class="">failures. Also instead of waiting for the server to start and executing<br class="">grep_log, wait for the desired log entries to appear with wait_log.<br class=""><br class="">Closes #4134<br class="">---<br class=""><a href="https://github.com/tarantool/tarantool/issues/4134" class="">https://github.com/tarantool/tarantool/issues/4134</a><br class=""><a href="https://github.com/tarantool/tarantool/tree/sp/gh-4134-on-shutdown-test" class="">https://github.com/tarantool/tarantool/tree/sp/gh-4134-on-shutdown-test</a><br class=""><br class=""> test/box/on_shutdown.result   | 20 +++++++++++++-------<br class=""> test/box/on_shutdown.test.lua | 16 +++++++++-------<br class=""> 2 files changed, 22 insertions(+), 14 deletions(-)<br class=""><br class="">diff --git a/test/box/on_shutdown.result b/test/box/on_shutdown.result<br class="">index 4992b7de6..ccbdf45cb 100644<br class="">--- a/test/box/on_shutdown.result<br class="">+++ b/test/box/on_shutdown.result<br class="">@@ -1,19 +1,22 @@<br class=""> env = require('test_run')<br class=""> ---<br class=""> ...<br class="">+log = require('log')<br class="">+---<br class="">+...<br class=""> test_run = env.new()<br class=""> ---<br class=""> ...<br class=""> --<br class=""> -- gh-1607: on_shutdown triggers.<br class=""> --<br class="">-f = function() print('on_shutdown 1') end<br class="">+f = function() log.warn('on_shutdown 1') end<br class=""> ---<br class=""> ...<br class="">-g = function() print('on_shutdown 2') end<br class="">+g = function() log.warn('on_shutdown 2') end<br class=""> ---<br class=""> ...<br class="">-h = function() print('on_shutdown 3') end<br class="">+h = function() log.warn('on_shutdown 3') end<br class=""> ---<br class=""> ...<br class=""> -- Check that on_shutdown triggers may yield<br class="">@@ -31,7 +34,7 @@ trig = function()<br class="">     box.schema.space.create("shutdown")<br class="">     box.space.shutdown:create_index("pk")<br class="">     box.space.shutdown:insert{1,2,3}<br class="">-    print('on_shutdown 4')<br class="">+    log.warn('on_shutdown 4')<br class=""> end;<br class=""> ---<br class=""> ...<br class="">@@ -52,8 +55,8 @@ _ = box.ctl.on_shutdown(h, g)<br class=""> _ = box.ctl.on_shutdown(trig)<br class=""> ---<br class=""> ...<br class="">-test_run:cmd('restart server default')<br class="">-test_run:grep_log('default', 'on_shutdown 1', nil, {noreset=true})<br class="">+test_run:cmd('restart server default with wait=False')<br class="">+test_run:wait_log('default', 'on_shutdown 1', nil, 30, {noreset=true})<br class=""> ---<br class=""> - on_shutdown 1<br class=""> ...<br class="">@@ -108,7 +111,10 @@ test_run:cmd("switch test")<br class=""> ---<br class=""> - true<br class=""> ...<br class="">-_ = box.ctl.on_shutdown(function() print("on_shutdown 5") end)<br class="">+log = require('log')<br class="">+---<br class="">+...<br class="">+_ = box.ctl.on_shutdown(function() log.warn("on_shutdown 5") end)<br class=""> ---<br class=""> ...<br class=""> -- Check that we don't hang infinitely after os.exit()<br class="">diff --git a/test/box/on_shutdown.test.lua b/test/box/on_shutdown.test.lua<br class="">index 9c3726dce..2a9143404 100644<br class="">--- a/test/box/on_shutdown.test.lua<br class="">+++ b/test/box/on_shutdown.test.lua<br class="">@@ -1,12 +1,13 @@<br class=""> env = require('test_run')<br class="">+log = require('log')<br class=""> test_run = env.new()<br class=""><br class=""> --<br class=""> -- gh-1607: on_shutdown triggers.<br class=""> --<br class="">-f = function() print('on_shutdown 1') end<br class="">-g = function() print('on_shutdown 2') end<br class="">-h = function() print('on_shutdown 3') end<br class="">+f = function() log.warn('on_shutdown 1') end<br class="">+g = function() log.warn('on_shutdown 2') end<br class="">+h = function() log.warn('on_shutdown 3') end<br class=""> -- Check that on_shutdown triggers may yield<br class=""> -- and perform some complicated actions.<br class=""> fiber = require('fiber')<br class="">@@ -17,7 +18,7 @@ trig = function()<br class="">     box.schema.space.create("shutdown")<br class="">     box.space.shutdown:create_index("pk")<br class="">     box.space.shutdown:insert{1,2,3}<br class="">-    print('on_shutdown 4')<br class="">+    log.warn('on_shutdown 4')<br class=""> end;<br class=""> test_run:cmd("setopt delimiter ''");<br class=""> _ = box.ctl.on_shutdown(f)<br class="">@@ -25,8 +26,8 @@ _ = box.ctl.on_shutdown(g)<br class=""> -- Check that replacing triggers works<br class=""> _ = box.ctl.on_shutdown(h, g)<br class=""> _ = box.ctl.on_shutdown(trig)<br class="">-test_run:cmd('restart server default')<br class="">-test_run:grep_log('default', 'on_shutdown 1', nil, {noreset=true})<br class="">+test_run:cmd('restart server default with wait=False')<br class="">+test_run:wait_log('default', 'on_shutdown 1', nil, 30, {noreset=true})<br class=""> test_run:grep_log('default', 'on_shutdown 2', nil, {noreset=true})<br class=""> test_run:grep_log('default', 'on_shutdown 3', nil, {noreset=true})<br class=""> test_run:grep_log('default', 'on_shutdown 4', nil, {noreset=true})<br class="">@@ -43,7 +44,8 @@ test_run:cmd("stop server test")<br class=""> require("fio").unlink(logfile)<br class=""> test_run:cmd("start server test")<br class=""> test_run:cmd("switch test")<br class="">-_ = box.ctl.on_shutdown(function() print("on_shutdown 5") end)<br class="">+log = require('log')<br class="">+_ = box.ctl.on_shutdown(function() log.warn("on_shutdown 5") end)<br class=""> -- Check that we don't hang infinitely after os.exit()<br class=""> -- even if the following code doesn't yield.<br class=""> fiber = require("fiber")<br class="">-- <br class="">2.20.1 (Apple Git-117)<br class=""><br class=""></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></body></html>