Skip to content

Commit d1e9a02

Browse files
committed
Merge bitcoin/bitcoin#29402: mempool: Log added for dumping mempool transactions to disk
4d5b557 log: renamed disk to file so wording was more accurate (kevkevin) b9f04be mempool: Log added for dumping mempool transactions to disk (kevkevin) Pull request description: Sometimes when shutting off bitcoind it can take a while to dump the mempool transaction onto the disk so this change adds additional logging to the `DumpMempool` method in `kernel/mempool_persist.cpp` Motivated by bitcoin/bitcoin#29227 this change - adds a single new line for the amount of transactions being dumped and the amount of memory being dumped to file This is in response to bitcoin/bitcoin#29227 (comment) The logs will now look like this ``` 2024-02-09T23:41:52Z DumpAnchors: Flush 2 outbound block-relay-only peer addresses to anchors.dat completed (0.02s) 2024-02-09T23:41:52Z scheduler thread exit 2024-02-09T23:41:52Z Writing 29 mempool transactions to file... 2024-02-09T23:41:52Z Writing 0 unbroadcast transactions to file. 2024-02-09T23:41:52Z Dumped mempool: 0.000s to copy, 0.022s to dump, 0.015 MB dumped to file 2024-02-09T23:41:52Z Flushed fee estimates to fee_estimates.dat. 2024-02-09T23:41:53Z Shutdown: done ``` ACKs for top commit: maflcko: cr-ACK 4d5b557 glozow: reACK 4d5b557 Tree-SHA512: 049191e140d00c1ea57debe0138f1c9eb0f9bb0ef8138e2568e6d89e64f45a5d5853ce3b9cc0b28566aab97555b47ddfb0f9199fc8cea6b81e53f50592d5ae6a
2 parents c8e3978 + 4d5b557 commit d1e9a02

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/kernel/mempool_persist.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ bool LoadMempool(CTxMemPool& pool, const fs::path& load_path, Chainstate& active
4444

4545
AutoFile file{opts.mockable_fopen_function(load_path, "rb")};
4646
if (file.IsNull()) {
47-
LogPrintf("Failed to open mempool file from disk. Continuing anyway.\n");
47+
LogInfo("Failed to open mempool file. Continuing anyway.\n");
4848
return false;
4949
}
5050

@@ -70,12 +70,12 @@ bool LoadMempool(CTxMemPool& pool, const fs::path& load_path, Chainstate& active
7070
uint64_t total_txns_to_load;
7171
file >> total_txns_to_load;
7272
uint64_t txns_tried = 0;
73-
LogInfo("Loading %u mempool transactions from disk...\n", total_txns_to_load);
73+
LogInfo("Loading %u mempool transactions from file...\n", total_txns_to_load);
7474
int next_tenth_to_report = 0;
7575
while (txns_tried < total_txns_to_load) {
7676
const int percentage_done(100.0 * txns_tried / total_txns_to_load);
7777
if (next_tenth_to_report < percentage_done / 10) {
78-
LogInfo("Progress loading mempool transactions from disk: %d%% (tried %u, %u remaining)\n",
78+
LogInfo("Progress loading mempool transactions from file: %d%% (tried %u, %u remaining)\n",
7979
percentage_done, txns_tried, total_txns_to_load - txns_tried);
8080
next_tenth_to_report = percentage_done / 10;
8181
}
@@ -138,11 +138,11 @@ bool LoadMempool(CTxMemPool& pool, const fs::path& load_path, Chainstate& active
138138
}
139139
}
140140
} catch (const std::exception& e) {
141-
LogPrintf("Failed to deserialize mempool data on disk: %s. Continuing anyway.\n", e.what());
141+
LogInfo("Failed to deserialize mempool data on file: %s. Continuing anyway.\n", e.what());
142142
return false;
143143
}
144144

145-
LogPrintf("Imported mempool transactions from disk: %i succeeded, %i failed, %i expired, %i already there, %i waiting for initial broadcast\n", count, failed, expired, already_there, unbroadcast);
145+
LogInfo("Imported mempool transactions from file: %i succeeded, %i failed, %i expired, %i already there, %i waiting for initial broadcast\n", count, failed, expired, already_there, unbroadcast);
146146
return true;
147147
}
148148

@@ -184,7 +184,9 @@ bool DumpMempool(const CTxMemPool& pool, const fs::path& dump_path, FopenFn mock
184184
}
185185
file.SetXor(xor_key);
186186

187-
file << (uint64_t)vinfo.size();
187+
uint64_t mempool_transactions_to_write(vinfo.size());
188+
file << mempool_transactions_to_write;
189+
LogInfo("Writing %u mempool transactions to file...\n", mempool_transactions_to_write);
188190
for (const auto& i : vinfo) {
189191
file << TX_WITH_WITNESS(*(i.tx));
190192
file << int64_t{count_seconds(i.m_time)};
@@ -194,7 +196,7 @@ bool DumpMempool(const CTxMemPool& pool, const fs::path& dump_path, FopenFn mock
194196

195197
file << mapDeltas;
196198

197-
LogPrintf("Writing %d unbroadcast transactions to disk.\n", unbroadcast_txids.size());
199+
LogInfo("Writing %d unbroadcast transactions to file.\n", unbroadcast_txids.size());
198200
file << unbroadcast_txids;
199201

200202
if (!skip_file_commit && !FileCommit(file.Get()))
@@ -205,11 +207,12 @@ bool DumpMempool(const CTxMemPool& pool, const fs::path& dump_path, FopenFn mock
205207
}
206208
auto last = SteadyClock::now();
207209

208-
LogPrintf("Dumped mempool: %.3fs to copy, %.3fs to dump\n",
210+
LogInfo("Dumped mempool: %.3fs to copy, %.3fs to dump, %d bytes dumped to file\n",
209211
Ticks<SecondsDouble>(mid - start),
210-
Ticks<SecondsDouble>(last - mid));
212+
Ticks<SecondsDouble>(last - mid),
213+
fs::file_size(dump_path));
211214
} catch (const std::exception& e) {
212-
LogPrintf("Failed to dump mempool: %s. Continuing anyway.\n", e.what());
215+
LogInfo("Failed to dump mempool: %s. Continuing anyway.\n", e.what());
213216
return false;
214217
}
215218
return true;

0 commit comments

Comments
 (0)