<bitcoin-git>
[bitcoin] achow101 opened pull request #26418: Fix signing of multi_a and rawtr scripts with wallets that only have corresponding keys (master...fix-psbt-multia) https://github.com/bitcoin/bitcoin/pull/26418
<bitcoin-git>
[bitcoin] jamesob opened pull request #26419: log: mempool: log removal reason in validation interface (master...2022-10-log-mempool-removal-reason) https://github.com/bitcoin/bitcoin/pull/26419
<BlueMatt[m]>
oookayyy, so my question yesterday was hitting on a not-quite-bug-but-definitely-usability-issue
<BlueMatt[m]>
the issue was basically that some folks were running bitcoin core on regtest and calling `generatetoaddress`, some software was seeing the block, persisting its "latest chain tip", then the bitcoin node was crashing (even after an hour, but basically docker container shutdown was just kill'ing) and on restart the block was gone. the aforementioned software would then later load its "latest chain tip", not have any idea where that
<BlueMatt[m]>
is on the chain and get very sad cause it couldnt ask for the block.
<BlueMatt[m]>
so, kinda annoying that no flush happens if bitcoin core is idle for an hour, but ultimately the issue could also appear in prod if there's a reorg while a node that just crashed is offline
<BlueMatt[m]>
at least on regtest
<BlueMatt[m]>
doubly annoying cause on regtest you're not generating large blocks, so flushing is rare, afaiu?
amovfx has quit [Remote host closed the connection]
amovfx has joined #bitcoin-core-dev
amovfx has quit [Remote host closed the connection]
amovfx_ has quit [Ping timeout: 252 seconds]
amovfx has joined #bitcoin-core-dev
mudsip has joined #bitcoin-core-dev
amovfx has quit [Ping timeout: 276 seconds]
amovfx has joined #bitcoin-core-dev
<luke-jr>
BlueMatt[m]: "don't do that"
<luke-jr>
killing a program forcefully bypassing its shutdown sequence is not reasonable behaviour. of course the program should recover, but not necessarily in the most efficient manner
sipsorcery has quit [Ping timeout: 260 seconds]
amovfx has quit [Ping timeout: 255 seconds]
mudsip has quit []
<BlueMatt[m]>
apparently that's "Just How Docker Works", cant help that.
<BlueMatt[m]>
also, machines lose power 🤷
amovfx has joined #bitcoin-core-dev
<luke-jr>
yes, but the current behaviour is acceptable for power loss type scenarios
<luke-jr>
can perhaps improve it, but I'd consider it a feature, not a bugfix
<luke-jr>
IIRC the reason we don't flush more, is that it also clears the cache
<luke-jr>
I think there's a PR to change that though
<luke-jr>
looks fairly ready to merge, but considering a prior version had a consensus bug, it could benefit from additional review BlueMatt[m]
<BlueMatt[m]>
sure, but if you're talking about regtest and its been an hour, it seems like flush should be done :)
<sipa>
I had no idea anyone was even interested in having a regtest node run for more than a few minutes
<luke-jr>
special-casing for regtest seems not useful
zeropoint has quit [Quit: leaving]
<sipa>
Regtest or not could change some default timeout for flush configuration option, perhaps.
<luke-jr>
could, but I don't think it's worth that
<luke-jr>
especially with 17487 around the corner enabling a more aggressive flush without drop
<sipa>
I don't think 17487 changes much.
<sipa>
Flushing without dropping the cache is fairly terrible for performance.
<sipa>
I can imagine there are special cases where that's useful, but it's not a good idea to use it for normal regular flushes
<sipa>
Hmm, actually, that's not true.
<sipa>
You can't use it for cache-size-limit-exceeded flushes, but you could use it for just regular time-based one if the cache isn't full.
mikehu44 has joined #bitcoin-core-dev
<luke-jr>
I would think it would be ideal to flush after each block, outside of IBD
<luke-jr>
and keep the cache for processing subsequent blocks
<sipa>
That may make sense, or every few blocks.
<sipa>
The main benefit of not flushing (whether you drop the cache or not) is avoiding that UTXOs, created before the flush point but spent shortly after, hit disk at all.
<sipa>
But outside of IBD that's not nearly as important.
<luke-jr>
right, it could perhaps be configurable for situations where I/O is more precious
<luke-jr>
but I think the norm is that outside IBD, it's no big deal
<sipa>
well one downside is that flushing does need a somewhat extended lock on the cache data structures, and if a block arrives in that time, processing it will be delayed (perhaps just a few ms, but possibly more)
<sipa>
i can imagine that some network users prefer not to risk that latency hit
<luke-jr>
hmm
<luke-jr>
can abort the transaction in that case?
<luke-jr>
maybe not so simple, since that would require 2 passes over the dbcache
<luke-jr>
(one to do the actual flush, and another to update the flags)
amovfx has quit [Ping timeout: 260 seconds]
mekster669494 has joined #bitcoin-core-dev
mikehu44 has quit [Ping timeout: 272 seconds]
mikehu44 has joined #bitcoin-core-dev
bitdex has quit [Remote host closed the connection]
bitdex has joined #bitcoin-core-dev
amovfx has joined #bitcoin-core-dev
cmirror has quit [Remote host closed the connection]
cmirror has joined #bitcoin-core-dev
yanmaani2 has quit [Remote host closed the connection]
yanmaani2 has joined #bitcoin-core-dev
mekster669494 has quit [Ping timeout: 240 seconds]
yanmaani2 has quit [Remote host closed the connection]
DeanGuss has quit [Quit: buhbye]
DeanGuss has joined #bitcoin-core-dev
DeanGuss has quit [Changing host]
DeanGuss has joined #bitcoin-core-dev
sudoforge has joined #bitcoin-core-dev
amovfx has joined #bitcoin-core-dev
amovfx has quit [Ping timeout: 255 seconds]
amovfx has joined #bitcoin-core-dev
flooded has joined #bitcoin-core-dev
_flood has quit [Ping timeout: 272 seconds]
Guyver2 has joined #bitcoin-core-dev
sudoforge has quit [Quit: 404]
yanmaani2 has joined #bitcoin-core-dev
Guyver2 has left #bitcoin-core-dev [Closing Window]
<bitcoin-git>
[bitcoin] fanquake opened pull request #26421: build: copy config.{guess,sub} post autogen in zmq package (master...fix_macos_zeromq_older_ubuntu) https://github.com/bitcoin/bitcoin/pull/26421
amovfx has quit [Ping timeout: 260 seconds]
jb55 has quit [Quit: jb55]
jb55 has joined #bitcoin-core-dev
bitdex has quit [Remote host closed the connection]
bitdex has joined #bitcoin-core-dev
amovfx has joined #bitcoin-core-dev
flooded has quit [Read error: Connection reset by peer]
flooded has joined #bitcoin-core-dev
Aeohrta has joined #bitcoin-core-dev
<sipa>
@[luke-jr] Yeah, and without significant refactor, flushing does take time proportional to the cache size, even when it has few dirty entries (because it requires iterating the whole cache)
Alina-malina has quit [Quit: !be back soon]
Alina-malina has joined #bitcoin-core-dev
Alina-malina has quit [Quit: !be back soon]
Alina-malina has joined #bitcoin-core-dev
Alina-malina has quit [Quit: !be back soon]
Alina-malina has joined #bitcoin-core-dev
Alina-malina has quit [Client Quit]
bitdex has quit [Remote host closed the connection]
bitdex has joined #bitcoin-core-dev
Alina-malina has joined #bitcoin-core-dev
Aeohrta has quit [Ping timeout: 255 seconds]
Aeohrta has joined #bitcoin-core-dev
amovfx has quit [Ping timeout: 246 seconds]
mekster669494 has joined #bitcoin-core-dev
mekster6694943 has joined #bitcoin-core-dev
mekster669494 has quit [Ping timeout: 272 seconds]
mekster6694943 is now known as mekster669494
bytes1440000 has joined #bitcoin-core-dev
Alina-malina has quit [Quit: !be back soon]
<bytes1440000>
jonatack: Sorry, for some reasons i could not test this today: #26328 looks easy and will do tomorrow and a few others