mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
tests: add LVM_LOG_FILE_MAX_LINES
When logging to epoch files we would like to prevent creating too large log files otherwise a spining command could fulfill available space very easily and quickly. Limit for to 100000 per command.
This commit is contained in:
parent
309bdfa224
commit
34c55d98ee
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.161 -
|
Version 2.02.161 -
|
||||||
================================
|
================================
|
||||||
|
New LVM_LOG_FILE_MAX_LINES env var to limit max size of created logs.
|
||||||
|
|
||||||
Version 2.02.160 - 6th July 2016
|
Version 2.02.160 - 6th July 2016
|
||||||
================================
|
================================
|
||||||
|
@ -31,6 +31,8 @@ static struct dm_str_list _log_dev_alias;
|
|||||||
|
|
||||||
static int _syslog = 0;
|
static int _syslog = 0;
|
||||||
static int _log_to_file = 0;
|
static int _log_to_file = 0;
|
||||||
|
static uint64_t _log_file_max_lines = 0;
|
||||||
|
static uint64_t _log_file_lines = 0;
|
||||||
static int _log_direct = 0;
|
static int _log_direct = 0;
|
||||||
static int _log_while_suspended = 0;
|
static int _log_while_suspended = 0;
|
||||||
static int _indent = 1;
|
static int _indent = 1;
|
||||||
@ -111,6 +113,14 @@ void init_log_file(const char *log_file, int append)
|
|||||||
|
|
||||||
if (st && fclose(st))
|
if (st && fclose(st))
|
||||||
log_sys_debug("fclose", statfile);
|
log_sys_debug("fclose", statfile);
|
||||||
|
|
||||||
|
if ((env = getenv("LVM_LOG_FILE_MAX_LINES"))) {
|
||||||
|
if (sscanf(env, FMTu64, &_log_file_max_lines) != 1) {
|
||||||
|
log_warn("WARNING: Ingnoring incorrect LVM_LOG_MAX_LINES envvar \"%s\".", env);
|
||||||
|
_log_file_max_lines = 0;
|
||||||
|
}
|
||||||
|
_log_file_lines = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
no_epoch:
|
no_epoch:
|
||||||
@ -487,6 +497,9 @@ static void _vprint_log(int level, const char *file, int line, int dm_errno_or_c
|
|||||||
|
|
||||||
fputc('\n', _log_file);
|
fputc('\n', _log_file);
|
||||||
fflush(_log_file);
|
fflush(_log_file);
|
||||||
|
|
||||||
|
if (_log_file_max_lines && ++_log_file_lines >= _log_file_max_lines)
|
||||||
|
fatal_internal_error = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_syslog && (_log_while_suspended || !critical_section())) {
|
if (_syslog && (_log_while_suspended || !critical_section())) {
|
||||||
|
@ -778,6 +778,11 @@ followed by the process ID and a startup timestamp using
|
|||||||
this format string "_%s_%d_%llu". When set, each process logs to a
|
this format string "_%s_%d_%llu". When set, each process logs to a
|
||||||
separate file.
|
separate file.
|
||||||
.TP
|
.TP
|
||||||
|
.B LVM_LOG_FILE_MAX_LINES
|
||||||
|
A max number of lines to be printed to log file before
|
||||||
|
the application aborts. Useful for testing to prevent creation
|
||||||
|
of too big log files from spinning command.
|
||||||
|
.TP
|
||||||
.B LVM_EXPECTED_EXIT_STATUS
|
.B LVM_EXPECTED_EXIT_STATUS
|
||||||
The status anticipated when the process exits. Use ">N" to match any
|
The status anticipated when the process exits. Use ">N" to match any
|
||||||
status greater than N. If the actual exit status matches and a log
|
status greater than N. If the actual exit status matches and a log
|
||||||
|
@ -58,6 +58,7 @@ RUNNING_DMEVENTD=$(pgrep dmeventd || true)
|
|||||||
|
|
||||||
export TESTOLDPWD TESTDIR COMMON_PREFIX PREFIX RUNNING_DMEVENTD
|
export TESTOLDPWD TESTDIR COMMON_PREFIX PREFIX RUNNING_DMEVENTD
|
||||||
export LVM_LOG_FILE_EPOCH=DEBUG
|
export LVM_LOG_FILE_EPOCH=DEBUG
|
||||||
|
export LVM_LOG_FILE_MAX_LINES=100000
|
||||||
export LVM_EXPECTED_EXIT_STATUS=1
|
export LVM_EXPECTED_EXIT_STATUS=1
|
||||||
|
|
||||||
test -n "$BASH" && trap 'set +vx; STACKTRACE; set -vx' ERR
|
test -n "$BASH" && trap 'set +vx; STACKTRACE; set -vx' ERR
|
||||||
|
Loading…
Reference in New Issue
Block a user