-
jberman[m]
7821 + 7845 are stable and ready to go :)
-
mj-xmr[m]
<selsta> "RPC failing for whatever reason" <- Noted down.
-
mj-xmr[m]
<selsta> "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.
-
selsta
no, mooo said it, randomx is still busy so the rpc fails somehow
-
mj-xmr[m]
Ah. Just cleaned my glasses.
-
moneromooo
There might be other reasons for that RPC to fail though.
-
selsta
seems like the unbound version we ship with has a stack buffer overflow on monerod launch, it can be triggered with asan enabled
-
selsta
-
moneromooo
#define VALGRIND in lookup3.c (IIRC).
-
moneromooo
(and there's a comment in there explaining why it's OK in practice if you're interested)
-
selsta
moneromooo: thanks, that might explain it
-
selsta
somehow with
monero-project/monero #7773 asan stops complaining
-
UkoeHB
is there a simple way to run just functional_tests?
-
selsta
does ./functional_tests work?
-
UkoeHB
it shows a help menu, but afaict none of these are to run the tests
-
UkoeHB
or rather, when I pass in `./functional_tests --test_transactions_flow` I get daemon connection errors
-
moneromooo
If you mean the C++ one, it's obsolete.
-
moneromooo
If you mean the python one: functional_tests.py /usr/bin/python tests/functional_tests build/wherever/release all
-
UkoeHB
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`
-
moneromooo
s/all/multisig/ might work for you also
-
moneromooo
Might also want to set MONERO_POW_FASTER there.
-
UkoeHB
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.
-
moneromooo
make -C build/wherever testsyouwant
-
moneromooo
ie, unit_tests, core_tests etc
-
moneromooo
make help shows targets IIRC
-
selsta
UkoeHB: just `make` builds all the tests without running them
-
selsta
or if you want to build a specific test target do it like mooo explained
-
moneromooo
(and for the python functional tests, you need daemon and wallet_rpc_server)
-
UkoeHB
thanks this seems to be working better
-
UkoeHB
How can I use my debugger to trace through a functional_test?
-
moneromooo
in tests/functional_tests/functional_tests_rpc.py, replace "townforged" with "xterm -e ..."
-
moneromooo
xterm -e gdb etcetc
-
UkoeHB
townforged?
-
moneromooo
sorry, monerod
-
UkoeHB
that doesn't seem right...
-
moneromooo
I did that a while ago. Worked fine, though very xterm spammy.
-
wfaressuissia
replace xterm with whatever shell you have on mac
-
UkoeHB
are you talking about `monerod_base`?
-
» moneromooo goes look
-
wfaressuissia
`monerod_base = [builddir + "/bin/monerod",` yes, it was about this place
-
moneromooo
monerod_base = [builddir + "/bin/..." -> monerod_base = ["xterm", "-e", "gdb", builddir + "/bin/...", "--args", ...
-
wfaressuissia
` outputs.append(open(FUNCTIONAL_TESTS_DIRECTORY + '/monerod'` or this one
-
» moneromooo not super sure about --args etc, might take a bit of tinkgering
-
UkoeHB
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
-
moneromooo
You can bump log level in that same file. Logs are in build/wherever/functional-tests/monerod*/
-
wfaressuissia
-
moneromooo
Or build/wherever/tests/fnuctional_tests/*.log, for the wallet too.
-
UkoeHB
yes that branch
-
UkoeHB
what's the highest log level?
-
wfaressuissia
`*:TRACE`
-
wfaressuissia
`"--log-level", "*:TRACE"`
-
moneromooo
It'll spam lots of network though. Typically 2 (DEBUG) is enough. 2,net*:WARNING is a good rough first start.
-
UkoeHB
ah got it to change log level thanks
-
wfaressuissia
"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 ?
-
UkoeHB
No I think I fixed that one
-
UkoeHB
Or at least, I get past it on local
-
UkoeHB
I pushed latest commits
-
UkoeHB
`TRACE` does not cause any extra messages to pop up during wallet refresh
-
moneromooo
Might not be any traces there. Most are in network and blockchain code.
-
wfaressuissia
UkoeHB: do it the following way
-
wfaressuissia
`python3 tests/functional_tests/functional_tests_rpc.py /usr/local/bin/ipdb tests/functional_tests build/Darwin/multisig_addr_v2/release all`
-
wfaressuissia
`pip install ipdb` or any equivalent for your environment
-
wfaressuissia
Once `multisig.py` fails somewhere , you can attach your debugger to any active monerod/wallet-rpc and repeat failed command from ipdb
-
wfaressuissia
it relies on assumption that you know how to use ipdb :)
-
UkoeHB
I will eat lunch and `bash` my head into it
-
wfaressuissia
"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
-
wfaressuissia
And this way you don't need to change anything : increase logging, replace monerod, ...; just use ipdb to catch failure within python code
-
wfaressuissia
`--> 229 assert res.n_outputs == expected_outputs` failed here
-
wfaressuissia
`ipdb> p self.wallet[i].import_multisig_info(info)` it returns `{'n_outputs': 0}` for all i in [0,2]
-
UkoeHB
Yeah I saw that failure. In the wallet log when `refresh` is called, it fails to find any outputs.
-
UkoeHB
`Refresh done, blocks received: 87, balance (all accounts): 0.000000000000, ...`
-
wfaressuissia
now attach gdb to relevant process and repeat query fro mipdb
-
wfaressuissia
-
wfaressuissia
in result decoding doesn't add anything into `i`
-
wfaressuissia
so pretty straightforward debugging :)
-
UkoeHB
I think that is downstream of the problem. It is line 223 in `multisig.py` that seems to fail first.
-
wfaressuissia
likely since m_transfers are empty on both wallets, and on_export_multisig() didn't encode anything
-
UkoeHB
That reminds me... there was some obscure code in the old implementation that I didn't understand:
github.com/UkoeHB/monero/blob/b5f4e…383dcf/src/wallet/wallet2.cpp#L5118
-
UkoeHB
Maybe I need to uncomment this?
-
UkoeHB
-
wfaressuissia
I wanted to help with debugging :), moneromooo should knows better code in src/wallet
-
wfaressuissia
"... it fails to find any outputs." seems right
-
UkoeHB
-
UkoeHB
because I am not setting the wallet's subaddress deck properly when a multisig account is created
-
moneromooo
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.
-
UkoeHB
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`
-
moneromooo
So maybe turning the original wallet to a multisig wallet caused that hash to change.
-
UkoeHB
moneromooo that was a different bug that I fixed
-
moneromooo
Are you sure you're interpreting ANSI sequences ? eg, -R for less.
-
moneromooo
If on windows, you get to read through it ^_^
-
UkoeHB
Nope not sure
-
wfaressuissia
multisig wallet doesn't recognize it's output, but does `self.mine(...)` is mining to s subaddresses ?
-
UkoeHB
it's mining to the main address
-
wfaressuissia
It should be possible to write local test with multisig wallet to check whether it can recognize output from block
-
UkoeHB
whadayaknow.... uncommenting that code fixed it 😭
-
UkoeHB
`Done, 1/1 tests passed`
-
UkoeHB
wfaressuissia: I really appreciate your attempts to help me :)
-
UkoeHB
I probably needed to finish my due diligence before coming to chat.
-
cornfeedhobo
this is a first for me. from the cli: Error: amount is wrong: 0.00001
-
moneromooo
Inflation...
-
cornfeedhobo
why is it thinking the amount is wrong?
-
moneromooo
Possibly funky chars in there. Like nbsp, lookalikes...
-
cornfeedhobo
it is >0. na, typed it in myself
-
moneromooo
I don't expect your wallet is set to piconero/nanonero ?
-
» cornfeedhobo checks
-
cornfeedhobo
-
moneromooo
It's good.
-
moneromooo
"Error: amount is wrong: 0.00001" is a cut/pasted full message ?
-
cornfeedhobo
Error: amount is wrong: 0.00001 REDACTED, expected number from 0 to 18446744.073709551615
-
moneromooo
Ah, that makes more sense. The redacted is the number.
-
moneromooo
fail_msg_writer() << tr("amount is wrong: ") << local_args[i] << ' ' << local_args[i + 1] <<
-
moneromooo
i+1 is parsed as number. Confusing I guess.
-
moneromooo
The first one is meant to be an address, from reading the code.
-
cornfeedhobo
dear lord. i see it.
-
cornfeedhobo
face desk
-
cornfeedhobo
gracias
-
cornfeedhobo
moneromooo: while you're looking, default ring size of 0 results in the wallet picking it's current default, right?
-
moneromooo
Probably.
-
cornfeedhobo
by "current default" i mean the one they keep increasing
-
moneromooo
But maybe not, since it's valid for pre rct rings.
-
moneromooo
Oh wait. Mixin was 0, not ring size...
-
moneromooo
So, just don't do it.
-
cornfeedhobo
i thought that was the case, because the wallet prints the block heights of mixins
-
DangrOnTheRangr
could I get a review on
monero-project/monero #7823 - thought I'd ask since it's been a lil bit
-
moneromooo
I added a couple comments.
-
DangrOnTheRangr
awesome, thank you
-
DangrOnTheRangr
alright, those comments should be addressed now, if everything else looks good I can squash the commits so it's ready to merge