aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAva Chow <github@achow101.com>2024-06-14 14:34:48 -0400
committerAva Chow <github@achow101.com>2024-06-14 14:34:48 -0400
commit538497ba27f58549876830189346e5b76bd55517 (patch)
tree713954b26ce1b5af6be59a4e69e2ccffdd8ad5db
parent0b94fb87206616e475566c3667cbaad0e9faa5b0 (diff)
parentfae3a1f0065064d80ab4c0375a9eaeb666c5dd55 (diff)
Merge bitcoin/bitcoin#30255: log: use error level for critical log messages
fae3a1f0065064d80ab4c0375a9eaeb666c5dd55 log: use error level for critical log messages (MarcoFalke) Pull request description: This picks up the first commit from https://github.com/bitcoin/bitcoin/pull/29231, but extends it to also cover cases that were missed in it. As per https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#logging, LogError should be used for severe problems that require the node to shut down. ACKs for top commit: stickies-v: re-ACK fae3a1f0065064d80ab4c0375a9eaeb666c5dd55, I'm ~0 on the latest force push as `user_error` was already logged at the right level through `GetNotifications().fatalError(user_error);` so I'd be in favour of deduplicating/cleaning up this logging logic but can be done in follow-up. kevkevinpal: ACK [fae3a1f](https://github.com/bitcoin/bitcoin/pull/30255/commits/fae3a1f0065064d80ab4c0375a9eaeb666c5dd55) achow101: ACK fae3a1f0065064d80ab4c0375a9eaeb666c5dd55 Tree-SHA512: 3f99fd25d5a204d570a42d8fb2b450439aad7685692f9594cc813d97253c4df172a6ff3cf818959bfcf25dfcf8ee9a9c9ccc6028fcfcecdb47591e18c77ef246
-rw-r--r--src/coins.cpp2
-rw-r--r--src/init.cpp16
-rw-r--r--src/node/interfaces.cpp2
-rw-r--r--src/node/kernel_notifications.cpp2
-rw-r--r--src/validation.cpp6
5 files changed, 14 insertions, 14 deletions
diff --git a/src/coins.cpp b/src/coins.cpp
index b62653e0de..a4e4d4ad32 100644
--- a/src/coins.cpp
+++ b/src/coins.cpp
@@ -361,7 +361,7 @@ static bool ExecuteBackedWrapper(Func func, const std::vector<std::function<void
for (const auto& f : err_callbacks) {
f();
}
- LogPrintf("Error reading from database: %s\n", e.what());
+ LogError("Error reading from database: %s\n", e.what());
// Starting the shutdown sequence and returning false to the caller would be
// interpreted as 'entry not found' (as opposed to unable to read data), and
// could lead to invalid interpretation. Just exit immediately, as we can't
diff --git a/src/init.cpp b/src/init.cpp
index dec391bb49..b7d4c72b0a 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -409,7 +409,7 @@ static void HandleSIGHUP(int)
static BOOL WINAPI consoleCtrlHandler(DWORD dwCtrlType)
{
if (!(*Assert(g_shutdown))()) {
- LogPrintf("Error: failed to send shutdown signal on Ctrl-C\n");
+ LogError("Failed to send shutdown signal on Ctrl-C\n");
return false;
}
Sleep(INFINITE);
@@ -840,7 +840,7 @@ std::set<BlockFilterType> g_enabled_filter_types;
// Since LogPrintf may itself allocate memory, set the handler directly
// to terminate first.
std::set_new_handler(std::terminate);
- LogPrintf("Error: Out of memory. Terminating.\n");
+ LogError("Out of memory. Terminating.\n");
// The log was successful, terminate now.
std::terminate();
@@ -1175,9 +1175,9 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
scheduler.scheduleEvery([&args, &node]{
constexpr uint64_t min_disk_space = 50 << 20; // 50 MB
if (!CheckDiskSpace(args.GetBlocksDirPath(), min_disk_space)) {
- LogPrintf("Shutting down due to lack of disk space!\n");
+ LogError("Shutting down due to lack of disk space!\n");
if (!(*Assert(node.shutdown))()) {
- LogPrintf("Error: failed to send shutdown signal after disk space check\n");
+ LogError("Failed to send shutdown signal after disk space check\n");
}
}
}, std::chrono::minutes{5});
@@ -1582,7 +1582,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
try {
return f();
} catch (const std::exception& e) {
- LogPrintf("%s\n", e.what());
+ LogError("%s\n", e.what());
return std::make_tuple(node::ChainstateLoadStatus::FAILURE, _("Error opening block database"));
}
};
@@ -1614,10 +1614,10 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
if (fRet) {
do_reindex = true;
if (!Assert(node.shutdown)->reset()) {
- LogPrintf("Internal error: failed to reset shutdown signal.\n");
+ LogError("Internal error: failed to reset shutdown signal.\n");
}
} else {
- LogPrintf("Aborted block database rebuild. Exiting.\n");
+ LogError("Aborted block database rebuild. Exiting.\n");
return false;
}
} else {
@@ -1752,7 +1752,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
if (args.GetBoolArg("-stopafterblockimport", DEFAULT_STOPAFTERBLOCKIMPORT)) {
LogPrintf("Stopping after block import\n");
if (!(*Assert(node.shutdown))()) {
- LogPrintf("Error: failed to send shutdown signal after finishing block import\n");
+ LogError("Failed to send shutdown signal after finishing block import\n");
}
return;
}
diff --git a/src/node/interfaces.cpp b/src/node/interfaces.cpp
index 19f4aaf9c4..9e10f4ca59 100644
--- a/src/node/interfaces.cpp
+++ b/src/node/interfaces.cpp
@@ -125,7 +125,7 @@ public:
void startShutdown() override
{
if (!(*Assert(Assert(m_context)->shutdown))()) {
- LogPrintf("Error: failed to send shutdown signal\n");
+ LogError("Failed to send shutdown signal\n");
}
// Stop RPC for clean shutdown if any of waitfor* commands is executed.
if (args().GetBoolArg("-server", false)) {
diff --git a/src/node/kernel_notifications.cpp b/src/node/kernel_notifications.cpp
index 1f07014ee2..44828b8adb 100644
--- a/src/node/kernel_notifications.cpp
+++ b/src/node/kernel_notifications.cpp
@@ -63,7 +63,7 @@ kernel::InterruptResult KernelNotifications::blockTip(SynchronizationState state
uiInterface.NotifyBlockTip(state, &index);
if (m_stop_at_height && index.nHeight >= m_stop_at_height) {
if (!m_shutdown()) {
- LogPrintf("Error: failed to send shutdown signal after reaching stop height\n");
+ LogError("Failed to send shutdown signal after reaching stop height\n");
}
return kernel::Interrupted{};
}
diff --git a/src/validation.cpp b/src/validation.cpp
index e066ee16cb..6db723d22c 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -5967,8 +5967,8 @@ SnapshotCompletionResult ChainstateManager::MaybeCompleteSnapshotValidation()
PACKAGE_NAME, snapshot_tip_height, snapshot_base_height, snapshot_base_height, PACKAGE_BUGREPORT
);
- LogPrintf("[snapshot] !!! %s\n", user_error.original);
- LogPrintf("[snapshot] deleting snapshot, reverting to validated chain, and stopping node\n");
+ LogError("[snapshot] !!! %s\n", user_error.original);
+ LogError("[snapshot] deleting snapshot, reverting to validated chain, and stopping node\n");
m_active_chainstate = m_ibd_chainstate.get();
m_snapshot_chainstate->m_disabled = true;
@@ -6320,7 +6320,7 @@ bool ChainstateManager::ValidatedSnapshotCleanup()
fs::path p_old,
fs::path p_new,
const fs::filesystem_error& err) {
- LogPrintf("Error renaming path (%s) -> (%s): %s\n",
+ LogError("[snapshot] Error renaming path (%s) -> (%s): %s\n",
fs::PathToString(p_old), fs::PathToString(p_new), err.what());
GetNotifications().fatalError(strprintf(_(
"Rename of '%s' -> '%s' failed. "