00:50:09 7821 + 7845 are stable and ready to go :) 09:14:33 "RPC failing for whatever reason" <- Noted down. 10:52:46 "RPC failing for whatever reason" <- Assuming this is the reason, this could be related to the UBs in destructors that I detected, since this bug deals with deallocation. 10:53:22 no, mooo said it, randomx is still busy so the rpc fails somehow 10:53:48 Ah. Just cleaned my glasses. 10:53:48 There might be other reasons for that RPC to fail though. 11:03:42 seems like the unbound version we ship with has a stack buffer overflow on monerod launch, it can be triggered with asan enabled 11:04:45 https://paste.debian.net/hidden/ef1d901b/ 11:10:11 #define VALGRIND in lookup3.c (IIRC). 11:12:14 (and there's a comment in there explaining why it's OK in practice if you're interested) 11:43:45 moneromooo: thanks, that might explain it 11:43:52 somehow with https://github.com/monero-project/monero/pull/7773 asan stops complaining 12:30:31 is there a simple way to run just functional_tests? 12:31:26 does ./functional_tests work? 12:33:16 it shows a help menu, but afaict none of these are to run the tests 12:34:05 or rather, when I pass in `./functional_tests --test_transactions_flow` I get daemon connection errors 12:35:09 If you mean the C++ one, it's obsolete. 12:35:37 If you mean the python one: functional_tests.py /usr/bin/python tests/functional_tests build/wherever/release all 12:46:32 Got it working with: `python3 tests/functional_tests/functional_tests_rpc.py /usr/local/bin/python3.9 tests/functional_tests build/Darwin/multisig_addr_v2/release all` 12:56:55 s/all/multisig/ might work for you also 12:57:37 Might also want to set MONERO_POW_FASTER there. 13:05:05 how can I build the tests without running them? Right now I call `make -j3 release-test` but it automatically runs the tests after building. 13:06:25 make -C build/wherever testsyouwant 13:06:39 ie, unit_tests, core_tests etc 13:06:47 make help shows targets IIRC 13:08:42 UkoeHB: just `make` builds all the tests without running them 13:09:05 or if you want to build a specific test target do it like mooo explained 13:35:50 (and for the python functional tests, you need daemon and wallet_rpc_server) 14:43:46 thanks this seems to be working better 15:54:04 How can I use my debugger to trace through a functional_test? 15:54:49 in tests/functional_tests/functional_tests_rpc.py, replace "townforged" with "xterm -e ..." 15:55:07 xterm -e gdb etcetc 15:56:30 townforged? 15:56:47 sorry, monerod 16:08:37 that doesn't seem right... 16:09:48 I did that a while ago. Worked fine, though very xterm spammy. 16:09:50 replace xterm with whatever shell you have on mac 16:12:05 are you talking about `monerod_base`? 16:14:03 * moneromooo goes look 16:14:12 `monerod_base = [builddir + "/bin/monerod",` yes, it was about this place 16:14:55 monerod_base = [builddir + "/bin/..." -> monerod_base = ["xterm", "-e", "gdb", builddir + "/bin/...", "--args", ... 16:14:59 ` outputs.append(open(FUNCTIONAL_TESTS_DIRECTORY + '/monerod'` or this one 16:15:08 * moneromooo not super sure about --args etc, might take a bit of tinkgering 16:17:58 well... my problem is the multisig rework is green on everything except functional tests, where wallet `refresh` fails to find outputs if the address is not N-of-N 16:20:05 You can bump log level in that same file. Logs are in build/wherever/functional-tests/monerod*/ 16:20:29 "https://github.com/UkoeHB/monero/commits/multisig_addr_v2" is it that branch with multisig fix ? 16:20:42 Or build/wherever/tests/fnuctional_tests/*.log, for the wallet too. 16:22:22 yes that branch 16:25:06 what's the highest log level? 16:25:21 `*:TRACE` 16:26:17 `"--log-level", "*:TRACE"` 16:27:30 It'll spam lots of network though. Typically 2 (DEBUG) is enough. 2,net*:WARNING is a good rough first start. 16:29:08 ah got it to change log level thanks 16:37:01 "AssertionError: {'error': {'code': -1, 'message': 'Error calling import_multisig: Signer is not a member of this multisig wallet'}, 'id': '0', 'jsonrpc': '2.0'}" this error ? 16:39:27 No I think I fixed that one 16:39:34 Or at least, I get past it on local 16:43:21 I pushed latest commits 16:43:51 `TRACE` does not cause any extra messages to pop up during wallet refresh 16:46:40 Might not be any traces there. Most are in network and blockchain code. 16:50:12 UkoeHB: do it the following way 16:52:02 `python3 tests/functional_tests/functional_tests_rpc.py /usr/local/bin/ipdb tests/functional_tests build/Darwin/multisig_addr_v2/release all` 16:52:29 `pip install ipdb` or any equivalent for your environment 16:53:03 Once `multisig.py` fails somewhere , you can attach your debugger to any active monerod/wallet-rpc and repeat failed command from ipdb 16:54:01 it relies on assumption that you know how to use ipdb :) 16:54:37 I will eat lunch and `bash` my head into it 16:54:37 "p requests.post(self.url + path, data=json.dumps(inputs), headers={'content-type': 'application/json'}).json()" e.g. I executed this to repeta the above failure 16:56:52 And this way you don't need to change anything : increase logging, replace monerod, ...; just use ipdb to catch failure within python code 17:06:35 `--> 229 assert res.n_outputs == expected_outputs` failed here 17:07:13 `ipdb> p self.wallet[i].import_multisig_info(info)` it returns `{'n_outputs': 0}` for all i in [0,2] 17:07:30 Yeah I saw that failure. In the wallet log when `refresh` is called, it fails to find any outputs. 17:07:54 `Refresh done, blocks received: 87, balance (all accounts): 0.000000000000, ...` 17:08:05 now attach gdb to relevant process and repeat query fro mipdb 17:25:36 "https://github.com/UkoeHB/monero/blame/b5f4e6f4b6ca08af2b5473ce387572ab0c383dcf/src/wallet/wallet2.cpp#L13276" this `body` is empty, and `data.size()` == `headerlen + 1` 17:25:51 in result decoding doesn't add anything into `i` 17:26:04 so pretty straightforward debugging :) 17:31:49 I think that is downstream of the problem. It is line 223 in `multisig.py` that seems to fail first. 17:36:18 likely since m_transfers are empty on both wallets, and on_export_multisig() didn't encode anything 17:39:10 That reminds me... there was some obscure code in the old implementation that I didn't understand: https://github.com/UkoeHB/monero/blob/b5f4e6f4b6ca08af2b5473ce387572ab0c383dcf/src/wallet/wallet2.cpp#L5118 17:39:15 Maybe I need to uncomment this? 17:40:53 It's originally from here: https://github.com/monero-project/monero/blob/82149bfe441e56d5f9d72a13ffa25ce1df6d8391/src/wallet/wallet2.cpp#L5170 17:41:31 I wanted to help with debugging :), moneromooo should knows better code in src/wallet 17:43:06 "... it fails to find any outputs." seems right 17:45:18 I suspect this line is failing: https://github.com/monero-project/monero/blob/a9cb4c082f1a815076674b543d93159a2137540e/src/cryptonote_basic/cryptonote_format_utils.cpp#L897 17:46:14 because I am not setting the wallet's subaddress deck properly when a multisig account is created 17:51:18 Well, "Signer is not a member of this multisig wallet" hints that some message was not accompanied with the right id, which are hashes of... secret keys IIRC ? for participants. 17:51:43 Btw there seems to be a bug in logging. Log files look like this: `[0m[0;35m2021-08-18 16:39:36.228 T [0;35mContent-Length: 77` 17:51:47 So maybe turning the original wallet to a multisig wallet caused that hash to change. 17:51:54 moneromooo that was a different bug that I fixed 17:52:28 Are you sure you're interpreting ANSI sequences ? eg, -R for less. 17:52:59 If on windows, you get to read through it ^_^ 17:56:27 Nope not sure 17:58:34 multisig wallet doesn't recognize it's output, but does `self.mine(...)` is mining to s subaddresses ? 17:59:40 it's mining to the main address 18:01:30 It should be possible to write local test with multisig wallet to check whether it can recognize output from block 18:08:38 whadayaknow.... uncommenting that code fixed it 😭 18:09:02 `Done, 1/1 tests passed` 18:10:26 wfaressuissia: I really appreciate your attempts to help me :) 18:10:44 I probably needed to finish my due diligence before coming to chat. 19:39:12 this is a first for me. from the cli: Error: amount is wrong: 0.00001 19:40:14 Inflation... 19:40:51 why is it thinking the amount is wrong? 19:41:12 Possibly funky chars in there. Like nbsp, lookalikes... 19:41:26 it is >0. na, typed it in myself 19:42:06 I don't expect your wallet is set to piconero/nanonero ? 19:42:28 * cornfeedhobo checks 19:44:02 not sure https://gist.github.com/cornfeedhobo/a844eb1b6daab9ac9dc265bfdcf8fbe9 19:45:04 It's good. 19:45:20 "Error: amount is wrong: 0.00001" is a cut/pasted full message ? 19:45:57 Error: amount is wrong: 0.00001 REDACTED, expected number from 0 to 18446744.073709551615 19:46:30 Ah, that makes more sense. The redacted is the number. 19:46:45 fail_msg_writer() << tr("amount is wrong: ") << local_args[i] << ' ' << local_args[i + 1] << 19:46:55 i+1 is parsed as number. Confusing I guess. 19:47:15 The first one is meant to be an address, from reading the code. 19:47:18 dear lord. i see it. 19:47:19 face desk 19:47:22 gracias 19:50:02 moneromooo: while you're looking, default ring size of 0 results in the wallet picking it's current default, right? 19:50:15 Probably. 19:50:26 by "current default" i mean the one they keep increasing 19:50:31 But maybe not, since it's valid for pre rct rings. 19:50:57 Oh wait. Mixin was 0, not ring size... 19:51:01 So, just don't do it. 19:53:00 i thought that was the case, because the wallet prints the block heights of mixins 22:11:33 could I get a review on https://github.com/monero-project/monero/pull/7823 - thought I'd ask since it's been a lil bit 22:19:18 I added a couple comments. 22:37:21 awesome, thank you 23:22:26 alright, those comments should be addressed now, if everything else looks good I can squash the commits so it's ready to merge