-
m-relay
<tobtoht:monero.social> sech1: can you try this build. release-v0.18 + boost 1.84:
github.com/tobtoht/monero/actions/runs/13380438243
-
SyntheticBird
sure
-
SyntheticBird
F*CK wrong alt
-
m-relay
<vtnerd:monero.social> Damn, and I removed some sketchy casting that was in existing code too. What's left should've been straightforward
-
xmr-pr
x64x2 opened issue #9806: transaction build cannot add output
-
xmr-pr
-
m-relay
-
m-relay
<tobtoht:monero.social> 0xfffc: can you also test this one to rule out a compiler bug:
github.com/tobtoht/monero/actions/runs/13380562426
-
sech1
-
sech1
-
sech1
so it's probably a boost bug, not a compiler bug
-
sech1
or maybe it's still a compiler bug that's present in both compiler versions
-
tobtoht_
sech1: did you check if the issue is also present in gitian on release-v0.18? it uses an older version gcc
-
m-relay
-
sech1
I'll restart the gitian build now
-
tobtoht_
-
m-relay
<0xfffc:monero.social> tobtoht:
github.com/tobtoht/monero/actions/runs/13385369440 no crash, syncing without issue
-
sech1
gitian build crashes
-
tobtoht_
can you share logs?
-
sech1
It's just a silent crash, nothing in the logs even at level 2
-
sech1
-
tobtoht_
-
sech1
no crash so far (synced first 50k blocks 2 times)
-
sech1
3 times, no crash
-
tobtoht_
ok, good
-
tobtoht_
i have release-v0.18 gitian builds running in ci now
-
tobtoht_
"gitian build crashes" <- oh, haven't had enough sleep. i interpreted that as gitian builds failing
-
sech1
So it's a combination of boost and some GCC versions that crashes (GCC 14.2.0 works fine with this boost version)
-
sech1
Either some bug in boost, or too complex code for older GCC versions (bug in GCC)
-
tobtoht_
the msys2 build? it doesn't use boost 1.66
-
sech1
oh
-
sech1
What does it use?
-
tobtoht_
1.87.0
-
tobtoht_
so with crashes on three versions of gcc i think this is a boost bug
-
tobtoht_
i'm not sure how much farther we can update boost on release without breaking gitian builds. and this might introduce other issues. a revert seems like the safest option for now
-
sech1
I took a quick glance at #9800
-
sech1
I has "const auto results = resolver.resolve(...); ... results.begin()->..." pattern in several places
-
sech1
without checking that results is not empty
-
sech1
not a safe approach
-
sech1
*It has
-
sech1
It does have "if(results.empty())" checks in a few other places
-
sech1
Very concerning
-
sech1
This is in contrib/epee/include/net/abstract_tcp_server2.inl
-
sech1
"m_endpoint = *resolver.resolve(udp::v4(), m_device_host, std::to_string(m_device_port)).begin();"
-
sech1
That's very optimistic :D
-
sech1
tobtoht_ but latest master branch didn't crash for me, so it's some combination of boost + GCC versions + surrounding code that crashes. Must be a compiler bug, or an undefined behavior.
-
tobtoht_
master uses boost 1.84
-
sech1
that explains it
-
sech1
Boost is the culprit :D
-
sech1
vtnerd Can you add the checks that "resolver.resolve" returns non-empty list of results everywhere you call it? 9800 looks inconsistent in this department.
-
m-relay
<0xfffc:monero.social> boost is abomination!
-
m-relay
<0xfffc:monero.social> CMake used to be abomination. But it is better these days!
-
m-relay
<syntheticbird:monero.social> so...
-
m-relay
<syntheticbird:monero.social> does anyone have any idea why levin signature is categorized as "Bender's nightmare" ?
-
m-relay
<syntheticbird:monero.social> I tried to search but Futurama is a big series, hard to find which episode this is referring to
-
m-relay
<syntheticbird:monero.social> cc luigi1111
-
midipoet
that's a good one
-
tobtoht_
-
sech1
no crash so far (3 times x 50k first blocks)
-
tobtoht_
ok great
-
sech1
I will test more
-
tobtoht_
ty
-
luigi1111
Hmm idk Syntheticbird
-
sech1
2025-02-18 12:42:23.547 6248 INFO global src/daemon/main.cpp:309 Monero 'Fluorine Fermi' (v0.18.4.0-af84f7cc6)
-
sech1
just to confirm it's that commit
-
tobtoht_
yep
-
plowsof
"i thought i saw a 2"
-
m-relay
<ofrnxmr:xmr.mx> What
-
selsta
monero-project/monero #9806 is this issue complete AI hallucination?
-
selsta
luigi1111: can you block them from org ^?
-
tobtoht_
they posted some incomprehensible image on a pr earlier, then deleted it. might be a bot?
-
selsta
yes seems to be a troll who opens nonsensical issues and PR
-
luigi1111
Can tob do that? I'm not in office
-
tobtoht_
oh let me check
-
tobtoht_
block user menu item doesn't appear for me
-
sech1
wow, first time I see such an elaborate attempt
-
sech1
"xmrrpcunsafe" is nowhere to be found in Monero/Monero GUI code, and it even mutates into "zrpcunsafe" on one line
-
xmr-pr
tobtoht opened pull request #9807: depends: boost: update to 1.69.0 [0.18]
-
xmr-pr
-
tobtoht_
-
sech1
no crash
-
tobtoht_
perfect
-
m-relay
<woodser:monero.social> happy to run more tests when there's a fix for PR 9460 (it works with `--max-connections-per-ip 10` but not by default)
-
m-relay
<ofrnxmr:xmr.mx> I think max connections might be intended behavior
-
m-relay
<ofrnxmr:xmr.mx> Its 1 by default, so it shouldnt have allowed incoming connection from the same ip as outgoing to begin with (but it was, pre 9460). Seems like 9460 fixed that "bug"
-
m-relay
<ofrnxmr:xmr.mx> Running a private testnet should require increasing max-connections-per-ip to allow 127.0.0.1 to have multiple in/out connections from the same ip
-
m-relay
<woodser:monero.social> ah ok, so people shouldn't run into that problem in the wild. I'll update scripts to use that flag
-
m-relay
<ofrnxmr:xmr.mx> vtnerd does this sound right?
-
m-relay
<ofrnxmr:xmr.mx> I dont think there is any exceptions for localhost, so i'm surprised it ever worked before :/
-
m-relay
<vtnerd:monero.social> sech1: I recall verifying the presence of `.empty()` checks when using an ASIO resolver. Maybe I missed one
-
m-relay
<vtnerd:monero.social> oops, definitely did not add checks in abstract_tcp_server2.inl
-
m-relay
<vtnerd:monero.social> this should’ve been a problem previously though, it doesn’t look like i removed in existing checks (just copied missing checks behavior)
-
m-relay
<vtnerd:monero.social> yeah there’s a `.empty()` check in the one place that definitely needs it, and some non-checks in the init code (which may be the culprit, but looking unlikely)
-
m-relay
<vtnerd:monero.social> I’m busy over the next two days with things, but might be able to sneak in a fix if someone deems it necessary
-
m-relay
<vtnerd:monero.social> I’m a bit surprised we concluded it was Boost - do we even know why at this point?
-
m-relay
<vtnerd:monero.social> and [@ofrnxmr:xmr.mx](https://matrix.to/#/@ofrnxmr:xmr.mx)yes, the daemon should've never allowed more than 1 incoming p2p connection per ip
-
sech1
Reverting #9800 fixes the crash, changing Boost version also fixes the crash. Changing compiler version doesn't fix the crash
-
sech1
vtnerd yes, I found several missing checks in abstract_tcp_server2.inl and constructions like "*resolver.resolve(udp::v4(), m_device_host, std::to_string(m_device_port)).begin();" in other files
-
tobtoht_
vtnerd: there are a few suspicious fixes between boost asio 1.68 and 1.69, tho not sure if related
-
tobtoht_
-
tobtoht_
-
tobtoht_
there were no changes between boost asio 1.67 and 1.68 and 1.67 still had the crash
-
m-relay
<vtnerd:monero.social> oh yikes!
-
m-relay
<vtnerd:monero.social> yeah the code relies on `resolve.empty()` in a few places.
-
m-relay
<vtnerd:monero.social> what terrible bug to sneak into ASIO
-
m-relay
<vtnerd:monero.social> we could change from `.empty()` to a comparison against a default iterator in a few places
-
m-relay
<vtnerd:monero.social> the other option is to remove the `boost::system::error_code` argument to `resolve(…)`. The documentation says a successful call to resolve always has non-empty results
-
m-relay
<vtnerd:monero.social> sech1: The documentation stated that the result was non-empty if no errors. I’m not sure if no results found is considered an error though
-
sech1
tobtoht_ yeah, the crash I had was a null pointer dereference when I tried to debug it
-
m-relay
<vtnerd:monero.social> The .empty() check would explode in those Boost versions though
-
sech1
How does it return an error? Through an exception?
-
sech1
Then it should be wrapped in the try...catch block
-
m-relay
<vtnerd:monero.social> Yes, those sections are
-
m-relay
<vtnerd:monero.social> the only place I’m seeing no explicit `iterator == end_iterator` or `results.empty()` checks are in `abstract_tcp_server2.inl`
-
m-relay
<vtnerd:monero.social> and those are wrapped with catch blocks. We may want to add an explicit check since the documentation isn’t 100%, otoh this behavior was actually unchanged by 8400
-
m-relay
<ofrnxmr:xmr.mx> Bitcoin has a configurable option for the min fee that the node will relay. I dont think monero has a setting for this, but do we have a minimum? Or can custom wallets send 0 fee tx that will be relayed and confirmed?
-
plowsof
0 fee is rejected by node in monero-core
-
plowsof
custom node can accept + mine to block a 0fee
-
m-relay
<jeffro256:monero.social> There is a minimum fee per weight value calculated by the daemon as a function of previous blocks, and for a new transaction to pass relay rules, the tx's fee must be greater than that value multiplied by its weight
-
m-relay
<jeffro256:monero.social> It's only a part of relay rules, not consensus
-
m-relay
-
m-relay
<ofrnxmr:xmr.mx> Ty sir
-
m-relay
<ofrnxmr:xmr.mx> sirs*
-
m-relay
<syntheticbird:monero.social> OGs
-
m-relay
<syntheticbird:monero.social> who is Antonio Juarez ?
-
m-relay
<syntheticbird:monero.social> when did he disappear?
-
m-relay
<syntheticbird:monero.social> is he still alive?
-
m-relay
<syntheticbird:monero.social> cc selsta
-
selsta
afaik some made up name from bytecoin time
-
m-relay
<syntheticbird:monero.social> ouch, unlikely to find him again then
-
m-relay
<ofrnxmr:xmr.mx> ask zano
-
m-relay
<syntheticbird:monero.social> doedl?
-
m-relay
<ofrnxmr:xmr.mx> nah zoidbergn
-
m-relay
<syntheticbird:monero.social> is he part of zano?
-
m-relay
<syntheticbird:monero.social> funny
-
m-relay
<syntheticbird:monero.social> you made me laugh
-
m-relay
<syntheticbird:monero.social> good job
-
m-relay
<ofrnxmr:xmr.mx> Crypton zoidberg is guy who says he developed bytecoin
-
m-relay
<ofrnxmr:xmr.mx> I'm not joking
-
m-relay
<syntheticbird:monero.social> lmao this cannot be a coincidence
-
m-relay
<syntheticbird:monero.social> thx, i'll try to find him
-
m-relay
<syntheticbird:monero.social> I was on the verge of making a reddit post
-
m-relay
<ofrnxmr:xmr.mx> There was also a long post on bitcointalk about this
-
m-relay
<syntheticbird:monero.social> really?
-
m-relay
<syntheticbird:monero.social> really? (he responded)