diff --git a/test/instances/default.lua b/test/instances/default.lua
index 5e5287b235db96f74f316b68f7f94d51d2a99faf..31a720da4558bbf7ec665f225ad38f014e820f8e 100755
--- a/test/instances/default.lua
+++ b/test/instances/default.lua
@@ -3,6 +3,8 @@
 local fun = require('fun')
 local json = require('json')
 
+local TIMEOUT_INFINITY = 500 * 365 * 86400
+
 local function default_cfg()
     return {
         work_dir = os.getenv('TARANTOOL_WORKDIR'),
@@ -29,6 +31,13 @@ local function box_cfg(cfg)
     return fun.chain(default_cfg(), env_cfg(), cfg or {}):tomap()
 end
 
+-- Set the shutdown timeout to infinity so that we can catch tests that leave
+-- asynchronous requests. If we used the default timeout of 3 seconds, such a
+-- test would still pass, but it would slow down the overall test run, because
+-- the server would take longer to stop. Setting the timeout to infinity makes
+-- such bad tests hang and fail.
+box.ctl.set_on_shutdown_timeout(TIMEOUT_INFINITY)
+
 box.cfg(box_cfg())
 box.schema.user.grant('guest', 'super', nil, nil, {if_not_exists = true})