π¬ andrewtoth commented on pull request "refactor: prohibit direct flags access in CCoinsCacheEntry and remove invalid tests":
(https://github.com/bitcoin/bitcoin/pull/30906#discussion_r1760378255)
`Clean` means not dirty and not fresh. `NO_ENTRY` is a special value that is not a possible flag but signals to the tests that that entry does not exist. With proper types, that would correspond to a `std::nullopt`.
We don't have to name the enum `Flags`, we can name it `EntryState`. That way we don't have to validate the `flags` variable to see if it's one of the values we will accept. That is better served by using an enum and std::optional.
(https://github.com/bitcoin/bitcoin/pull/30906#discussion_r1760378255)
`Clean` means not dirty and not fresh. `NO_ENTRY` is a special value that is not a possible flag but signals to the tests that that entry does not exist. With proper types, that would correspond to a `std::nullopt`.
We don't have to name the enum `Flags`, we can name it `EntryState`. That way we don't have to validate the `flags` variable to see if it's one of the values we will accept. That is better served by using an enum and std::optional.
π¬ andrewtoth commented on pull request "refactor: prohibit direct flags access in CCoinsCacheEntry and remove invalid tests":
(https://github.com/bitcoin/bitcoin/pull/30906#discussion_r1760380040)
I don't think replacing with true and false is the right approach. Using enums, tests would be like
```
CheckAccessCoin(VALUE1, SPENT , SPENT , DirtyAndFresh, DirtyAndFresh);
CheckSpendCoins(ABSENT, SPENT , ABSENT, Fresh , std::nullopt );
```
(https://github.com/bitcoin/bitcoin/pull/30906#discussion_r1760380040)
I don't think replacing with true and false is the right approach. Using enums, tests would be like
```
CheckAccessCoin(VALUE1, SPENT , SPENT , DirtyAndFresh, DirtyAndFresh);
CheckSpendCoins(ABSENT, SPENT , ABSENT, Fresh , std::nullopt );
```
π¬ l0rinc commented on pull request "refactor: prohibit direct flags access in CCoinsCacheEntry and remove invalid tests":
(https://github.com/bitcoin/bitcoin/pull/30906#discussion_r1760380094)
> is a special value that is not a possible flag but signals to the tests that that entry does not exist
> That is better served by using an enum and std::optional.
Thanks, I'll investigate tomorrow.
Please leave some comments about the overall direction as well, do you think this new test layout is more readable or less?
(https://github.com/bitcoin/bitcoin/pull/30906#discussion_r1760380094)
> is a special value that is not a possible flag but signals to the tests that that entry does not exist
> That is better served by using an enum and std::optional.
Thanks, I'll investigate tomorrow.
Please leave some comments about the overall direction as well, do you think this new test layout is more readable or less?
π theStack approved a pull request: "streams: cache file position within AutoFile"
(https://github.com/bitcoin/bitcoin/pull/30884#pullrequestreview-2305633593)
Code-review ACK a240e150e837b5a95ed19765a2e8b7c5b6013f35
Didn't run any benchmarks to compare with master.
(https://github.com/bitcoin/bitcoin/pull/30884#pullrequestreview-2305633593)
Code-review ACK a240e150e837b5a95ed19765a2e8b7c5b6013f35
Didn't run any benchmarks to compare with master.
π¬ theStack commented on pull request "streams: cache file position within AutoFile":
(https://github.com/bitcoin/bitcoin/pull/30884#discussion_r1760381984)
Possible follow-up material: now that that the read operation above (std::fgetc) has been replaced by only fseek/ftell calls on the file object, I think this condition can't be true anymore and hence this else-branch could be removed.
(https://github.com/bitcoin/bitcoin/pull/30884#discussion_r1760381984)
Possible follow-up material: now that that the read operation above (std::fgetc) has been replaced by only fseek/ftell calls on the file object, I think this condition can't be true anymore and hence this else-branch could be removed.
π l0rinc converted_to_draft a pull request: "refactor: prohibit direct flags access in CCoinsCacheEntry and remove invalid tests"
(https://github.com/bitcoin/bitcoin/pull/30906)
Similarly to https://github.com/bitcoin/bitcoin/pull/30849, this cleanup is intended to de-risk https://github.com/bitcoin/bitcoin/pull/30673#discussion_r1739909068 by simplifying the coin cache public interface.
`CCoinsCacheEntry` provided general access to its internal flags state, even though, in reality, it could only be `clean`, `fresh`, `dirty`, or `fresh|dirty` (in the follow-up, we will remove `fresh` without `dirty`).
Once it was marked as `dirty`, we couldnβt set the state back t
...
(https://github.com/bitcoin/bitcoin/pull/30906)
Similarly to https://github.com/bitcoin/bitcoin/pull/30849, this cleanup is intended to de-risk https://github.com/bitcoin/bitcoin/pull/30673#discussion_r1739909068 by simplifying the coin cache public interface.
`CCoinsCacheEntry` provided general access to its internal flags state, even though, in reality, it could only be `clean`, `fresh`, `dirty`, or `fresh|dirty` (in the follow-up, we will remove `fresh` without `dirty`).
Once it was marked as `dirty`, we couldnβt set the state back t
...
π¬ glozow commented on pull request "cluster mempool: optimized candidate search":
(https://github.com/bitcoin/bitcoin/pull/30286#discussion_r1760397936)
aha, that makes much more sense!
(https://github.com/bitcoin/bitcoin/pull/30286#discussion_r1760397936)
aha, that makes much more sense!
β
glozow closed an issue: "Mempool + Validation Code Organization"
(https://github.com/bitcoin/bitcoin/issues/25584)
(https://github.com/bitcoin/bitcoin/issues/25584)
π¬ glozow commented on issue "Mempool + Validation Code Organization":
(https://github.com/bitcoin/bitcoin/issues/25584#issuecomment-2351846451)
closing as (1) my main gripe with the fee estimator has been resolved, and (2) there isn't 1 correct actionable plan here. There are some general ideas of separation that we should incorporate into e.g. cluster mempool stuff, but I don't think there's any point in keeping this issue open.
(https://github.com/bitcoin/bitcoin/issues/25584#issuecomment-2351846451)
closing as (1) my main gripe with the fee estimator has been resolved, and (2) there isn't 1 correct actionable plan here. There are some general ideas of separation that we should incorporate into e.g. cluster mempool stuff, but I don't think there's any point in keeping this issue open.
π¬ edilmedeiros commented on issue "contrib/signet/miner: grind will fail for high difficulty chain":
(https://github.com/bitcoin/bitcoin/issues/30102#issuecomment-2351881650)
Confirming this behavior is still happening after #28417. I'll rework #30130 on top of it.
```
2024-09-15 12:39:41 INFO Mined block at height 10078; next in -5784h44m40s (mine)
2024-09-15 12:39:58 INFO Mined block at height 10079; next in -5784h42m28s (mine)
2024-09-15 12:41:01 INFO Mined block at height 10080; next in -5784h41m0s (mine)
2024-09-15 12:41:43 INFO Mined block at height 10081; next in -5784h39m12s (mine)
Traceback (most recent call last):
File "/Users/jose.edil/2-develop
...
(https://github.com/bitcoin/bitcoin/issues/30102#issuecomment-2351881650)
Confirming this behavior is still happening after #28417. I'll rework #30130 on top of it.
```
2024-09-15 12:39:41 INFO Mined block at height 10078; next in -5784h44m40s (mine)
2024-09-15 12:39:58 INFO Mined block at height 10079; next in -5784h42m28s (mine)
2024-09-15 12:41:01 INFO Mined block at height 10080; next in -5784h41m0s (mine)
2024-09-15 12:41:43 INFO Mined block at height 10081; next in -5784h39m12s (mine)
Traceback (most recent call last):
File "/Users/jose.edil/2-develop
...
π¬ BenWestgate commented on pull request "Drop -dbcache limit":
(https://github.com/bitcoin/bitcoin/pull/28358#discussion_r1760434344)
> I'm not sure what "available" means here?
From [man free](https://man7.org/linux/man-pages/man1/free.1.html):
> **available**
> Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use
So having "enough RAM" will work but having "enough available memory" is a more accurate
...
(https://github.com/bitcoin/bitcoin/pull/28358#discussion_r1760434344)
> I'm not sure what "available" means here?
From [man free](https://man7.org/linux/man-pages/man1/free.1.html):
> **available**
> Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use
So having "enough RAM" will work but having "enough available memory" is a more accurate
...
π¬ rob-scheepens commented on issue "Porting bcc tools to libbpf":
(https://github.com/bitcoin/bitcoin/issues/30298#issuecomment-2352217075)
@willcl-ark sorry for the delay in response. I'd love to implement this, but I doubt I currently have the necessary development skills (I'm just a performance engineer). I'll give it some thought and experiment a bit in the near future, let's see how far I get.
@0xB10C I just saw your eBPF Summit session, thanks for the update on the state of things. Have you by any chance seen the session on bpftime (https://youtu.be/YZbCBaTTkeE?si=a7qOB-arjxXBuTJP)? That appears to be useful in order to red
...
(https://github.com/bitcoin/bitcoin/issues/30298#issuecomment-2352217075)
@willcl-ark sorry for the delay in response. I'd love to implement this, but I doubt I currently have the necessary development skills (I'm just a performance engineer). I'll give it some thought and experiment a bit in the near future, let's see how far I get.
@0xB10C I just saw your eBPF Summit session, thanks for the update on the state of things. Have you by any chance seen the session on bpftime (https://youtu.be/YZbCBaTTkeE?si=a7qOB-arjxXBuTJP)? That appears to be useful in order to red
...
π¬ maflcko commented on pull request "ci: honor ci bypass prefix in test-each-commit":
(https://github.com/bitcoin/bitcoin/pull/30898#issuecomment-2352219690)
> > > when opening or updating a PR that only touches a markdown file, I'd use this
> >
> >
> > We might still want to run spell check and such things for documentation changes.
>
> Insofar as the spelling linter in the CI doesnβt raise
There are many other linters that do raise, and even many that only serve to lint docs. If they serve no purpose, they should be removed, instead of being (required to be) skipped.
Regardless, many doc updates are only checked at compile time (doxyg
...
(https://github.com/bitcoin/bitcoin/pull/30898#issuecomment-2352219690)
> > > when opening or updating a PR that only touches a markdown file, I'd use this
> >
> >
> > We might still want to run spell check and such things for documentation changes.
>
> Insofar as the spelling linter in the CI doesnβt raise
There are many other linters that do raise, and even many that only serve to lint docs. If they serve no purpose, they should be removed, instead of being (required to be) skipped.
Regardless, many doc updates are only checked at compile time (doxyg
...
π¬ willcl-ark commented on pull request "test: re-bucket p2p_node_network_limited":
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352254067)
> The re-bucketed test in the commit doesn't match the one in the commit/PR title (p2p_timeouts vs. p2p_node_network_limited), so I suppose one of the two has to be adapted.
Ugh, I cherry-picked the wrong tests from my working branch. The title is correct, tests in the commit here updated.
> I think the sorting isn't really based on the "correct bucket", but rather the inverse overall duration, the buckets are just a guideline/reminder. That is, as long as the longest running test is start
...
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352254067)
> The re-bucketed test in the commit doesn't match the one in the commit/PR title (p2p_timeouts vs. p2p_node_network_limited), so I suppose one of the two has to be adapted.
Ugh, I cherry-picked the wrong tests from my working branch. The title is correct, tests in the commit here updated.
> I think the sorting isn't really based on the "correct bucket", but rather the inverse overall duration, the buckets are just a guideline/reminder. That is, as long as the longest running test is start
...
π¬ maflcko commented on pull request "test: re-bucket p2p_node_network_limited":
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352259405)
Thanks, the explanation is correct and the two links with data are useful to support this change.
review ACK 45663cd02cfb99c0bf91828b33a0611bb223497e
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352259405)
Thanks, the explanation is correct and the two links with data are useful to support this change.
review ACK 45663cd02cfb99c0bf91828b33a0611bb223497e
π¬ maflcko commented on pull request "test: re-bucket p2p_node_network_limited":
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352270431)
Nit: May be good to reword the pull request description to say that this better reflects the reality in CI runs, and may even speed them up. The mention of "CI timeouts" could be removed, because adding or removing 200 seconds from a run shouldn't be a fix (or cause) of a timeout. Any run that takes longer than half of the overall timeout value is a warning that should be investigated and fixed, because the CI timeout is really only there to catch cases where there is a true timeout (zombie proc
...
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352270431)
Nit: May be good to reword the pull request description to say that this better reflects the reality in CI runs, and may even speed them up. The mention of "CI timeouts" could be removed, because adding or removing 200 seconds from a run shouldn't be a fix (or cause) of a timeout. Any run that takes longer than half of the overall timeout value is a warning that should be investigated and fixed, because the CI timeout is really only there to catch cases where there is a true timeout (zombie proc
...
π¬ willcl-ark commented on pull request "test: re-bucket p2p_node_network_limited":
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352281417)
> Nit: May be good to reword the pull request description to say that this better reflects the reality in CI runs, and may even speed them up. The mention of "CI timeouts" could be removed, because adding or removing 200 seconds from a run shouldn't be a fix (or cause) of a timeout. Any run that takes longer than half of the overall timeout value is a warning that should be investigated and fixed, because the CI timeout is really only there to catch cases where there is a true timeout (zombie pr
...
(https://github.com/bitcoin/bitcoin/pull/30879#issuecomment-2352281417)
> Nit: May be good to reword the pull request description to say that this better reflects the reality in CI runs, and may even speed them up. The mention of "CI timeouts" could be removed, because adding or removing 200 seconds from a run shouldn't be a fix (or cause) of a timeout. Any run that takes longer than half of the overall timeout value is a warning that should be investigated and fixed, because the CI timeout is really only there to catch cases where there is a true timeout (zombie pr
...
π¬ maflcko commented on pull request "cmake: Revamp handling of data files for `{test,bench}_bitcoin` targets":
(https://github.com/bitcoin/bitcoin/pull/30901#discussion_r1760728552)
not sure this is going in the right direction. The namespace just happens to be a single value for all raw files. However, in theory, one could imagine several raw files having a different namespace each. This would then again increase the verbosity and complexity.
(https://github.com/bitcoin/bitcoin/pull/30901#discussion_r1760728552)
not sure this is going in the right direction. The namespace just happens to be a single value for all raw files. However, in theory, one could imagine several raw files having a different namespace each. This would then again increase the verbosity and complexity.
π¬ fanquake commented on pull request "cmake: Add `FindZeroMQ` module":
(https://github.com/bitcoin/bitcoin/pull/30903#issuecomment-2352316231)
> Resolves https://github.com/bitcoin/bitcoin/issues/30876.
Not sure it does, as that issue applies to all dependencies, not just ZMQ.
(https://github.com/bitcoin/bitcoin/pull/30903#issuecomment-2352316231)
> Resolves https://github.com/bitcoin/bitcoin/issues/30876.
Not sure it does, as that issue applies to all dependencies, not just ZMQ.
π¬ maflcko commented on pull request "kernel: Move background load thread to node context":
(https://github.com/bitcoin/bitcoin/pull/30896#discussion_r1760748575)
I think the doxygen links in this doc are dead anyway, or at least stale. (At least I can't remember when they last worked and were up-to-date).
(https://github.com/bitcoin/bitcoin/pull/30896#discussion_r1760748575)
I think the doxygen links in this doc are dead anyway, or at least stale. (At least I can't remember when they last worked and were up-to-date).