00:26:16 sech1: can you try this build. release-v0.18 + boost 1.84: https://github.com/tobtoht/monero/actions/runs/13380438243 00:26:59 sure 00:27:05 F*CK wrong alt 01:23:03 Damn, and I removed some sketchy casting that was in existing code too. What's left should've been straightforward 03:30:05 -xmr-pr- x64x2 opened issue #9806: transaction build cannot add output 03:30:05 -xmr-pr- > https://github.com/monero-project/monero/issues/9806 06:18:53 <0​xfffc:monero.social> no crash here: https://github.com/tobtoht/monero/actions/runs/13380438243 06:50:59 0xfffc: can you also test this one to rule out a compiler bug: https://github.com/tobtoht/monero/actions/runs/13380562426 07:16:50 tobtoht https://github.com/tobtoht/monero/actions/runs/13380438243 doesn't crash for me 07:17:46 https://github.com/tobtoht/monero/actions/runs/13380562426 crashes 07:17:55 so it's probably a boost bug, not a compiler bug 07:34:55 or maybe it's still a compiler bug that's present in both compiler versions 07:40:13 sech1: did you check if the issue is also present in gitian on release-v0.18? it uses an older version gcc 07:44:29 <0​xfffc:monero.social> tobtoht: https://github.com/tobtoht/monero/actions/runs/13380562426 crashed 07:44:30 I'll restart the gitian build now 07:52:15 can you try release-v0.18 + boost 1.67: https://github.com/tobtoht/monero/actions/runs/13385369440 08:06:39 <0​xfffc:monero.social> tobtoht: https://github.com/tobtoht/monero/actions/runs/13385369440 no crash, syncing without issue 08:08:01 gitian build crashes 08:08:27 can you share logs? 08:08:50 It's just a silent crash, nothing in the logs even at level 2 08:09:19 https://github.com/tobtoht/monero/actions/runs/13385369440 crashed for me 08:41:51 sech1: release-v0.18 + revert 9800 sanity check: https://github.com/tobtoht/monero/actions/runs/13386066774 08:47:00 no crash so far (synced first 50k blocks 2 times) 08:47:51 3 times, no crash 08:47:59 ok, good 08:51:16 i have release-v0.18 gitian builds running in ci now 09:06:37 "gitian build crashes" <- oh, haven't had enough sleep. i interpreted that as gitian builds failing 09:08:20 So it's a combination of boost and some GCC versions that crashes (GCC 14.2.0 works fine with this boost version) 09:08:40 Either some bug in boost, or too complex code for older GCC versions (bug in GCC) 09:08:44 the msys2 build? it doesn't use boost 1.66 09:08:53 oh 09:09:06 What does it use? 09:09:18 1.87.0 09:11:39 so with crashes on three versions of gcc i think this is a boost bug 09:11:55 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 09:15:34 I took a quick glance at #9800 09:16:05 I has "const auto results = resolver.resolve(...); ... results.begin()->..." pattern in several places 09:16:13 without checking that results is not empty 09:16:16 not a safe approach 09:16:45 *It has 09:17:38 It does have "if(results.empty())" checks in a few other places 09:17:43 Very concerning 09:18:21 This is in contrib/epee/include/net/abstract_tcp_server2.inl 09:20:06 "m_endpoint = *resolver.resolve(udp::v4(), m_device_host, std::to_string(m_device_port)).begin();" 09:20:10 That's very optimistic :D 09:22:28 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. 09:23:10 master uses boost 1.84 09:23:34 that explains it 09:23:52 Boost is the culprit :D 09:24:55 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. 09:31:24 <0​xfffc:monero.social> boost is abomination! 09:31:40 <0​xfffc:monero.social> CMake used to be abomination. But it is better these days! 10:36:30 so... 10:36:50 does anyone have any idea why levin signature is categorized as "Bender's nightmare" ? 10:37:57 I tried to search but Futurama is a big series, hard to find which episode this is referring to 10:38:02 cc luigi1111 10:44:53 that's a good one 12:37:36 sech1: can you try release-v0.18 + boost 1.69: https://github.com/tobtoht/monero/actions/runs/13390257229 12:41:50 no crash so far (3 times x 50k first blocks) 12:42:04 ok great 12:42:10 I will test more 12:42:16 ty 12:42:26 Hmm idk Syntheticbird 12:42:47 2025-02-18 12:42:23.547 6248 INFO global src/daemon/main.cpp:309 Monero 'Fluorine Fermi' (v0.18.4.0-af84f7cc6) 12:42:52 just to confirm it's that commit 12:43:13 yep 12:55:20 "i thought i saw a 2" 12:56:20 What 12:57:17 https://github.com/monero-project/monero/issues/9806 is this issue complete AI hallucination? 13:01:09 luigi1111: can you block them from org ^? 13:01:18 they posted some incomprehensible image on a pr earlier, then deleted it. might be a bot? 13:01:38 yes seems to be a troll who opens nonsensical issues and PR 13:04:43 Can tob do that? I'm not in office 13:05:08 oh let me check 13:07:21 block user menu item doesn't appear for me 13:11:33 wow, first time I see such an elaborate attempt 13:11:55 "xmrrpcunsafe" is nowhere to be found in Monero/Monero GUI code, and it even mutates into "zrpcunsafe" on one line 13:15:05 -xmr-pr- tobtoht opened pull request #9807: depends: boost: update to 1.69.0 [0.18] 13:15:05 -xmr-pr- > https://github.com/monero-project/monero/pull/9807 13:20:00 sech1: here is a gitian build for that pr: https://github.com/tobtoht/monero/actions/runs/13390257256 13:30:34 no crash 13:30:43 perfect 13:31:36 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) 13:38:05 I think max connections might be intended behavior 13:38:58 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" 13:40:22 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 13:40:22 ah ok, so people shouldn't run into that problem in the wild. I'll update scripts to use that flag 13:42:47 vtnerd does this sound right? 13:44:27 I dont think there is any exceptions for localhost, so i'm surprised it ever worked before :/ 16:54:18 sech1: I recall verifying the presence of `.empty()` checks when using an ASIO resolver. Maybe I missed one 16:57:25 oops, definitely did not add checks in abstract_tcp_server2.inl 16:58:30 this should’ve been a problem previously though, it doesn’t look like i removed in existing checks (just copied missing checks behavior) 17:01:50 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) 17:02:20 I’m busy over the next two days with things, but might be able to sneak in a fix if someone deems it necessary 17:02:46 I’m a bit surprised we concluded it was Boost - do we even know why at this point? 17:13:11 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 17:14:46 Reverting #9800 fixes the crash, changing Boost version also fixes the crash. Changing compiler version doesn't fix the crash 17:15:34 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 17:25:36 vtnerd: there are a few suspicious fixes between boost asio 1.68 and 1.69, tho not sure if related 17:25:42 https://github.com/boostorg/asio/commit/ad8cc21d599f2f3622650896bff4fde3c7294caa 17:25:47 https://github.com/boostorg/asio/commit/b9add379a7a9628f2255564197b00a476313514e 17:26:36 there were no changes between boost asio 1.67 and 1.68 and 1.67 still had the crash 17:28:20 oh yikes! 17:29:41 yeah the code relies on `resolve.empty()` in a few places. 17:29:53 what terrible bug to sneak into ASIO 17:30:39 we could change from `.empty()` to a comparison against a default iterator in a few places 17:31:33 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 17:56:19 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 17:56:20 tobtoht_ yeah, the crash I had was a null pointer dereference when I tried to debug it 17:56:49 The .empty() check would explode in those Boost versions though 17:57:41 How does it return an error? Through an exception? 17:57:54 Then it should be wrapped in the try...catch block 17:58:42 Yes, those sections are 17:59:09 the only place I’m seeing no explicit `iterator == end_iterator` or `results.empty()` checks are in `abstract_tcp_server2.inl` 18:00:24 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 20:31:09 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? 20:33:50 0 fee is rejected by node in monero-core 20:34:12 custom node can accept + mine to block a 0fee 20:35:18 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 20:35:28 It's only a part of relay rules, not consensus 20:36:02 https://github.com/monero-project/monero/blob/97c0ce73c4f67d0effc68d35f6b9711ff131ffc5/src/cryptonote_core/blockchain.cpp#L3646 20:42:17 Ty sir 20:43:00 sirs* 22:58:30 OGs 22:58:35 who is Antonio Juarez ? 22:58:47 when did he disappear? 22:58:51 is he still alive? 22:59:30 cc selsta 23:01:36 afaik some made up name from bytecoin time 23:02:17 ouch, unlikely to find him again then 23:03:23 ask zano 23:03:48 doedl? 23:04:01 nah zoidbergn 23:04:03 is he part of zano? 23:04:24 funny 23:04:27 you made me laugh 23:04:38 good job 23:04:40 Crypton zoidberg is guy who says he developed bytecoin 23:04:56 I'm not joking 23:05:08 lmao this cannot be a coincidence 23:05:25 thx, i'll try to find him 23:05:38 I was on the verge of making a reddit post 23:13:04 There was also a long post on bitcointalk about this 23:13:24 really? 23:57:39 really? (he responded)