Skip to content

Commit c5f7723

Browse files
nekufaavtikhon
authored andcommitted
Environment force recovery option
If specified environment variable: TARANTOOL_FORCE_RECOVERY When set to "true" Tarantool tries to continue if there is an error while reading a snapshot file or a write-ahead log file. Skips invalid records, reads as much data as possible, print a warning in console and start the database.
1 parent 085c886 commit c5f7723

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,10 @@ decreased if most of the tuples are very small. Default is 16.
287287
Optional. Specifies how often snapshots will be made, in seconds.
288288
Default is 3600 (every 1 hour).
289289

290+
### `TARANTOOL_FORCE_RECOVERY`
291+
292+
Optional. When set to "true" Tarantool tries to continue if there is an error while reading a snapshot file or a write-ahead log file. Skips invalid records, reads as much data as possible, print a warning in console and start the database.
293+
290294
# Reporting problems and getting help
291295

292296
You can report problems and request

files/tarantool-entrypoint.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ local function wrapper_cfg(override)
181181
file_cfg.TARANTOOL_SLAB_ALLOC_MINIMAL = os.getenv('TARANTOOL_SLAB_ALLOC_MINIMAL')
182182
file_cfg.TARANTOOL_SLAB_ALLOC_MAXIMAL = os.getenv('TARANTOOL_SLAB_ALLOC_MAXIMAL')
183183
file_cfg.TARANTOOL_PORT = os.getenv('TARANTOOL_PORT')
184+
file_cfg.TARANTOOL_FORCE_RECOVERY = os.getenv('TARANTOOL_FORCE_RECOVERY')
184185
file_cfg.TARANTOOL_WAL_MODE = os.getenv('TARANTOOL_WAL_MODE')
185186
file_cfg.TARANTOOL_REPLICATION_SOURCE = os.getenv('TARANTOOL_REPLICATION_SOURCE')
186187
file_cfg.TARANTOOL_REPLICATION = os.getenv('TARANTOOL_REPLICATION')
@@ -234,6 +235,8 @@ local function wrapper_cfg(override)
234235
cfg.wal_mode = file_cfg.TARANTOOL_WAL_MODE or
235236
override.wal_mode
236237

238+
cfg.force_recovery = file_cfg.TARANTOOL_FORCE_RECOVERY == 'true'
239+
237240
cfg.wal_dir = override.wal_dir or '/var/lib/tarantool'
238241
cfg.vinyl_dir = override.vinyl_dir or '/var/lib/tarantool'
239242
cfg.pid_file = override.pid_file or '/var/run/tarantool/tarantool.pid'

files/tarantool_set_config.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ local vars = {
8686
TARANTOOL_SLAB_ALLOC_MAXIMAL=nop,
8787
TARANTOOL_SLAB_ALLOC_MINIMAL=nop,
8888
TARANTOOL_PORT=nop,
89+
TARANTOOL_FORCE_RECOVERY=nop,
8990
TARANTOOL_WAL_MODE=nop,
9091
TARANTOOL_USER_NAME=update_credentials,
9192
TARANTOOL_USER_PASSWORD=update_credentials,

0 commit comments

Comments
 (0)