In contrast to subsequent calls, the initial call to box.cfg didn't log
configuration changes to the default state. As a result, by looking at
a log file we couldn't tell which configuration was being used.
Closes #4236
---
src/box/lua/load_cfg.lua | 6 +-
test/box/cfg.result | 900 +++++++++++++++++++------------------
test/box/cfg.test.lua | 9 +
test/box/lua/cfg_test5.lua | 10 +
4 files changed, 497 insertions(+), 428 deletions(-)
create mode 100644 test/box/lua/cfg_test5.lua
diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua
index 83e99e854..d402468ab 100644
--- a/src/box/lua/load_cfg.lua
+++ b/src/box/lua/load_cfg.lua
@@ -492,8 +492,10 @@ local function load_cfg(cfg)
private.cfg_load()
for key, fun in pairs(dynamic_cfg) do
local val = cfg[key]
- if val ~= nil and not dynamic_cfg_skip_at_load[key] then
- fun()
+ if val ~= nil then
+ if not dynamic_cfg_skip_at_load[key] then
+ fun()
+ end
if not compare_cfg(val, default_cfg[key]) then
log.info("set '%s' configuration option to %s", key, json.encode(val))
end
diff --git a/test/box/cfg.result b/test/box/cfg.result
index d85ec634c..cdca64ef0 100644
--- a/test/box/cfg.result
+++ b/test/box/cfg.result
@@ -1,538 +1,586 @@
+-- test-run result file version 2
env = require('test_run')
----
-...
+ | ---
+ | ...
test_run = env.new()
----
-...
+ | ---
+ | ...
test_run:cmd("push filter '(error: .*)\\.lua:[0-9]+: ' to '\\1.lua:<line>: '")
----
-- true
-...
+ | ---
+ | - true
+ | ...
box.cfg.nosuchoption = 1
----
-- error: 'builtin/box/load_cfg.lua:<line>: Attempt to modify a read-only table'
-...
+ | ---
+ | - error: 'builtin/box/load_cfg.lua:<line>: Attempt to modify a read-only table'
+ | ...
cfg_filter(box.cfg)
----
-- - - background
- - false
- - - checkpoint_count
- - 2
- - - checkpoint_interval
- - 3600
- - - checkpoint_wal_threshold
- - 1000000000000000000
- - - coredump
- - false
- - - feedback_enabled
- - true
- - - feedback_host
- - https://feedback.tarantool.io
- - - feedback_interval
- - 3600
- - - force_recovery
- - false
- - - hot_standby
- - false
- - - listen
- - <hidden>
- - - log
- - <hidden>
- - - log_format
- - plain
- - - log_level
- - 5
- - - memtx_dir
- - <hidden>
- - - memtx_max_tuple_size
- - <hidden>
- - - memtx_memory
- - 107374182
- - - memtx_min_tuple_size
- - <hidden>
- - - net_msg_max
- - 768
- - - pid_file
- - <hidden>
- - - read_only
- - false
- - - readahead
- - 16320
- - - replication_connect_timeout
- - 30
- - - replication_skip_conflict
- - false
- - - replication_sync_lag
- - 10
- - - replication_sync_timeout
- - 300
- - - replication_timeout
- - 1
- - - rows_per_wal
- - 500000
- - - slab_alloc_factor
- - 1.05
- - - strip_core
- - true
- - - too_long_threshold
- - 0.5
- - - vinyl_bloom_fpr
- - 0.05
- - - vinyl_cache
- - 134217728
- - - vinyl_dir
- - <hidden>
- - - vinyl_max_tuple_size
- - 1048576
- - - vinyl_memory
- - 134217728
- - - vinyl_page_size
- - 8192
- - - vinyl_read_threads
- - 1
- - - vinyl_run_count_per_level
- - 2
- - - vinyl_run_size_ratio
- - 3.5
- - - vinyl_timeout
- - 60
- - - vinyl_write_threads
- - 4
- - - wal_dir
- - <hidden>
- - - wal_dir_rescan_delay
- - 2
- - - wal_max_size
- - 268435456
- - - wal_mode
- - write
- - - worker_pool_threads
- - 4
-...
+ | ---
+ | - - - background
+ | - false
+ | - - checkpoint_count
+ | - 2
+ | - - checkpoint_interval
+ | - 3600
+ | - - checkpoint_wal_threshold
+ | - 1000000000000000000
+ | - - coredump
+ | - false
+ | - - feedback_enabled
+ | - true
+ | - - feedback_host
+ | - https://feedback.tarantool.io
+ | - - feedback_interval
+ | - 3600
+ | - - force_recovery
+ | - false
+ | - - hot_standby
+ | - false
+ | - - listen
+ | - <hidden>
+ | - - log
+ | - <hidden>
+ | - - log_format
+ | - plain
+ | - - log_level
+ | - 5
+ | - - memtx_dir
+ | - <hidden>
+ | - - memtx_max_tuple_size
+ | - <hidden>
+ | - - memtx_memory
+ | - 107374182
+ | - - memtx_min_tuple_size
+ | - <hidden>
+ | - - net_msg_max
+ | - 768
+ | - - pid_file
+ | - <hidden>
+ | - - read_only
+ | - false
+ | - - readahead
+ | - 16320
+ | - - replication_connect_timeout
+ | - 30
+ | - - replication_skip_conflict
+ | - false
+ | - - replication_sync_lag
+ | - 10
+ | - - replication_sync_timeout
+ | - 300
+ | - - replication_timeout
+ | - 1
+ | - - rows_per_wal
+ | - 500000
+ | - - slab_alloc_factor
+ | - 1.05
+ | - - strip_core
+ | - true
+ | - - too_long_threshold
+ | - 0.5
+ | - - vinyl_bloom_fpr
+ | - 0.05
+ | - - vinyl_cache
+ | - 134217728
+ | - - vinyl_dir
+ | - <hidden>
+ | - - vinyl_max_tuple_size
+ | - 1048576
+ | - - vinyl_memory
+ | - 134217728
+ | - - vinyl_page_size
+ | - 8192
+ | - - vinyl_read_threads
+ | - 1
+ | - - vinyl_run_count_per_level
+ | - 2
+ | - - vinyl_run_size_ratio
+ | - 3.5
+ | - - vinyl_timeout
+ | - 60
+ | - - vinyl_write_threads
+ | - 4
+ | - - wal_dir
+ | - <hidden>
+ | - - wal_dir_rescan_delay
+ | - 2
+ | - - wal_max_size
+ | - 268435456
+ | - - wal_mode
+ | - write
+ | - - worker_pool_threads
+ | - 4
+ | ...
-- must be read-only
box.cfg()
----
-...
+ | ---
+ | ...
cfg_filter(box.cfg)
----
-- - - background
- - false
- - - checkpoint_count
- - 2
- - - checkpoint_interval
- - 3600
- - - checkpoint_wal_threshold
- - 1000000000000000000
- - - coredump
- - false
- - - feedback_enabled
- - true
- - - feedback_host
- - https://feedback.tarantool.io
- - - feedback_interval
- - 3600
- - - force_recovery
- - false
- - - hot_standby
- - false
- - - listen
- - <hidden>
- - - log
- - <hidden>
- - - log_format
- - plain
- - - log_level
- - 5
- - - memtx_dir
- - <hidden>
- - - memtx_max_tuple_size
- - <hidden>
- - - memtx_memory
- - 107374182
- - - memtx_min_tuple_size
- - <hidden>
- - - net_msg_max
- - 768
- - - pid_file
- - <hidden>
- - - read_only
- - false
- - - readahead
- - 16320
- - - replication_connect_timeout
- - 30
- - - replication_skip_conflict
- - false
- - - replication_sync_lag
- - 10
- - - replication_sync_timeout
- - 300
- - - replication_timeout
- - 1
- - - rows_per_wal
- - 500000
- - - slab_alloc_factor
- - 1.05
- - - strip_core
- - true
- - - too_long_threshold
- - 0.5
- - - vinyl_bloom_fpr
- - 0.05
- - - vinyl_cache
- - 134217728
- - - vinyl_dir
- - <hidden>
- - - vinyl_max_tuple_size
- - 1048576
- - - vinyl_memory
- - 134217728
- - - vinyl_page_size
- - 8192
- - - vinyl_read_threads
- - 1
- - - vinyl_run_count_per_level
- - 2
- - - vinyl_run_size_ratio
- - 3.5
- - - vinyl_timeout
- - 60
- - - vinyl_write_threads
- - 4
- - - wal_dir
- - <hidden>
- - - wal_dir_rescan_delay
- - 2
- - - wal_max_size
- - 268435456
- - - wal_mode
- - write
- - - worker_pool_threads
- - 4
-...
+ | ---
+ | - - - background
+ | - false
+ | - - checkpoint_count
+ | - 2
+ | - - checkpoint_interval
+ | - 3600
+ | - - checkpoint_wal_threshold
+ | - 1000000000000000000
+ | - - coredump
+ | - false
+ | - - feedback_enabled
+ | - true
+ | - - feedback_host
+ | - https://feedback.tarantool.io
+ | - - feedback_interval
+ | - 3600
+ | - - force_recovery
+ | - false
+ | - - hot_standby
+ | - false
+ | - - listen
+ | - <hidden>
+ | - - log
+ | - <hidden>
+ | - - log_format
+ | - plain
+ | - - log_level
+ | - 5
+ | - - memtx_dir
+ | - <hidden>
+ | - - memtx_max_tuple_size
+ | - <hidden>
+ | - - memtx_memory
+ | - 107374182
+ | - - memtx_min_tuple_size
+ | - <hidden>
+ | - - net_msg_max
+ | - 768
+ | - - pid_file
+ | - <hidden>
+ | - - read_only
+ | - false
+ | - - readahead
+ | - 16320
+ | - - replication_connect_timeout
+ | - 30
+ | - - replication_skip_conflict
+ | - false
+ | - - replication_sync_lag
+ | - 10
+ | - - replication_sync_timeout
+ | - 300
+ | - - replication_timeout
+ | - 1
+ | - - rows_per_wal
+ | - 500000
+ | - - slab_alloc_factor
+ | - 1.05
+ | - - strip_core
+ | - true
+ | - - too_long_threshold
+ | - 0.5
+ | - - vinyl_bloom_fpr
+ | - 0.05
+ | - - vinyl_cache
+ | - 134217728
+ | - - vinyl_dir
+ | - <hidden>
+ | - - vinyl_max_tuple_size
+ | - 1048576
+ | - - vinyl_memory
+ | - 134217728
+ | - - vinyl_page_size
+ | - 8192
+ | - - vinyl_read_threads
+ | - 1
+ | - - vinyl_run_count_per_level
+ | - 2
+ | - - vinyl_run_size_ratio
+ | - 3.5
+ | - - vinyl_timeout
+ | - 60
+ | - - vinyl_write_threads
+ | - 4
+ | - - wal_dir
+ | - <hidden>
+ | - - wal_dir_rescan_delay
+ | - 2
+ | - - wal_max_size
+ | - 268435456
+ | - - wal_mode
+ | - write
+ | - - worker_pool_threads
+ | - 4
+ | ...
+
-- check that cfg with unexpected parameter fails.
box.cfg{sherlock = 'holmes'}
----
-- error: 'Incorrect value for option ''sherlock'': unexpected option'
-...
+ | ---
+ | - error: 'Incorrect value for option ''sherlock'': unexpected option'
+ | ...
+
-- check that cfg with unexpected type of parameter fails
box.cfg{listen = {}}
----
-- error: 'Incorrect value for option ''listen'': should be one of types string, number'
-...
+ | ---
+ | - error: 'Incorrect value for option ''listen'': should be one of types string, number'
+ | ...
box.cfg{wal_dir = 0}
----
-- error: 'Incorrect value for option ''wal_dir'': should be of type string'
-...
+ | ---
+ | - error: 'Incorrect value for option ''wal_dir'': should be of type string'
+ | ...
box.cfg{coredump = 'true'}
----
-- error: 'Incorrect value for option ''coredump'': should be of type boolean'
-...
+ | ---
+ | - error: 'Incorrect value for option ''coredump'': should be of type boolean'
+ | ...
+
-- check comment to issue #2191 - bad argument #2 to ''uri_parse''
box.cfg{replication = {}}
----
-...
+ | ---
+ | ...
box.cfg{replication = {}}
----
-...
+ | ---
+ | ...
+
--------------------------------------------------------------------------------
-- Test of hierarchical cfg type check
--------------------------------------------------------------------------------
+
box.cfg{memtx_memory = "100500"}
----
-- error: 'Incorrect value for option ''memtx_memory'': should be of type number'
-...
+ | ---
+ | - error: 'Incorrect value for option ''memtx_memory'': should be of type number'
+ | ...
box.cfg{memtx_memory = -1}
----
-- error: 'Incorrect value for option ''memtx_memory'': must not be less than 0'
-...
+ | ---
+ | - error: 'Incorrect value for option ''memtx_memory'': must not be less than 0'
+ | ...
box.cfg{vinyl_memory = -1}
----
-- error: 'Incorrect value for option ''vinyl_memory'': must not be less than 0'
-...
+ | ---
+ | - error: 'Incorrect value for option ''vinyl_memory'': must not be less than 0'
+ | ...
box.cfg{vinyl = "vinyl"}
----
-- error: 'Incorrect value for option ''vinyl'': unexpected option'
-...
+ | ---
+ | - error: 'Incorrect value for option ''vinyl'': unexpected option'
+ | ...
box.cfg{vinyl_write_threads = "threads"}
----
-- error: 'Incorrect value for option ''vinyl_write_threads'': should be of type number'
-...
+ | ---
+ | - error: 'Incorrect value for option ''vinyl_write_threads'': should be of type number'
+ | ...
+
--------------------------------------------------------------------------------
-- Dynamic configuration check
--------------------------------------------------------------------------------
+
replication_sync_lag = box.cfg.replication_sync_lag
----
-...
+ | ---
+ | ...
box.cfg{replication_sync_lag = 0.123}
----
-...
+ | ---
+ | ...
box.cfg.replication_sync_lag
----
-- 0.123
-...
+ | ---
+ | - 0.123
+ | ...
box.cfg{replication_sync_lag = replication_sync_lag}
----
-...
+ | ---
+ | ...
+
replication_sync_timeout = box.cfg.replication_sync_timeout
----
-...
+ | ---
+ | ...
box.cfg{replication_sync_timeout = 123}
----
-...
+ | ---
+ | ...
box.cfg.replication_sync_timeout
----
-- 123
-...
+ | ---
+ | - 123
+ | ...
box.cfg{replication_sync_timeout = replication_sync_timeout}
----
-...
+ | ---
+ | ...
+
box.cfg{instance_uuid = box.info.uuid}
----
-...
+ | ---
+ | ...
box.cfg{instance_uuid = '12345678-0123-5678-1234-abcdefabcdef'}
----
-- error: Can't set option 'instance_uuid' dynamically
-...
+ | ---
+ | - error: Can't set option 'instance_uuid' dynamically
+ | ...
+
box.cfg{replicaset_uuid = box.info.cluster.uuid}
----
-...
+ | ---
+ | ...
box.cfg{replicaset_uuid = '12345678-0123-5678-1234-abcdefabcdef'}
----
-- error: Can't set option 'replicaset_uuid' dynamically
-...
+ | ---
+ | - error: Can't set option 'replicaset_uuid' dynamically
+ | ...
+
box.cfg{memtx_memory = box.cfg.memtx_memory}
----
-...
+ | ---
+ | ...
box.cfg{vinyl_memory = box.cfg.vinyl_memory}
----
-...
+ | ---
+ | ...
+
--------------------------------------------------------------------------------
-- Test of default cfg options
--------------------------------------------------------------------------------
+
test_run:cmd('create server cfg_tester1 with script = "box/lua/cfg_test1.lua"')
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("start server cfg_tester1")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd('switch cfg_tester1')
----
-- true
-...
+ | ---
+ | - true
+ | ...
box.cfg.memtx_memory, box.cfg.slab_alloc_factor, box.cfg.vinyl_write_threads
----
-- 268435456
-- 1.05
-- 4
-...
+ | ---
+ | - 268435456
+ | - 1.05
+ | - 4
+ | ...
test_run:cmd("switch default")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("stop server cfg_tester1")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("cleanup server cfg_tester1")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
test_run:cmd('create server cfg_tester2 with script = "box/lua/cfg_test2.lua"')
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("start server cfg_tester2")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd('switch cfg_tester2')
----
-- true
-...
+ | ---
+ | - true
+ | ...
box.cfg.memtx_memory, box.cfg.slab_alloc_factor, box.cfg.vinyl_write_threads
----
-- 214748364
-- 1.05
-- 4
-...
+ | ---
+ | - 214748364
+ | - 1.05
+ | - 4
+ | ...
test_run:cmd("switch default")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("stop server cfg_tester2")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("cleanup server cfg_tester2")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
test_run:cmd('create server cfg_tester3 with script = "box/lua/cfg_test3.lua"')
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("start server cfg_tester3")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd('switch cfg_tester3')
----
-- true
-...
+ | ---
+ | - true
+ | ...
box.cfg.memtx_memory, box.cfg.slab_alloc_factor, box.cfg.vinyl_write_threads
----
-- 214748364
-- 1.05
-- 10
-...
+ | ---
+ | - 214748364
+ | - 1.05
+ | - 10
+ | ...
test_run:cmd("switch default")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("stop server cfg_tester3")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("cleanup server cfg_tester3")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
test_run:cmd('create server cfg_tester4 with script = "box/lua/cfg_test4.lua"')
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("start server cfg_tester4")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd('switch cfg_tester4')
----
-- true
-...
+ | ---
+ | - true
+ | ...
box.cfg.memtx_memory, box.cfg.slab_alloc_factor, box.cfg.vinyl_write_threads
----
-- 268435456
-- 3.14
-- 4
-...
+ | ---
+ | - 268435456
+ | - 3.14
+ | - 4
+ | ...
test_run:cmd("switch default")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("stop server cfg_tester4")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("cleanup server cfg_tester4")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
--------------------------------------------------------------------------------
-- Check fix for pid_file option overwritten by tarantoolctl
--------------------------------------------------------------------------------
+
test_run:cmd('create server cfg_tester5 with script = "box/lua/cfg_test1.lua"')
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("start server cfg_tester5")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd('switch cfg_tester5')
----
-- true
-...
+ | ---
+ | - true
+ | ...
box.cfg{pid_file = "current.pid"}
----
-...
+ | ---
+ | ...
test_run:cmd("switch default")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("stop server cfg_tester5")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("cleanup server cfg_tester5")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
--------------------------------------------------------------------------------
-- Check that 'vinyl_dir' cfg option is not checked as long as
-- there is no vinyl indexes (issue #2664)
--------------------------------------------------------------------------------
+
test_run:cmd('create server cfg_tester with script = "box/lua/cfg_bad_vinyl_dir.lua"')
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("start server cfg_tester")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd('switch cfg_tester')
----
-- true
-...
+ | ---
+ | - true
+ | ...
_ = box.schema.space.create('test_memtx', {engine = 'memtx'})
----
-...
+ | ---
+ | ...
_ = box.space.test_memtx:create_index('pk') -- ok
----
-...
+ | ---
+ | ...
_ = box.schema.space.create('test_vinyl', {engine = 'vinyl'})
----
-...
+ | ---
+ | ...
_ = box.space.test_vinyl:create_index('pk') -- error
----
-- error: can not access vinyl data directory
-...
+ | ---
+ | - error: can not access vinyl data directory
+ | ...
box.snapshot()
----
-- ok
-...
+ | ---
+ | - ok
+ | ...
test_run:cmd("restart server cfg_tester")
+ |
test_run:cmd("switch default")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("stop server cfg_tester")
----
-- true
-...
+ | ---
+ | - true
+ | ...
test_run:cmd("cleanup server cfg_tester")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
--
-- gh-3320: box.cfg{net_msg_max}.
--
box.cfg{net_msg_max = 'invalid'}
----
-- error: 'Incorrect value for option ''net_msg_max'': should be of type number'
-...
+ | ---
+ | - error: 'Incorrect value for option ''net_msg_max'': should be of type number'
+ | ...
--
-- gh-3425: incorrect error message: must not contain 'iproto'.
--
box.cfg{net_msg_max = 0}
----
-- error: 'Incorrect value for option ''net_msg_max'': minimal value is 2'
-...
+ | ---
+ | - error: 'Incorrect value for option ''net_msg_max'': minimal value is 2'
+ | ...
old = box.cfg.net_msg_max
----
-...
+ | ---
+ | ...
box.cfg{net_msg_max = 2}
----
-...
+ | ---
+ | ...
box.cfg{net_msg_max = old + 1000}
----
-...
+ | ---
+ | ...
box.cfg{net_msg_max = old}
----
-...
+ | ---
+ | ...
+
test_run:cmd("clear filter")
----
-- true
-...
+ | ---
+ | - true
+ | ...
+
+--
+-- gh-4236: initial box.cfg{} call did not log changes to default state
+--
+test_run:cmd('create server cfg_tester6 with script = "box/lua/cfg_test5.lua"')
+ | ---
+ | - true
+ | ...
+test_run:cmd("start server cfg_tester6")
+ | ---
+ | - true
+ | ...
+test_run:grep_log('cfg_tester6', 'set \'vinyl_memory\' configuration option to 1073741824', 1000)
+ | ---
+ | - set 'vinyl_memory' configuration option to 1073741824
+ | ...
+test_run:cmd("stop server cfg_tester6")
+ | ---
+ | - true
+ | ...
+test_run:cmd("cleanup server cfg_tester6")
+ | ---
+ | - true
+ | ...
diff --git a/test/box/cfg.test.lua b/test/box/cfg.test.lua
index eddeab126..56ccb6767 100644
--- a/test/box/cfg.test.lua
+++ b/test/box/cfg.test.lua
@@ -132,3 +132,12 @@ box.cfg{net_msg_max = old + 1000}
box.cfg{net_msg_max = old}
test_run:cmd("clear filter")
+
+--
+-- gh-4236: initial box.cfg{} call did not log changes to default state
+--
+test_run:cmd('create server cfg_tester6 with script = "box/lua/cfg_test5.lua"')
+test_run:cmd("start server cfg_tester6")
+test_run:grep_log('cfg_tester6', 'set \'vinyl_memory\' configuration option to 1073741824', 1000)
+test_run:cmd("stop server cfg_tester6")
+test_run:cmd("cleanup server cfg_tester6")
diff --git a/test/box/lua/cfg_test5.lua b/test/box/lua/cfg_test5.lua
new file mode 100644
index 000000000..e3eb87392
--- /dev/null
+++ b/test/box/lua/cfg_test5.lua
@@ -0,0 +1,10 @@
+#!/usr/bin/env tarantool
+os = require('os')
+
+box.cfg{
+ listen = os.getenv("LISTEN"),
+ vinyl_memory = 1024 * 1024 * 1024
+}
+
+require('console').listen(os.getenv('ADMIN'))
+box.schema.user.grant('guest', 'read,write,execute', 'universe')
\ No newline at end of file
--
2.21.0