<HTML><BODY><br><br><br>-------- Пересылаемое сообщение --------<br>
От кого: Ilya Markov <imarkov@tarantool.org><br>
Кому: georgy@tarantool.org<br>
Копия: patches@tarantool.org<br>
Дата: Вторник, 27 марта 2018, 17:09 +03:00<br>
Тема: [patches] [log 1/2] log: Fix logger.test.lua<br>
<br>


<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
            <div id="style_15221597540000000929_BODY">Fix race condition in test on log_rotate.<br>
Test opened file that must be created by log_rotate and read from it.<br>
But as log_rotate is executed in separate thread, file may be not<br>
created or log may be not written yet by the time of opening in test.<br>
<br>
Fix this with waiting creation and reading the line.<br>
---<br>
 test/app-tap/logger.test.lua | 5 ++++-<br>
 1 file changed, 4 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/test/app-tap/logger.test.lua b/test/app-tap/logger.test.lua<br>
index 72d13d3..76b3598 100755<br>
--- a/test/app-tap/logger.test.lua<br>
+++ b/test/app-tap/logger.test.lua<br>
@@ -15,6 +15,7 @@ box.cfg{<br>
 local log = require('log')<br>
 local fio = require('fio')<br>
 local json = require('json')<br>
+local fiber = require('fiber')<br>
 local file = io.open(filename)<br>
 while file:read() do<br>
 end<br>
@@ -105,10 +106,12 @@ file:close()<br>
 <br>
 log.log_format("json")<br>
 <br>
-os.rename(filename, filename .. "2")<br>
+fio.rename(filename, filename .. "2")<br>
 log.rotate()<br>
 file = fio.open(filename)<br>
+while file == nil do file = fio.open(filename) fiber.sleep(0.0001) end<br>
 line = file:read()<br>
+while line == nil or line == ""  do line = file:read() fiber.sleep(0.0001) end<br>
 index = line:find('\n')<br>
 line = line:sub(1, index)<br>
 message = json.decode(line)<br>
-- <br>
2.7.4<br>
<br>
</div>
            
        
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>



<br><hr>
<br>-- <br>Thank you,<br>Ilya Markov<br></BODY></HTML>