Hi Mergen, thanks for the patch, I’ve checked it on 2.2 and it runs fine, patch LGTM.   >Четверг, 16 апреля 2020, 22:07 +03:00 от imeevma@tarantool.org: >  >Closes #4384 >--- >https://github.com/tarantool/tarantool/issues/4384 >https://github.com/tarantool/tarantool/tree/imeevma/gh-4384-fix-test-func-recreate > >@ChangeLog > - Fixed flaky test sql/func-recreate.test.lua (gh-4384). > > test/sql/func-recreate.result | 19 +++++++++++-------- > test/sql/func-recreate.test.lua | 11 ++++++----- > test/sql/suite.ini | 1 - > 3 files changed, 17 insertions(+), 14 deletions(-) > >diff --git a/test/sql/func-recreate.result b/test/sql/func-recreate.result >index 73fb03c..470ce5a 100644 >--- a/test/sql/func-recreate.result >+++ b/test/sql/func-recreate.result >@@ -12,31 +12,34 @@ box.execute('pragma sql_default_engine=\''..engine..'\'') > fiber = require('fiber') > --- > ... >-box.internal.sql_create_function('WAITFOR', 'INT', function (n) fiber.sleep(n) return n end) >+flag = true > --- > ... >-ch = fiber.channel(1) >+box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) > --- > ... >-_ = fiber.create(function () ch:put(box.execute('select WAITFOR(0.2)')) end) >+ch = fiber.channel(1) > --- > ... >-fiber.sleep(0.1) >+_ = fiber.create(function () ch:put(box.execute('select WAITFOR()')) end) > --- > ... >-box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) >+box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) > --- > - error: 'Failed to create function ''WAITFOR'': unable to create function due to >     active statements' > ... >+flag = false >+--- >+... > ch:get() > --- > - metadata: >- - name: WAITFOR(0.2) >+ - name: WAITFOR() >     type: integer >   rows: >- - [0.2] >+ - [0] > ... >-box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) >+box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) > --- > ... >diff --git a/test/sql/func-recreate.test.lua b/test/sql/func-recreate.test.lua >index 753e9ca..d482fa9 100644 >--- a/test/sql/func-recreate.test.lua >+++ b/test/sql/func-recreate.test.lua >@@ -4,14 +4,15 @@ box.execute('pragma sql_default_engine=\''..engine..'\'') >  > -- Check errors during function create process > fiber = require('fiber') >-box.internal.sql_create_function('WAITFOR', 'INT', function (n) fiber.sleep(n) return n end) >+flag = true >+box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) >  > ch = fiber.channel(1) >  >-_ = fiber.create(function () ch:put(box.execute('select WAITFOR(0.2)')) end) >-fiber.sleep(0.1) >+_ = fiber.create(function () ch:put(box.execute('select WAITFOR()')) end) >  >-box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) >+box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) >+flag = false > ch:get() >-box.internal.sql_create_function('WAITFOR', 'INT', function (n) require('fiber').sleep(n) return n end) >+box.internal.sql_create_function('WAITFOR', 'INT', function () while flag do fiber.sleep(0.01) end return 0 end) >  >diff --git a/test/sql/suite.ini b/test/sql/suite.ini >index a8664c5..cc1d641 100644 >--- a/test/sql/suite.ini >+++ b/test/sql/suite.ini >@@ -11,4 +11,3 @@ release_disabled = errinj.test.lua view_delayed_wal.test.lua sql-debug.test.lua > disabled = sql-statN-index-drop.test.lua > pretest_clean = True > fragile = dll.test.lua ; gh-4427 >- func-recreate.test.lua ; gh-4384 >-- >2.7.4 >      -- Alexander Tikhonov