Table of Contents | ||
---|---|---|
|
Summary
The DRX logs output the same logs to the following two paths.
- Standard output
- Log file
When operating in service mode, the standard output is not used.
The file output is distributed to the main and resource logs.
File | Path | Content |
---|---|---|
main log file | {DRX installed path}/logs/main.log | DRX operation. Exclude actions by resources |
resource-specific log file | {DRX installed path}/logs/리소스명/리소스명.log | Behavior of resources |
When each file reaches the set size, the file is archived and a new one is created.
The file being archived is appended with the date and time at that point in time. (ex: main_2018-11-22_1432.log)
Log View
The following types of commands are provided to output the active DRX log in real time.
drx-ctl log {options} [resource or all]
Supported options:
Option | Shortcut | Description |
---|---|---|
--include-main | -m | Print the main log. If this option is not specified, only resource-specific logs are output. |
--lines {num} | -n {num} | Output the last num lines. |
When you execute this command, you can continuously output the update of the log file and terminate it with Ctrl-C.
Configuration
The log-related items that can be set in the configuration file (drx.conf) are as follows.
Item | Value | Format | Description |
---|---|---|---|
loglevel-stdout | Log level | trace, debug, info, warning, error, critical, off | Specifies the level of the standard output log. |
loglevel-file | Log level | trace, debug, info, warning, error, critical, off | Specifies the level of the log output to the file. |
logfile-max-size | File size | Bytes (ex: 10MB) | When the log file reaches the specified capacity, the current log file is archived and a new one is created. |
logfile-max-count | File count | Number | Maximum number of current and archived log files. |
The log level can be changed in real time via drx-ctl.
drx-ctl set console-loglevel [level]
drx-ctl set file-loglevel [level]
However, the standard output level is ignored when running in service mode.
Output Format
level/data time thread logger:tag] message
Details By Item
Item | Format | Example | Description |
---|---|---|---|
log level/date | {level}{date} | I1004 | Print log level and date without spaces. |
time | hour:min:sec.microsec | 16:44:13.790530 | - |
thread | t{thread ID} | t3056 | The thread ID that generated the log. |
logger | logger name | main | Logger name for dividing log category. |
tag | tag name | license c-:o | Represents a subrange of the logger, or represents the details of the channel. |
Log Level
Abbreviation | Level | Range |
---|---|---|
T | trace | Very detailed operation log |
D | debug | Used when problems arise that require debugging |
I | info | General information such as state change or behavior |
W | warning | A situation where an unintended problem occurs, but there is no problem in resuming or continuing the operation |
E | error | A situation where an unintended problem occurs and the action can not be continued |
C | critical | Serious error that can not keep the program running |
Log List
This document describes only from info level to critical level.
main
Tag | Level | Format | Example | Description | Source file |
---|---|---|---|---|---|
| info | Compiled at {date} {time} | Oct 4 2018 09:04:38 | When DRX was compiled. | drx.cpp |
info | System Locale: {locale} | en_US.windows-1252 | Current system locale value. | drx.cpp | |
info | DRX path: {path} | C:\Program Files\DRX | Path where DRX is installed. This value is defined in the environment variable 'DRX_PATH'. | drx.cpp | |
info | EXE path: {path} | C:\Program Files\DRX\bin | The path where the currently executed DRX is located. | drx.cpp | |
info | Starting in foreground mode | - | Read all the settings and the program has been initialized. | drx.cpp | |
info | Starting in daemonize mode | - | Read all the settings and the program has been initialized. | drx.cpp | |
error | Initialization failed | - | Failed to read preferences. | drx.cpp | |
warning | Environment variable 'DRX_PATH' is not exists | - | - | instance.cpp | |
info | Closing drx | - | The last log in the process of terminating the DRX. | core.cpp | |
error | System error at quit. ({error_id}: {message}) | - | System error during DRX shutdown | core.cpp | |
info | Read resources configuration success | - | Read resource-specific settings from DRBD configuration. | core.cpp | |
warning | Read resources configuration failed | - | It can also happen if there is no resource. | core.cpp | |
info | License is available | - | - | core.cpp | |
error | License is not available | - | Exit the program after this log. | core.cpp | |
info | Resource create complete | - | All the configured resources have been created. IPC services are available. | core.cpp | |
info | Create resource [name] | - | - | drx_manager.cpp | |
error | Resource name [name] is already exists | The resource settings are invalid or you tried to add a resource that already exists. | drx_manager.cpp | ||
error | Failed to create resource [name]. {message} | An error occurred during resource creation. Exit the program after this log. | drx_manager.cpp | ||
info | Resource [name] deleted | You have deleted resources through IPC. | drx_manager.cpp | ||
info | IPC service started | - | An IPC server is created. | drx_manager.cpp | |
error | Failed to start IPC service | - | There is little chance of occurrence other than memory shortage. | drx_manager.cpp | |
error | System error while stopping. ({error_id}: {message}) | An error occurred during program termination. | drx_manager.cpp | ||
license | info | Verify license is available | - | The license verification process begins. | drx_manager.cpp |
info | License applied | - | Output when the license is applied with 'set license' command. | drx_manager.cpp | |
error | Failed to get drx path | - | The environment variable 'DRX_PATH' may not exist. | drx_manager.cpp | |
info | Checking license for [file_path] | C:\Program Files\DRX\drx.lic | Check the license file for that path. | drx_manager.cpp | |
error | Failed to initializing license system. {message} | Failed to read the license. The error is the output from RLM. | drx_manager.cpp | ||
error | License file not found at [file_path] | The file does not exist in the specified path. Output when using 'set license' command. | drx_manager.cpp | ||
error | Invalid License {product_name}({message}) | drx(-40) | Your license is invalid or has expired. The error number is from the RLM. | drx_manager.cpp | |
error | License Expired {product_name} | drx | The period has expired and can not be used. The license must be replaced. | drx_manager.cpp | |
info | License Status: {value} | Permanent | drx_manager.cpp | ||
plugins | info | All plugin loaded | plugin_manager.cpp | ||
critical | Failed to load crypto {name}. {message} | Exit the program after this log. | plugin_manager.cpp | ||
info | Crypto plugins loaded: {names} Crypto algorithms: {names} | OPENSSL PLAIN, AES128(OPENSSL) | Completed loading of encryption plugins. | plugin_manager.cpp | |
critical | Failed to load compressor {name}. {message} | Exit the program after this log. | plugin_manager.cpp | ||
info | Compressor plugins loaded: {names} Compressor algorithms: {names} | ZLIB, LZ4 PLAIN, GZIP(ZLIB), LZ4(LZ4) | Completion of loading of compression plugins. | plugin_manager.cpp | |
resource | info | Loading language: [file_path] | C:\Program Files\DRX\lang\english.ini | 'lang' entry in drx.conf | lang.cpp |
warning | Language file [file_path] not found | C:\Program Files\DRX\lang\english.ini | There is no problem running. | lang.cpp |
config
Tag | Level | Format | Example | Description | Source file |
---|---|---|---|---|---|
info | Configuration loaded. [file_path] | The configuration file is successfully read. After this, apply the setting. | instance.cpp | ||
error | Failed to load [file_path]. {message} | [/opt/DRX/drx.conf]. /opt/DRX/drx.conf: cannot open file | Failed to read configuration file. Exit the program after this log. | instance.cpp | |
info | Configuration file is not exists. [file_path] | Use the default values. | instance.cpp | ||
error | Failed to get drbd configuration: {message} | Can't get drbd configuration. (exit_code: 10) C:\\Program Files\\DRBD\\etc\\drbd.conf:1: Parse error: 'global | common | resource | skip | include' expected, but got '∩' | Failed to read DRBD settings. | config.h | |
info | DRBD configuration output: {standard_output} | Output of DRBD settings. | config.h | ||
info | DRBD '{resource}' configuration update DRBD configuration tokens: {config} | Update the settings of the resource. It is output when adjust command is executed. | config.h | ||
global | warning | Failed to parse connection timeout: {value} ({message}) | 'connect-timeout' entry in drx.conf | config.h | |
warning | Unknown console log level value: {value} | 'loglevel-stdout' entry in drx.conf | config.h | ||
warning | Unknown file log level value: {value} | 'loglevel-file' entry in drx.conf | config.h | ||
warning | Failed to parse log file max size: {value} | 'logfile-max-size' entry in drx.conf | config.h | ||
warning | Failed to parse log file max count: {value} ({message}) | 'logfile-max-count' entry in drx.conf | config.h | ||
warning | Unknown performance log value: {value} | 'performance-log' entry in drx.conf | config.h | ||
warning | Failed to parse process thread count: {value} ({message}) | 'process-thread-count' entry in drx.conf | config.h | ||
warning | Unknown ip verification value: {value} | 'ip-verification' entry in drx.conf | config.h | ||
warning | Failed to parse init timeout: {value} ({message}) | 'init-timeout' entry in drx.conf | config.h | ||
info | Set base dir: {path} | /opt/DRX | 'base-dir' entry in drx.conf | config.h | |
info | Set DRBD path: {path} | /etc/drbd.d/drbd.conf | 'drbd-conf' entry in drx.conf | config.h | |
info | Set connection timeout: {seconds} | 10 | 'connect-timeout' entry in drx.conf | config.h | |
info | Set init timeout: {seconds} | 10 | 'init-timeout' entry in drx.conf | config.h | |
info | Set console log level: {value} | info | 'loglevel-stdout' entry in drx.conf | config.h | |
info | Set file log level: {value} | info | 'loglevel-file' entry in drx.conf | config.h | |
info | Set log file max size: {value} | 10M | 'logfile-max-size' entry in drx.conf | config.h | |
info | Set log file max count: {value} | 10 | 'logfile-max-count' entry in drx.conf | config.h | |
info | Set performance log: {on/off} | off | 'performance-log' entry in drx.conf | config.h | |
info | Set process thread count: {value} | 8 | 'process-thread-count' entry in drx.conf | config.h | |
info | Set IP verification: {on/off} | on | 'ip-verification' entry in drx.conf | config.h |
packet_process_pool
Level | Format | Example | Description | Source File |
---|---|---|---|---|
info | Started (concurrency: {count}) | auto -> 8 | Packet processing thread started. This log will not be output if the configuration is not multithreaded. | packet_process_pool.cpp |
info | Resized to {count} | The number of threads has changed. Output when 'set process-thread-count' is used. | packet_process_pool.cpp | |
info | Stopped | - | Packet processing thread stopped. It is output during program termination. | packet_process_pool.cpp |
error | Load compressor - inconsistency between threads | - | There was a thread-specific difference while loading or unloading one plug-in per thread. Probably there is a problem with the algorithm of the program. | packet_process_pool.cpp |
error | Unload compressor - inconsistency between threads | - | packet_process_pool.cpp | |
error | Load decompressor - inconsistency between threads | - | packet_process_pool.cpp | |
error | Unload decompressor - inconsistency between threads | - | packet_process_pool.cpp | |
error | Load encrypto - inconsistency between threads | - | packet_process_pool.cpp | |
error | Unload encrypto - inconsistency between threads | - | packet_process_pool.cpp | |
error | Load decrypto - inconsistency between threads | - | packet_process_pool.cpp | |
error | Unload decrypto - inconsistency between threads | - | packet_process_pool.cpp | |
error | Compressor ({name}) is not available | If you try to use an unloaded plug-in, it will be output. | packet_processor.cpp | |
error | Compressor algorithm ({name}) is not available | If you try to use an unloaded plug-in, it will be output. | packet_processor.cpp | |
error | Crypto ({name}) is not available | If you try to use an unloaded plug-in, it will be output. | packet_processor.cpp | |
error | Failed to initialize {name} encrypto stream. ({message}) | The plug-in file may be broken. | packet_processor.cpp | |
error | Crypto algorithm ({name}) is not available | If you try to use an unloaded plug-in, it will be output. | packet_processor.cpp | |
error | Failed to initialize {name} decrypto stream. ({message}) | The plug-in file may be broken. | packet_processor.cpp | |
error | Compress stream error. ({error_id}) | The data or plug-in files may be broken. | packet_processor.cpp | |
error | Decompress stream error. ({error_id}) | The data or plug-in files may be broken. | packet_processor.cpp | |
error | Encrypt stream error. ({error_id}) | The data or plug-in files may be broken. | packet_processor.cpp | |
error | Decrypt stream error. ({error_id}) | The data or plug-in files may be broken. | packet_processor.cpp |
Resource-specific logger
Resource-specific loggers are assigned the name of the resource as the name of the logger.
Each resource consists of two channels, so it has the following tags.
{connection direction}{channel type}
In addition, since each channel is composed of two proxy connections, the detailed tag of each connection is as follows.
{connection direction}{channel type}:{proxy location}
Details by tag
Each item
Item | Value | Description |
---|---|---|
Connection direction | a | Acceptor. (Local DRBD → Local DRX ← Remote DRX) |
c | Connector. (Local DRBD ← Local DRX → Remote DRX) | |
Channel type | - | Undefined. It is determined after connecting with DRBD. |
m | Meta channel | |
d | Data channel | |
Proxy location | i | Inside. Connection with local DRBD. |
o | Outside. Connection with remote DRX. |
Assuming that the resource name is 'r0', a logger with the following configuration exists.
Resource | Channel type | Proxy location | Tag |
---|---|---|---|
r0 | - | - | r0 |
Acceptor | - | r0:a | |
Inside | r0:a-:i | ||
Outside | r0:a-:o | ||
Connector | - | r0:c | |
Inside | r0:c-:i | ||
Outside | r0:c-:o |
Log List
Tag | Level | Format | Example | Description | Source file | |
---|---|---|---|---|---|---|
info | Start resource Inside local({IP:Port}) <-> drbd({IP:Port}) Outside local({IP:Port}) <-> remote({IP:Port}) | Starts the connection of the resource. | drx_manager.cpp | |||
error | Crypto ({name}) is not available | When an unloaded plugin is set. | drx_packet.cpp | |||
error | Encrypto plugin ({name}) initialization failed. (error_id: {error_id}) | The plug-in file may be broken. | drx_packet.cpp | |||
error | Decrypto plugin ({name}) initialization failed. (error_id: {error_id}) | The plug-in file may be broken. | drx_packet.cpp | |||
error | Failed to encrypt stream. (error_id: {error_id}) | The data or plug-in files may be broken. | drx_packet.cpp | |||
error | Failed to decrypt stream. (error_id: {error_id}) | The data or plug-in files may be broken. | drx_packet.cpp | |||
error | Compressor ({name}) is not available | When an unloaded plugin is set. | drx_packet.cpp | |||
error | Compressor algorithm ({name}) is not available | There is no plug-in to support remote DRX's compression algorithm. | drx_packet.cpp | |||
error | Failed to compress stream. (error_id: {error_id}) | The data or plug-in files may be broken. | drx_packet.cpp | |||
error | Failed to decompress stream. (error_id: {error_id}) | The data or plug-in files may be broken. | drx_packet.cpp | |||
전체 채널 태그 a- c- | info | Connector created | - | Inside proxy created. | drx_channel.cpp | |
error | Failed to create connector | - | Inside proxy creation failed. There is almost no possibility except memory shortage. | drx_channel.cpp | ||
info | Linker created | - | Outside proxy created. | drx_channel.cpp | ||
error | Failed to create linker | - | Outside proxy creation failed. There is almost no possibility except memory shortage. | drx_channel.cpp | ||
info | Channel state changed to ({type}) | bridging, bridged, established ... | drx_channel.cpp | |||
info | Channel type changed to ({type}) | 채널 유형이 변경됨 | meta or data | Channel type changed by DRBD connection. | drx_channel.cpp | |
info | Connector & Linker initialized | Inside & Outside의 프록시가 모두 초기화됨 | - | Channel is ready to run. | drx_channel.cpp | |
error | Linker initialization failed | Inside 프록시 초기화에 실패함 | - | Does not occur. | drx_channel.cpp | |
error | Connector initialization failed | Outside 프록시 초기화에 실패함 | - | Does not occur. | drx_channel.cpp | |
info | Start channel | 채널의 동작이 시작됨 | - | The channel's thread was executed. | drx_channel.cpp | |
info | Channel type duplicated. ({type} channel) | 채널 유형이 중복됨 | meta or data | The channel is a duplicate and will be disconnected. | drx_channel.cpp | |
info | Set memory limit: {value} | BAB의 크기가 변경됨 | 100M | Does not occur. | channel_info.cpp | |
info | Set bandwidth limit: {value} | 전송량 제한값이 변경됨 | 10M | channel_info.cpp | ||
info | Set outbound inside connection: {IP}:{Port} | 채널의 연결설정이 변경됨 | Does not occur. | channel_info.cpp | ||
info | Set outbound outside connection: {IP}:{Port} | 채널의 연결설정이 변경됨 | Does not occur. | channel_info.cpp | ||
info | Set inbound inside connection: {IP}:{Port} | 채널의 연결설정이 변경됨 | Does not occur. | Does not occur. | channel_info.cpp | |
info | Set inbound outside connection: {IP}:{Port} | 채널의 연결설정이 변경됨 | Does not occur. | channel_info.cpp | ||
info | Set compressor: {name} | 채널의 압축 설정이 변경됨 | NONE, ZLIB, IQA, LZ4 | channel_info.cpp | ||
info | Set compressor level: {num} | 채널의 압축 설정이 변경됨 | 0~9 | channel_info.cpp | ||
info | Set crypto: {name} | 채널의 암호화 설정이 변경됨 | NONE, OPENSSL | channel_info.cpp | ||
info | Set crypto key file: {file_path} | 채널의 암호화 키 파일이 변경됨 | Does not occur. | channel_info.cpp | ||
info | Set block size: {value} | 채널의 block-size가 변경됨 | channel_info.cpp | |||
info | Set minimum raw block size: {value} | 채널의 min-raw-block-size가 변경됨 | channel_info.cpp | |||
a-:i a-:o | info | Start accept | - | drx_session_impl.cpp | ||
c-:i c-:o | info | Start connect | - | drx_session_impl.cpp | ||
전체 프록시 [ac][-md]:i | warning | System error while disconnect. ({error_id}: {message}) | 연결 종료중에 오류가 발생함 | It is mostly the case that the connection is terminated already. | drx_session_impl.cpp | |
warning | Initialization timeout. ({secs} seconds) | 초기화 시간 초과 | 10 | Timeout occurs after sending and receiving initialization packet after connection. It is likely to be a network problem. | drx_session_impl.cpp | |
Inside 전체 [ac][-md]:i | warning | Send to drbd failed. ({error_id}: {message}) | DRBD로 데이터 전송중 실패 | The connection is already disconnected or will be disconnect after this. | drx_connector.cpp | |
info | Start RX BAB sender | RX BAB의 데이터를 로컬 DRBD로 전송하는 작업을 시작 | Initiate a transfer to the local DRBD. | drx_connector.cpp | ||
info | Flushing RX BAB | RX BAB의 남은 데이터를 모두 DRBD로 전송중 | Transferring all remaining data to DRBD. | drx_connector.cpp | ||
info | Stopping RX BAB sender | RX BAB의 데이터를 로컬 DRBD로 전송하는 작업을 종료 | drx_connector.cpp | |||
error | Failed to pop all datas from RX BAB | RX BAB를 비우는 작업에 실패 | Program is terminated during data transfer | drx_connector.cpp | ||
warning | Failed to receive. ({error_id}: {message}) | DRBD로부터 데이터를 읽는데 실패 | The connection is already disconnected or will be disconnect after this. | drx_connector.cpp | ||
info | Start TX BAB receiver | DRBD로부터 읽은 데이터를 TX BAB에 쓰는 작업을 시작 | Start writing the data read from DRBD to the buffer. | drx_connector.cpp | ||
warn | not yet bridged | TX BAB receiver를 시작하는 도중에 원격 DRX와의 연결이 끊김 | The connection to the remote DRX was lost while preparing the buffer. | drx_connector.cpp | ||
warn | Failed to receive from drbd. ({error_id}: {message}) | DRBD로부터 데이터를 읽는데 실패 | Failed to read data from DRBD. | drx_connector.cpp | ||
info | TX BAB receiver stopped | DRBD로부터 읽은 데이터를 TX BAB에 쓰는 작업을 종료 | drx_connector.cpp | |||
warning | Receive timeout | DRBD로부터 데이터를 읽는 도중 타임아웃 발생 | Timeout occurs while reading data from DRBD. | drx_connector.cpp | ||
Inside Acceptor a[-md]:i | error | Accept failed. ({error_id}: {message}) | DRBD의 연결을 기다리는 작업에 실패 | Ex) The port number is being used elsewhere. | drx_connector.cpp | |
error | Get remote endpoint failed. ({error_id}: {message}) | DRBD의 IP/Port를 조회하는데 실패 | Disconnected immediately after connecting | drx_connector.cpp | ||
info | Accepted. (client: {DRBD IP}:{DRBD Port}) | DRBD가 DRX로 연결됨 | DRBD connected. Waiting for the channel type. | drx_connector.cpp | ||
warn | Receive magic packet failed. ({error_id}: {message}) | DRBD의 magic 패킷을 읽는 도중 오류가 발생함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_connector.cpp | ||
error | Unknown channel received | DRBD로부터 알수 없는 채널을 받음 | 상대가 DRBD가 아니거나 호환되지 않는 버전일 가능성이 높다. | drx_connector.cpp | ||
info | Buddy channel got the same type. ({type}) | DRBD로부터 이미 연결되어있는 채널 타입을 받음 | meta 또는 data | 채널 유형이 중복되었으므로 연결을 끊는다. | drx_connector.cpp | |
error | Accept exception. [{DRX IP}:{DRX Port}] ({error_id}: {message}) | Acceptor의 연결 및 초기화 과정에서 예외가 발생 | drx_connector.cpp | |||
error | Accept exception. ({message}) | Acceptor의 연결 및 초기화 과정에서 예외가 발생 | drx_connector.cpp | |||
Inside Connector c[-md]:i | error | Set buffer size failed. ({message}) | DRBD와 연결하는 소켓의 버퍼 크기 설정에 실패 | 이 이후 연결을 끊는다. | drx_connector.cpp | |
warning | Connect to drbd failed. [{DRBD IP}:{DRBD Port}] ({error_id}: {message}) | DRBD에 연결하는데 실패함 | DRBD 리소스의 상태, 방화벽을 점검해야 한다. | drx_connector.cpp | ||
info | Connected at [{DRBD IP}:{DRBD Port}] | DRBD에 연결됨 | drx_connector.cpp | |||
info | This is not active channel. Reject | 사용할 수 없는 채널이므로 연결을 끊는다 | DRBD와 연결도중 원격 DRX와 원격 DRBD의 연결이 끊기는 경우 발생한다. | drx_connector.cpp | ||
Outside 전체 [ac][-md]:o | info | Local configuration: | 로컬 DRX의 통신 설정을 출력 | Local configuration: block-size: 1.00 MB compressor selected: ZLIB level 1 crypto selected: NONE compressors available: ZLIB, LZMA cryptos available: OPENSSL | 원격 DRX와의 연결 준비 과정에서 출력된다. | drx_link.cpp |
info | Local configuration: block-size: {value} compressor selected: {name} crypto selected: {name} compressors available: {name_list} cryptos available: {name_list} | 원격 DRX의 통신 설정을 출력 | 원격 DRX와 연결된 후, 원격 DRX와 통신이 가능한것이 판별되면 출력된다. | drx_link.cpp | ||
error | Unknown initialize packet received. (type: {value}) | 원격 DRX에서 알 수 없는 초기화 패킷을 받음 | 채널 유형에 해당하는 숫자 값 | 상대가 DRX가 아니거나 버전이 다르다. | drx_link.cpp | |
error | Remote crypto configuration not available. (remote: {value}) | 원격 DRX의 암호화 설정을 로컬 DRX에서 사용할 수 없다. | OPENSSL | 연결을 끊는다. (플러그인이 일부 적재되지 않았다.) | drx_link.cpp | |
error | Remote compressor configuration not available. (remote: {value}) | 원격 DRX의 압축 설정을 로컬 DRX에서 사용할 수 없다. | LZ4 level 1 | 연결을 끊는다. (플러그인이 일부 적재되지 않았다.) | drx_link.cpp | |
warning | Wrong size header received. (read: {size}, requested: {size}, payload: {size}, error: {error_id}) | 원격 DRX로부터 잘못된 길이의 헤더를 받음 | 연결을 끊는다. (전송중 연결이 끊겨도 발생할 수 있다.) | drx_link.cpp | ||
warning | Receive header failed. ({error_id}: {message}) | 원격 DRX로부터 헤더를 읽는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Wrong size payload received. (read: {size}, requested: {size}, error: {error_id}) | 원격 DRX로부터 잘못된 길이의 데이터를 받음 | 연결을 끊는다. (전송중 연결이 끊겨도 발생할 수 있다.) | drx_link.cpp | ||
warning | Receive payload failed. ({error_id}: {message}) | 원격 DRX로부터 데이터를 읽는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
error | RX BAB not configured | RX BAB 미설정 상태에서 RX BAB 사용 루틴이 실행됨 | 연결을 끊는다. | drx_link.cpp | ||
info | Channel type received. ({type}) | 원격 DRX로부터 채널 유형을 받음 | drbd_meta 또는 drbd_data | 이미 연결된 채널인 경우 연결을 끊는다. | drx_link.cpp | |
warn | Event received ({value}) | 원격 DRX로부터 이벤트를 받음 | 연결을 끊는다. | drx_link.cpp | ||
error | Unhandled header received ({value}) | 원격 DRX로부터 알 수 없는 이벤트 유형을 받음 | 원격 DRX와의 버전이 맞지 않을 가능성이 높다. | drx_link.cpp | ||
info | Start TX BAB sender (memlimit: {}, bwlimit: {}, blocksize: {}, min-raw-block-size: {}) | TX BAB의 데이터를 원격 DRX로 전송하는 작업 시작 | 압축 또는 암호화 사용시의 시작 메시지 | drx_link.cpp | ||
info | Start TX BAB sender (memlimit: {}, bwlimit: {}, blocksize: {}) | TX BAB의 데이터를 원격 DRX로 전송하는 작업 시작 | 압축/암호화 미사용시의 시작 메시지 | drx_link.cpp | ||
info | Flushing TX BAB | TX BAB의 남은 데이터를 모두 DRBD로 전송중 | 연결이 종료되었을 때 TX BAB의 남은 데이터를 전송하는 과정 | drx_link.cpp | ||
info | Stopping TX BAB sender | TX BAB의 데이터를 로컬 DRBD로 전송하는 작업을 종료 | drx_link.cpp | |||
error | Failed to pop all datas from TX BAB | TX BAB를 비우는 작업에 실패 | TX BAB를 비우는 도중에 프로그램이 종료되는 경우 | drx_link.cpp | ||
warning | Send event {value} failed. ({error_id}: {message}) | 원격 DRX로 이벤트를 전송하는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Send stream failed. ({error_id}: {message}) | 원격 DRX로 데이터 스트림을 전송하는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
drx_link.cpp | ||||||
Outside Connector c[-md]:o | warning | Connect to remote drx failed. [{remote DRX IP}:{remote DRX Port}] ({error_id}: {message}) | 원격 DRX에 접속하는데 실패함 | 원격 DRX의 가동 상태와 방화벽을 점검해야 한다. | drx_link.cpp | |
info | Connected at [{remote DRX IP}:{remote DRX Port}] | 원격 DRX에 접속됨 | 소켓 설정과 초기화 패킷 전달을 시작한다. | drx_link.cpp | ||
error | Set socket options failed. ({message}) | 원격 DRX와의 소켓 옵션 설정에 실패함 | 버퍼 크기와 nodelay 설정을 적용하는데 실패함. 연결을 끊는다. | drx_link.cpp | ||
warning | Send init packet failed. ({error_id}:{message}) | 원격 DRX로 초기화 패킷을 전송하는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Receive response packet failed. ({error_id}: {message}) | 원격 DRX로부터 초기화 응답 패킷을 받는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Error while making init conversation between remote drx: {실패유형} | 원격 DRX로부터 초기화 실패를 받음 | 연결을 끊는다. | drx_link.cpp | ||
warning | Failed to receive init packet failed. ({error_id}: {message}) | 원격 DRX로부터 초기화 패킷을 받는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Send response packet failed. ({error_id}: {message}) | 원격 DRX로 초기화 응답 패킷을 전송하는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
Outside Acceptor a[-md]:o | error | Accept failed. ({error_id}: {message}) | DRX의 연결을 기다리는 작업에 실패 | 포트가 다른곳에서 이미 사용중인 경우가 많다. | drx_link.cpp | |
error | Get remote endpoint failed. ({error_id}: {message}) | 원격 DRX의 IP/Port를 조회하는데 실패 | 접속 직후 연결이 끊긴 경우이다. | drx_link.cpp | ||
info | Accepted. (client: {remote DRX IP}:{remote DRX Port}) | 원격 DRX가 로컬 DRX로 연결됨 | 소켓 설정과 초기화 패킷 전달을 시작한다. | drx_link.cpp | ||
warning | Receive init packet failed. ({error_id}: {message}) | 원격 DRX로부터 초기화 패킷을 받는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Send response packet failed. ({error_id}: {message}) | 원격 DRX로 초기화 응답 패킷을 전송하는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Send init packet failed. ({error_id}: {message}) | 원격 DRX로 초기화 패킷을 전송하는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Receive response packet failed. ({error_id}: {message}) | 원격 DRX로부터 초기화 응답 패킷을 받는데 실패함 | 연결이 이미 끊겼거나 이 이후 연결을 끊는다. | drx_link.cpp | ||
warning | Error while making init conversation between remote drx: {실패유형} | 원격 DRX로부터 초기화 실패를 받음 | 연결을 끊는다. | drx_link.cpp | ||
error | Accept exception. [{로컬 DRX IP}:{로컬 DRX Port}] ({error_id}:{message}) | Acceptor의 연결 및 초기화 과정에서 예외가 발생 | drx_link.cpp | |||
error | Accept exception: {message} | Acceptor의 연결 및 초기화 과정에서 예외가 발생 | drx_link.cpp | |||
TX BAB RX BAB | info | {용량} bytes allocated | BAB에 메모리가 할당됨 | 1GB | allocator.h | |
error | Allocating {용량} bytes failed | BAB 메모리 할당 실패 | 10GB | 메모리 부족 | allocator.h | |
info | {용량} bytes freed | BAB의 메모리가 해제됨 | 1GB | allocator.h | ||
error | TX BAB is too small. Please set it to {용량} bytes or more. | TX BAB의 가용용량이 block-size보다 작다 | block-size를 줄이거나 TX BAB의 용량을 늘려야 한다. | allocator.h | ||
error | block-size is too big. Please set it to {} bytes or less. | RX BAB의 가용용량이 block-size보다 작다 | block-size를 줄여야 한다. | allocator.h | ||
error | Failed to allocate memory. {message} | BAB에 메모리 할당 실패 | 메모리 부족 | ring_buffer.cpp | ||
error | Failed to encrypt packet. buffer_size: {버퍼 길이}, encrypted_size: {암호화된 데이터 길이} | 암호화 실패 (버퍼 길이 문제) | 암호화된 데이터의 길이가 버퍼 길이보다 길어서 버퍼에 담을 수 없다. | packet_processor.cpp | ||
error | Failed to decrypt packet. buffer_size: {버퍼 길이}, decrypted_size: {복호화된 데이터 길이} | 복호화 실패 (버퍼 길이 문제) | 복호화된 데이터의 길이가 버퍼 길이보다 길어서 버퍼에 담을 수 없다. | packet_processor.cpp | ||
error | Failed to decompress packet. buffer_size: {버퍼 길이}, decompressed_size: {해제된 데이터 길이} | 압축 해제 실패 (버퍼 길이 문제) | 압축 해제된 데이터의 길이가 버퍼 길이보다 길어서 버퍼에 담을 수 없다. | packet_processor.cpp | ||
error | Failed to decompress at {인덱스} sizes: {원본 데이터 길이}, {버퍼 길이} | 압축 해제 실패 (기타) | 잘못된 데이터이거나 압축 알고리즘을 지원하지 않아 압축 해제 실패. | packet_processor.cpp | ||
error | Compress stream error. ({error_id}) | 압축 실패 | 데이터 압축 실패. 오류 번호가 없을 수도 있다. | packet_processor.cpp | ||
error | Decompress stream error. ({error_id}) | 압축 해제 실패 | 데이터 압축 해제 실패. 오류 번호가 없을 수도 있다. | packet_processor.cpp | ||
error | Encrypt stream error. ({error_id}) | 암호화 실패 | 데이터 암호화 실패. 오류 번호가 없을 수도 있다. | packet_processor.cpp | ||
error | Decrypt stream error. ({error_id}) | 복호화 실패 | 데이터 복호화 실패. 오류 번호가 없을 수도 있다. | packet_processor.cpp |
IPC
태그 | 레벨 | 내용 | 설명 | 비고 | 소스 파일 |
---|---|---|---|---|---|
error | Error on accept. ({error_id}: {message}) | IPC 서비스의 accept 과정에서 오류가 발생함 | ipc_server.cpp | ||
events | info | Notification start | 이벤트 전송 기능 시작 | ipc_event_notifier.cpp | |
info | Notification stopped | 이벤트 전송 기능 중지 | ipc_event_notifier.cpp | ||
warning | Failed to get client endpoint. ({error_id}: {message}) | IPC 클라이언트의 IP/Port 조회 실패 | 연결 직후 끊긴 경우 | ipc_event_notifier.cpp | |
info | client removed {IP}:{Port} | IPC 이벤트 조회 클라이언트의 연결이 종료됨 | ipc_event_notifier.cpp | ||
info | client added {IP}:{Port} | IPC 이벤트 조회 클라이언트가 연결됨 | ipc_event_notifier.cpp | ||
{IP}:{Port} | warning | Data transfer failed. ({error_id}: {message}) | IPC 클라이언트로 데이터 전송 실패 | ipc_server.cpp | |
error | Error on payload. ({message}) | IPC 서비스의 처리과정에서 오류가 발생함 | ipc_server.cpp |
crash_handler
레벨 | 내용 | 설명 | 값의 예 | 비고 | 소스 파일 |
---|---|---|---|---|---|
info | Signal: {시그널유형} | IPC 서비스의 accept 과정에서 오류가 발생함 | SIGINT 또는 SIGTERM | 실행중 Ctrl+C를 입력한 경우 SIGINT, 외부에서 프로세스를 종료하는 경우 SIGTERM이 발생한다. 이 메시지 이후 프로그램을 정상 종료한다. | handler.cpp |
warning | Failed to register signal handler for {시그널유형} | 해당 시그널 핸들러의 등록에 실패함 | SIGABRT, SIGFPE, SIGILL, SIGSEGV | 비정상 종료시 호출 스택을 출력하기 위한 시그널 등록에 실패함. | handler.cpp |
critical | Signal handling | 비정상 종료 시그널 발생 (Linux) | 프로그램 시그널 핸들링 방식으로 비정상 종료 상황을 핸들링함. | handler.cpp | |
critical | Exception handling (Unhandled) | 비정상 종료 시그널 발생 (Windows) | Windows API를 사용하여 비정상 종료 상황을 핸들링함. | handler.cpp | |
critical | Exception handling (Vectored) | 비정상 종료 시그널 발생 (Windows) | Windows API를 사용하여 비정상 종료 상황을 핸들링함. | handler.cpp | |
critical | Fatal exception: {예외유형} stackdump [프레임] {심볼주소} {함수명 } ({파일명:라인번호}) | 발생한 예외 출력 | 발생한 예외 종류와 호출 스택 출력 | stacktrace_linux.cpp stacktrace_windows.cpp |