-
philip_foss[m]
The source is building for the first time now and I'm sure I'll need to watch some educational videos for a while before I know what yall are talking about most of the time.
-
philip_foss[m]
Well that built faster than most other projects I've worked on, very nice.
-
MeowingCat
im implementing Base58 of Monero
-
MeowingCat
i understand padding to 11 characters
-
MeowingCat
what is happening to last 8 bytes???
-
jeffro256[m]
@sech1 Do you know if the leak fixed in
tevador/RandomX #246 was actually happening in monero applications ?
-
sech1
jeffro256[m] it's happening every time RandomX can't allocate memory using huge pages (which is all machines that didn't set up huge pages). But in case of Monero, it's a one time leak of the small size.
-
MeowingCat
why are Monero integers big endian???
-
sech1
Varint? They're not big endian, they're varint
-
sech1
and they're kind of little endian
-
sech1
if you found big endian somewhere in Monero's codebase, it's most likely network byte order (=big endian)
-
MeowingCat
C#'s BigInteger is working with little endian on x86
-
MeowingCat
when i parse private key from hex
-
sech1
I don't see how it's connected to your previous question
-
MeowingCat
and derive Monero keys
-
MeowingCat
they are being wrong if i don't reverse the private key
-
sech1
These are not numbers, they're ed25519 group elements
-
MeowingCat
oh damn group elements
-
sech1
of course the encoding could've been little endian, but the library Monero uses has big endian encoding for them
-
MeowingCat
ge_p3_tobytes()?
-
luigi1112
private keys are not group elements
-
luigi1112
they are little endian integers
-
sech1
how are they not group elements if they're used directly in all the Monero's cryptography?
-
luigi1112
they are members of the group of integers 0-l
-
luigi1112
but def not ed25519 group elements
-
Guest1
hi
-
jeffro256[m]
sech1 public keys are group elements because they're points (multiplied against the generator). Private keys are just the big random number that gets multiplied against the generator
-
jeffro256[m]
So you're right it wouldn't be encoded like a normal integer, but I don't think they're group elements
-
jeffro256[m]
But anyways, nice find on RandomX, cheers !
-
spackle_xmr[m]
Can anyone point me to a code implementation of the compressed point decoding process from Zero to Monero section 2.4.2? I've written a version of it whose output always matches another decoding function, but I tweaked it in some weird ways and I'd like to check my work. Anything in python or c/c++ would be especially helpful.
-
moneromooo
I think you want ge_frombytes_vartime
-
wernervasquez[m]
-
luigi1111
jeffro256[m]: it is encoded like a normal integer, just backwards
-
luigi1111
Bytewise
-
UkoeHB
wernervasquez[m]: he’s looking for the opposite direction (decoding)
-
spackle_xmr[m]
Thanks all, ge_frombytes_vartime looks like what I'm after. I'll poke around crypto-ops a bit and try to get familiar with things.
-
wernervasquez[m]
UkoeHB spackle_xmr : I linked to the wrong thing entirely. Here is what I use for encode and decode of points
github.com/FiloSottile/edwards25519…0424921c66e85d/edwards25519.go#L123
-
wernervasquez[m]
-
spackle_xmr[m]
> <@wernervasquez:matrix.org> UkoeHB spackle_xmr : I linked to the wrong thing entirely. Here is what I use for encode and decode of points
github.com/FiloSottile/edwards25519…0424921c66e85d/edwards25519.go#L123
-
spackle_xmr[m]
>
-
spackle_xmr[m]
-
spackle_xmr[m]
Thanks, I'll give that a look as well.
-
spackle_xmr[m]
Hah, just saw that the code reference is marked in the page margin of ZtM. I'll remember to keep my eyes open in the future.
-
ooo123ooo1234567
<sech1> "#7760 needs serious and thorough..." <- Did you try to run tests ?
-
ooo123ooo1234567
<sech1> "see my comments there" <- "
monero-project/monero #7760#discussion_r88455935", subjective comment about naming
-
ooo123ooo1234567
"
monero-project/monero #7760#discussion_r884563318", this is structure for internal use, it isn't class; subjective comment about naming
-
ooo123ooo1234567
-
ooo123ooo1234567
"
monero-project/monero #7760#discussion_r884568328" comment about performance drop due to location of static objects within functions; is it measurable drop ? old code doing the same, so it's at least not worse than before
-
ooo123ooo1234567
"
monero-project/monero #7760#discussion_r884573083" comment about unimportant performance drop, old code is doing the same
-
ooo123ooo1234567
-
ooo123ooo1234567
-
ooo123ooo1234567
-
ooo123ooo1234567
-
ooo123ooo1234567
"
monero-project/monero #7760#discussion_r884590240" subjective comment about mixture of !/&& and not/and
-
ooo123ooo1234567
-
sech1
prove that it's only ever called from one thread at a time
-
ooo123ooo1234567
"
monero-project/monero #7760#discussion_r884595212" in the worst case that std::random_device will fail to call rdseed/rdrand and will throw c++ exception, it's unimportant note about performance; old code is doing the same, any questions about this stupid addition to reviewers of this PR
monero-project/monero #5893
-
sech1
Okay, I see you don't want to cooperate
-
ooo123ooo1234567
-
sech1
you missed this std::random_device issue even though you were rewriting the whole file
-
sech1
so much for the "perfect" daemon
-
sech1
I will not approve this PR until you fix it
-
ooo123ooo1234567
sech1: Did you reply to all github comments or not yet ?
-
ooo123ooo1234567
sry, Did I reply to all github comments or not yet ?
-
sech1
don't reply, fix the code
-
ooo123ooo1234567
sech1: confirm that I've replied to all comments and we can discuss deeper all issues, starting from the most important to less important
-
sech1
I don't have time right now
-
selsta
This random engine change was introduced as a security fix so there should be a separate discussion about removing it again.
-
ooo123ooo1234567
sech1: yes, it's; every place you mentioned is called only from entry point with acquired state.lock
-
sech1
I didn't do the full review yet. I literally spent less than an hour to just get familiar with the code
-
ooo123ooo1234567
sech1: I want, but you're not right in everything; I didn't look into github yesterday, only opened it now
-
sech1
so no, I didn't "try to read the code"
-
ooo123ooo1234567
sech1: vtnerd did the same and failed in all cases
-
ooo123ooo1234567
sech1: Do you want me to fix code style changes before you will look deeper or what ?
-
sech1
if you call your PR "perfect" and at the same time leave unoptimal code that I found, you're lying
-
sech1
fix it or I won't approve it
-
sech1
I haven't started the full proper review yet
-
sech1
because it will take many hours
-
ooo123ooo1234567
sech1: Call at least 1 place where that code is worse than old one ?
-
ooo123ooo1234567
Some places were not touched, since they are not important
-
ooo123ooo1234567
but all important problems are solved there
-
ooo123ooo1234567
sech1: It's easy to fix all code style changes, but will you look deeper or not ?
-
sech1
github diff shows that everything was touched
-
sech1
I said I don't have time right now
-
sech1
I'll start this week
-
ooo123ooo1234567
<sech1> "because this is unacceptable" <- It's unacceptable for reviewer to write shallow subjective comments about code style, without even reading code, running tests
-
sech1
Instead of starting personal attacks, fix the code
-
sech1
Code style is important
-
sech1
I don't want to see the zoo in the code
-
ooo123ooo1234567
sech1: any link to code style that you respect ?
-
ooo123ooo1234567
I don't want to change code style at preference of every reviewer
-
sech1
Change to what is similar to the existing Monero code
-
sech1
Not what I respect or prefer!
-
ooo123ooo1234567
especially incompetent that only write comments about code style
-
sech1
As I said, if you're too stubborn to cooperate, I will not aprove it
-
ooo123ooo1234567
sech1: Can you paste link to reference code style ?
-
sech1
So you're calling me incompetent now?
-
ooo123ooo1234567
-
sech1
Then who missed this std::random_device glaring issue?
-
ooo123ooo1234567
sech1: No, that's about previous reviews
-
sech1
Which I found after quick look
-
ooo123ooo1234567
not from you
-
ooo123ooo1234567
sech1: I didn't miss, it. I even wrapped that random_device into separate random_delay function in order to remove it completely
-
ooo123ooo1234567
"
monero-project/monero #8365" this PR is placebo, not needed
-
ooo123ooo1234567
sech1: That's the problem: every reviewer pick something not important, but don't read code
-
ooo123ooo1234567
Entry point is tests, there are at least 3 deep problems
-
sech1
for the 100th time: I didn't start the review yet!
-
sech1
I just looked at the code to see if it's worth to spend more time. Found one serious issue and two performance issue which you dismissed, yet called the code "perfect"
-
ooo123ooo1234567
<sech1> "because this is unacceptable" <- you've written conclusion without reading code, how does it work ?
-
ooo123ooo1234567
is it acceptable ?
-
sech1
I read the code of random_delay function
-
sech1
and called it unacceptable
-
ooo123ooo1234567
sech1: "one serious issue" which one ?
-
sech1
random_delay
-
sech1
you saw it and didn't fix it
-
sech1
while rewriting the whole code
-
sech1
so fix it
-
sech1
or we don't have anything to talk about
-
sech1
I actually stopped looking at the code when I found it
-
ooo123ooo1234567
sech1: I've leaved it as is, it's not worse than in old code; And this code fixes real correctness issues, unlike unimportant performance issues, you're talking here
-
sech1
because I'm not sure in overall quality of your PR now
-
ooo123ooo1234567
sech1: too early then
-
ooo123ooo1234567
sech1: I'll change random_delay and performance issues, without code style changes, ok?
-
ooo123ooo1234567
is it enough ?
-
ooo123ooo1234567
I'm sure you will spend much more time on code reading, than this shallow comments
-
sech1
enough for me to pull the code, compile it and run tests. And then run it under debugger to see how it works live
-
ooo123ooo1234567
That's why it isn't important to do any polishing
-
sech1
polishing is important
-
sech1
or the next guy who looks at it will be confused
-
sech1
and code style is important too
-
sech1
have you ever worked in a big team?
-
ooo123ooo1234567
sech1: That PR was written almost 1 year ago and nobody reviewed it, And now when jeffro256 added placebo PRs which introduced merge conflicts, someone is reviewing it
-
sech1
I'm reviewing it voluntarily
-
OCREAT
ooo123ooo1234567: we're not talking about anything subjective. Have you ever learnt how to code and how to contribute to a project?
-
sech1
And I can just walk away and let it rot if you keep begin so stubborn
-
sech1
*being
-
ooo123ooo1234567
sech1: link to code style so that it isn't preference of every reviewer
-
sech1
I can link you to my comment abount naming
-
sech1
which is not my preference, rather what is used in other parts of Monero code
-
ooo123ooo1234567
sech1: That's also a problem, there are many paid incompetent developers, but it's you who is reviewing it
-
OCREAT
who ever writes && => and, || => or and then mix these two styles?!?! unbelievable. Sech1 has already suggested you how to fix your code.
-
ooo123ooo1234567
sech1: Monero code is written differently in different places, there is no code style; this code style is ok for you
google.github.io/styleguide/cppguide.html ?
-
sech1
So you're adding one more place where it's written in N+1-th code style. Awesome (not)
-
sech1
find the most common code style that's already being used in most important files, and use it!
-
sech1
there's no step-by-step guide I can link you to
-
ooo123ooo1234567
sech1: I'm about non subjective doc rather than step-by-step guide
-
OCREAT
ooo123ooo1234567: I'm trying to figure out your patch. Is it all by yourself?
-
ooo123ooo1234567
OCREAT: yes
-
sech1
Google C++ Style Guide is not ok
-
sech1
doesn't match what Monero code uses
-
OCREAT
ooo123ooo1234567: okay, because it does not seem so. You can't even figure out what a writing style is, pretty useless to argument against Monero code style.
-
ooo123ooo1234567
<sech1> "And I can just walk away and let..." <- complaining about code style without running tests, is it being stubborn or not ?
-
Siren[m]
sech1: I suggest documenting the monero code style
-
ooo123ooo1234567
OCREAT: scammer, is it you ?
-
moneromooo
There is no single monero code style. Please try to follow the style of whatever you're modifying. For new code, try something similar/sensible.
-
OCREAT
pretty boring argument, c'mon you can do better ooo123ooo, but it's not the right place to talk over
-
ooo123ooo1234567
Siren[m]: It's useless goal, it's better to pick new one and follow it during all new PRs
-
sech1
no you don't
-
sech1
use existing code style
-
sech1
mooo gave a good suggestion
-
Siren[m]
ooo123ooo1234567: If you're confused about it, perhaps there's use for it
-
UkoeHB
I hope we can all strive to improve on the existing code style(s)/non-style...
-
selsta
according to
github.com/monero-project/monero/blob/master/docs/CONTRIBUTING.md there should be a documented code style, but not sure if this was overlooked
-
ooo123ooo1234567
Siren[m]: Find at least 1 existing code style which is defined in all cases, link
-
rbrunner
Well, that non-style has served pretty well for many years already
-
ooo123ooo1234567
Siren[m]: You're arguing about the most shallow / unimportant thing, instead of reading code; facepalm
-
rbrunner
What we discuss here right now is definitely not "unimportant" IMO
-
rbrunner
And not facepalm-worthy
-
plowsof[m]
he said he hasn't started reviewing it yet. would you rather hear the first impressions now or in a week?
-
moneromooo
I'm not looking forward to petty formatting bullshit. As long as people are sensible and fairly consistent, it should be enough. Strict submission to rigid rules is in noone's interest except those who get off on punctilliousness.
-
Siren[m]
ooo123ooo1234567: You sound like you don't care about your code quality at all and you're trying to get your code merged just so it is merged
-
UkoeHB
Siren[m]: ding ding we have a winner
-
rbrunner
Winner in what regard?
-
UkoeHB
Accuracy award?
-
OCREAT
Siren[m]: wondering if he's included any 0day on their code
-
rbrunner
:)
-
ooo123ooo1234567
Siren[m]: The hardest part is write correct code and check it's correctness. Code style is easy to change, can be done even before merging.
-
OCREAT
its*
-
OCREAT
c'mon, you don't even speak english, whoever is this?
-
ofrnxmr[m]
Siren[m]: I think ooo is willing to change the code style but doesnt want to waste time of style if there are other issues
-
ooo123ooo1234567
It looks like I'm talking with linguists rather than programmers here
-
ooo123ooo1234567
OCREAT: linguist ?
-
UkoeHB
Seems like style adds a lot of delay (eg the serialization PR)
-
ooo123ooo1234567
I'm intentionally write code in that style in to emphasize how incompetent people
-
ooo123ooo1234567
vtnerd failed in all cases
-
OCREAT
It LoOkS lIkE i'm TaLkInG wItH lInGuIsTs RaThEr ThAn PrOgRaMmErS hErE
-
sech1
I can cope with different code style, for now, but you need to fix other issues (random_delay and host_count functions)
-
ooo123ooo1234567
But I can change code style easily, others can change code style many times, but still write incorrect code
-
sech1
you clearly didn't work in a team
-
ofrnxmr[m]
OCREAT: Can you stop?? stay on topic
-
sech1
correct code can be correct all the way you want, but if no one understands it or can read it, it's unmaintainable
-
sech1
and it will be scrapped
-
ooo123ooo1234567
OCREAT: mj-xmr, use your real account
-
Siren[m]
ooo123ooo1234567: I'm not about the style alone (although imo not adopting a style standard makes the code harder to read), reading this whole convo gives me that idea
-
ooo123ooo1234567
sech1: I'm sure it isn't much different from your p2pool code
-
sech1
not much
-
mj-xmr[m]
> <@ooo123ooo1234567[m]:libera.chat> > <@OCREAT:libera.chat> It LoOkS lIkE i'm TaLkInG wItH lInGuIsTs RaThEr ThAn PrOgRaMmErS hErE
-
mj-xmr[m]
>
-
mj-xmr[m]
> mj-xmr, use your real account
-
mj-xmr[m]
Hello. Thanks for dragging me to another beef.
-
mj-xmr[m]
But I'm already fed up with your shit.
-
sech1
but renaming std::string to string_t, why?
-
sech1
just for the sake of renaming?
-
sech1
like no other programmer knows what is std::string?
-
rbrunner
That's a hell of an idea, yeah
-
mj-xmr[m]
Please don't ping me ooo123ooo1234567[m]
-
mj-xmr[m]
I don't talk with idiots/
-
OCREAT
mj-xmr[m]: you can /ignore people
-
mj-xmr[m]
Oh how many times I already did this...
-
mj-xmr[m]
This parasite goes around every blocks and bans
-
mj-xmr[m]
He makes this whole space a dirty toilet so full of him.
-
ooo123ooo1234567
sech1: I'm sure that anyone who spent time on verification of that code (not as linguist) wouldn't even complain about code style. It was easier to write with renames, just it.
-
UkoeHB
mj-xmr[m]: pls just block and move on, we gotta stay at least kind of on topic
-
ooo123ooo1234567
sech1: No, I don't care about code style. It's easy. Give me guide, i'll change whole code according to it.
-
mj-xmr[m]
UkoeHB: Does it mean he won't ping me again? No.
-
mj-xmr[m]
But here we go.
-
ooo123ooo1234567
sech1: In current environment I would say nobody understands even code written with some code style, check any code from vtnerd.
-
sech1
I can't give you the guide. Use common sense if you have it. mooo told you already "Please try to follow the style of whatever you're modifying."
-
OCREAT
-
ofrnxmr[m]
ooo123ooo1234567: Traslation: no problem sech, I will.
-
ooo123ooo1234567
<sech1> "I can cope with different code..." <- ok, will do these changes + merge conflicts
-
mj-xmr[m]
> <@ofrnxmr[m]:libera.chat> > <@ooo123ooo1234567:matrix.org> No, I don't care about code style. It's easy. Give me guide, i'll change whole code according to it.
-
mj-xmr[m]
>
-
mj-xmr[m]
> Traslation: no problem sech, I will.
-
mj-xmr[m]
This is another sock puppet, just to let you know.
-
mj-xmr[m]
also w is.
-
OCREAT
perfect-daemon looks like "bad-coded daemon" :/ \: lol
-
mj-xmr[m]
but I think you figured it out by now.
-
ooo123ooo1234567
> <@mj-xmr[m]:libera.chat> > <@ofrnxmr[m]:libera.chat> > <@ooo123ooo1234567:matrix.org> No, I don't care about code style. It's easy. Give me guide, i'll change whole code according to it.... (full message at
libera.ems.host/_matrix/media/r0/do…14041d9be400b981e58bd99da3bb403a2fa)
-
mj-xmr[m]
I meant `w`
-
mj-xmr[m]
OCREAT: Oh yes.
-
mj-xmr[m]
And very unprofessionally.
-
mj-xmr[m]
not only "bad"
-
OCREAT
"unprofessional daemon"
-
mj-xmr[m]
I'm happy you said it, not me :)
-
selsta
there was on topic patch discussion and people derailed it from the side.. nice
-
mj-xmr[m]
Anyway, sorry for breaking your fun. Bye
-
OCREAT
big shoutout to whoever will handle this situation
-
mj-xmr[m]
Don't ping me with bullshit.
-
selsta
how about everyone who isn't involved in reviewing this patch keeps out of this discussion?
-
mj-xmr[m]
OCREAT: sech1: will and I will help.
-
ofrnxmr[m]
OCREAT: Seems handled to me.
-
OCREAT
selsta: okay, sorry, we can move on
-
mj-xmr[m]
selsta: I'm actually involved.
-
ooo123ooo1234567
> <@mj-xmr[m]:libera.chat> > <@selsta:libera.chat> how about everyone who isn't involved in reviewing this patch keeps out of this discussion?
-
ooo123ooo1234567
>
-
ooo123ooo1234567
> I'm actually involved.
-
ooo123ooo1234567
You can't even debug bash script; facepalm
-
mj-xmr[m]
And I can tell you that this PR doesn't meet:
-
mj-xmr[m]
- industry standards
-
mj-xmr[m]
- Monero standards
-
selsta
...
-
mj-xmr[m]
mj-xmr[m]: See here.
-
mj-xmr[m]
OK. Cya all.
-
ooo123ooo1234567
<OCREAT> "Siren: wondering if he's..." <- That's task of reviewer to check.
-
ooo123ooo1234567
> <@mj-xmr[m]:libera.chat> And I can tell you that this PR doesn't meet:
-
ooo123ooo1234567
> - industry standards
-
ooo123ooo1234567
> - Monero standards
-
ooo123ooo1234567
facepalm
-
ooo123ooo1234567
<Siren[m]> "I'm not about the style alone (..." <- incompetent people that don't write complex code are caring about code style; code can be complex even with adoption of any "code style"; it's about dependencies, not about names.
-
ooo123ooo1234567
And number of dependencies can be reduced even without "code style" changes.
-
ooo123ooo1234567
<OCREAT> "perfect-daemon looks like "bad-..." <- Call at least 1 problem related to correctness introduced by that patch.
-
rbrunner
Complex code needs caring about code style more than any other, but that's probably just me ...
-
sech1
this ^
-
OCREAT
What really matters for Monero is: 1) robustness of code 2) a minimum of readability 3) proof of working with unit tests
-
rbrunner
And naming of course, naming
-
sech1
"write your code like the next person maintaining it will be a psycho who knows where you live" (c)
-
moneromooo
FWIW, I like ooo123's use of tests to show the fix. That's nice.
-
sech1
that I agree with
-
ooo123ooo1234567
<UkoeHB> "Siren: ding ding we have a..." <- facepalm
-
w[m]
> <@mj-xmr[m]:libera.chat> > <@ofrnxmr[m]:libera.chat> > <@ooo123ooo1234567:matrix.org> No, I don't care about code style. It's easy. Give me guide, i'll change whole code according to it.... (full message at
libera.ems.host/_matrix/media/r0/do…e7aabb7ffc4826c047f0381a76db0662265)
-
mj-xmr[m]
moneromooo: They can be reused by a more professional developer. That's even nicer.
-
mj-xmr[m]
> <@w[m]:libera.chat> > <@mj-xmr[m]:libera.chat> > <@ofrnxmr[m]:libera.chat> > <@ooo123ooo1234567:matrix.org> No, I don't care about code style. It's easy. Give me guide, i'll change whole code according to it.... (full message at
libera.ems.host/_matrix/media/r0/do…e31c74e1e579e16cac7a26dcfbf2dba44df)
-
mj-xmr[m]
I secured the unit tests on my local hard drive, in case imperfect-demon wants to threaten you with removal of them.
-
ooo123ooo1234567
mj-xmr[m]: facepalm
-
mj-xmr[m]
<rbrunner> "And naming of course, naming" <- Yes, and LoLcAt CaSe.
-
rbrunner
Not sure what you, but anyway, I meant that seriously
-
rbrunner
*you mean
-
mj-xmr[m]
I thought you were joking.
-
mj-xmr[m]
Sounded like it.
-
ooo123ooo1234567
<Siren[m]> "I'm not about the style alone (..." <- Why are you supporting that scammer ?
-
mj-xmr[m]
Obviously variables like `a` or `b` would not cut it.
-
mj-xmr[m]
So my take on this is, that a professional programmer, be it sech1 or somebody of comparable experience, takes the conclusions learned from that PR, and breaks them into smaller pieces. Only small PRs are able to be reviewed and merged for many reasons, that I shouldn't have to tell you. I wrote it all in sech1 PR.
-
mj-xmr[m]
Even if my funds are blocked, I will help in reviewing such managable PRs.
-
ooo123ooo1234567
mj-xmr[m]: you don't know what you are talking about; facepalm
-
ooo123ooo1234567
mj-xmr[m]: Aha, your funds are blocked; that's why you're talking so much
-
rbrunner
" Only small PRs are able to be reviewed and merged" Don't agree for once, and that would be a grave problem for our code base if really true
-
ooo123ooo1234567
I've not read yet msgs from monero-community
-
mj-xmr[m]
It's not tolerable, that the original PR is left unmaintained for a year, exposing the vulnerabilities to bad actors for a year.
-
rbrunner
With this problem, was it real, we could flat-out forget completely about introducing Seraphis
-
mj-xmr[m]
rbrunner: That's how it works in practice. I've had many PRs open here and only small ones were even taken into account. Sorry, but that's how it is.
-
mj-xmr[m]
rbrunner: For Seraphis, I think that nobody will argue, that we have to make an exception.
-
ooo123ooo1234567
mj-xmr[m]: incompetent developer write bullshit, which is merged into repo, but this scammer blaims correct unreviewed code in problems; facepalm
-
rbrunner
That happening to you escaped my attention. Somehow, at first impression, it sound improbable.
-
mj-xmr[m]
mj-xmr[m]: So instead of riding the dead horse, please focus on progress and PLEASE invest time into stable and professional people.
-
mj-xmr[m]
Otherwise you're left hanging when that unstable one has a bad mood.
-
mj-xmr[m]
And don't tell me it's "unrelated"
-
mj-xmr[m]
rbrunner: I actually **keeps happening** to me, not just happened. But no problem. There are more important things and I also have to adapt to reality, not the other way around.
-
moneromooo
Large PRs are possible if you have competent reviewers for this. Small PRs just increase the likelihood a PR will get reviewed properly.
-
mj-xmr[m]
Yes. But even competent reviewers will get tired and demotivated after some point. Especially after having to deal with sock puppets.
-
moneromooo
That's the point :)
-
mj-xmr[m]
And I'm not calling myself a competent reviewer.
-
rbrunner
Yes, that's why it's usually a good strategy to be somewhat careful if a good potential or actual reviewer comes around ...
-
mj-xmr[m]
I'm only trying to save the project.
-
moneromooo
We don't have them now. Except vtnerd and sech1 from time to time I think. But mostly we don't. Though I don't keep up with the PR list anymore so apologies if I'm missing someone ^_^
-
mj-xmr[m]
rbrunner: A reviewer is GOLD.
-
ooo123ooo1234567
mj-xmr[m]: hahahahahaha; scammer is saving the project
-
mj-xmr[m]
moneromooo: everybody knows how long the PR list is.
-
ooo123ooo1234567
mj-xmr[m]: the only thing that you cares about is your money, and nothing else.
-
ooo123ooo1234567
s/cares/care/
-
rbrunner
It seems jberman could have a good career ahead of him, also as a reviewer.
-
mj-xmr[m]
Yes.
-
moneromooo
Ah yes, I remember good comments on my recent patches.
-
mj-xmr[m]
-
mj-xmr[m]
Here's an example where people ask me how many money they have to throw at me to fix Monero's issues, and instead I recommend them to fund the other devs, jberman[m] included. imperfect-demon excluded.
-
ooo123ooo1234567
<moneromooo> "FWIW, I like ooo123's use of..." <- People learn only from challenges and these tests is good entry point for anyone to learn problem and check whether it was fixed. Any fiction literature in comments only help to simulate understanding via parroting of words from text in the worst case.
-
mj-xmr[m]
Now were you able to calculate perhaps how much time exactly did you spend cumulatively on trying to merge 7760, instead of trying something better, like I proposed in 8365?
-
mj-xmr[m]
-
ooo123ooo1234567
<OCREAT> "
github.com/monero-..." <- link to source with compile time strings for c++11 templates
-
mj-xmr[m]
You also can't tell me that the reason it can't be merged is that "we can't find reviewers". We have a few of them but they can't be demotivated with:
-
mj-xmr[m]
- too large PRs when they can be smaller (unlike Seraphis)
-
mj-xmr[m]
- stubborn contributors (if, as a contributor you don't need a reviewer, then it means you need to start your own project)
-
mj-xmr[m]
- sock puppets during every freaking meeting
-
mj-xmr[m]
The train won't drive if you don't build tracks first.
-
w[m]
> <@mj-xmr[m]:libera.chat> You also can't tell me that the reason it can't be merged is that "we can't find reviewers". We have a few of them but they can't be demotivated with:... (full message at
libera.ems.host/_matrix/media/r0/do…994d1e8a15dcc68a3d7462ec1add6131feb)
-
mj-xmr[m]
> <@w[m]:libera.chat> > <@mj-xmr[m]:libera.chat> You also can't tell me that the reason it can't be merged is that "we can't find reviewers". We have a few of them but they can't be demotivated with:... (full message at
libera.ems.host/_matrix/media/r0/do…36d552d3d72f2512c31da9ff18f227a61c0)
-
mj-xmr[m]
What are your contributions?
-
ooo123ooo1234567
> <@w:monero.social> mj thinks i am or that i know ooo
-
ooo123ooo1234567
>
-
ooo123ooo1234567
> lol. why so tin foiled
-
ooo123ooo1234567
that man is either scammer or pathological lier or certainly has bad opsecs so that deanonimized himself
-
w[m]
> <@mj-xmr[m]:libera.chat> > <@w[m]:libera.chat> > <@mj-xmr[m]:libera.chat> You also can't tell me that the reason it can't be merged is that "we can't find reviewers". We have a few of them but they can't be demotivated with:... (full message at
libera.ems.host/_matrix/media/r0/do…5f6e4f0a8e56ebda6bc8f5aad6a0b4b1d9e)
-
w[m]
stay on topic
-
ooo123ooo1234567
> <@mj-xmr[m]:libera.chat> > <@w[m]:libera.chat> > <@mj-xmr[m]:libera.chat> You also can't tell me that the reason it can't be merged is that "we can't find reviewers". We have a few of them but they can't be demotivated with:... (full message at
libera.ems.host/_matrix/media/r0/do…218085c58f48975fbff5b9939f539d231b4)
-
mj-xmr[m]
Was I referring to you in that message that you quoted ? Why so tin foiled?
-
mj-xmr[m]
What's your GH account w[m] and what are your contributions?
-
w[m]
-dev
-
w[m]
wrong chat
-
mj-xmr[m]
dev what?
-
mj-xmr[m]
Does anybody know w[m] ?
-
mj-xmr[m]
Or is it safe for me to ignore him?
-
w[m]
yes people know me
-
mj-xmr[m]
I'm not asking you
-
» moneromooo wonders why it might be unsafe to /ignore someone
-
mj-xmr[m]
Because he might know something useful.
-
nioc
nobody is or has been ignored by me
-
mj-xmr[m]
But I start to doubt it.
-
w[m]
im going to stop now. guy who makes internet threats wants to know who i am
-
w[m]
and again
-
w[m]
this is -dev
-
w[m]
ive got nothing to add so ill shutup now. but calling people sock puppeta and threatening to shoot people.. grow up
-
mj-xmr[m]
nioc: Try to open a CCS Proposal and discover a whole New Realm of jealous sock puppets.
-
mj-xmr[m]
> <@w[m]:libera.chat> im going to stop now. guy who makes internet threats wants to know who i am... (full message at
libera.ems.host/_matrix/media/r0/do…ceaea9842d1ad542d015176ba727e40df90)
-
mj-xmr[m]
And don't ping me.
-
moneromooo
I'm wondering, is ooo still chatting here, or did you guys manage to continue the mudslinging without him ? :D
-
mj-xmr[m]
The water is fine :)
-
mj-xmr[m]
And I can't tell you if ooo is still chatting :)
-
w[m]
ooo has yet to read mj's talk about shooting him in -community
-
mj-xmr[m]
w[m]: What? What a paranoid fuck...
-
mj-xmr[m]
Maybe I can buy him some medicine?
-
mj-xmr[m]
Besides shut up. This is -dev
-
w[m]
moneromooo: hahaha ooo is off to work on perfecting his code.. probably
-
mj-xmr[m]
You can't make a Mercedes from a pile of shit.
-
sech1
ooo123ooo1234567 I've just read through
monero-project/monero #5893 and that whole std::random_device code appeared because "Coverity said so". I don't see why we need something better than rand() in a freaking delay function which is "Sleeping because QUEUE is FULL"
-
sech1
it can probably be removed completely
-
sech1
why random delay there at all
-
sech1
I would prefer it to be removed entirely and have the delay of fixed value (250 ms)
-
sech1
unless there are strong objections
-
sech1
hyc you commented in that old PR, do you have any more context?
-
mj-xmr[m]
Let's move on. 8365 has been approved by 3 reviewers, including me.
-
mj-xmr[m]
(independently of the above discussion)
-
sech1
I doube 8365 is needed at all
-
sech1
there's no need for randomness in that place
-
mj-xmr[m]
aha
-
sech1
unless I don't understand something about that code
-
sech1
it's literally just a delay loop
-
mj-xmr[m]
Try to remove it and run the core tests for a first impression?
-
sech1
that waits until the send queue clears
-
mj-xmr[m]
and then other tests?
-
sech1
good idea
-
mj-xmr[m]
With such code base, there may be many side effects that expect this behavior.
-
mj-xmr[m]
It wasn't English, but YKWIM
-
sech1
Delay will be random anyway, even if you supply fixed "250" value every time
-
sech1
Because Windows, Linux, MacOS and many others are not real-time OS
-
mj-xmr[m]
Yes, but maybe there's a statistical expectation, that say, for 1000 tries there's a result below 10.
-
mj-xmr[m]
one result or 10.
-
jeffro256[m]
Also 250 is wayyyyyy too high for polling if the queue is empty.
-
mj-xmr[m]
Ah, you're talking about 250ms.
-
jeffro256[m]
We can still wait a variable length of time to prevent side channel attacks but it wastes an entire quarter of a second just to POLL if the queue is at the right level
-
mj-xmr[m]
Well, it won't be SHORTER than 250, no?
-
jeffro256[m]
no AFAIK
-
mj-xmr[m]
OK, the way I approach such problems is I try to find which unit tests already cover this piece of code.
-
mj-xmr[m]
I have a script for that for you guys, that's waiting to me reviewed and merged since 1.5 year.
-
jeffro256[m]
We can wait a whole quarter of a second, but that should only be after we know we can send
-
mj-xmr[m]
rbrunner: ;)
-
sech1
jeffro256[m] 7760 fixes this poll delay by doing async calls
-
mj-xmr[m]
-
mj-xmr[m]
^ It will be useful for anybody who wants to work methodically on the project.
-
mj-xmr[m]
You can use it as it is, no need to merge it.
-
jeffro256[m]
@sech1 I'll need to look at that specific part of the code, but unless he changed how the chunks are buffered/polled, just making it async won't help unfortunatelhy
-
sech1
making it async frees the current thread so it can do other things
-
sech1
this is how networking code can work efficiently
-
jeffro256[m]
Right, but it can still starve an indefinite amount of time if it comes back and its still not ready, comes back and still not ready, comes back and still not ready... Even if it's not hogging CPU time
-
mj-xmr[m]
It wouldn't take up CPU time, but I can confirm, that my valgrind tests many times, especially lately, run into a dead loop without any CPU usage. This COULD be this part but could be also another.
-
mj-xmr[m]
-
mj-xmr[m]
Every such jump in total run time was actually manually killed by me.
-
mj-xmr[m]
So I confirm, that the problem exists at least.
-
mj-xmr[m]
not necessarily here though.
-
ooo123ooo1234567
mj-xmr[m]: why are you pasting your useless charts everywhere ? is it how competent people are doing at work ?
-
sech1
I'm running "make release-test" without this random delay, we'll seen in a couple of hours
-
sech1
ooo123ooo1234567 why useless charts? It shows that there is a problem somewhere when running with valgrind.
-
jeffro256[m]
@sech1 The send buffer needs some sort of fairness mechanic
-
sech1
so it is useful, it gives information
-
ooo123ooo1234567
<sech1> "it can probably be removed..." <- "I didn't miss, it. I even wrapped that random_device into separate random_delay function in order to remove it completely" yes
-
mj-xmr[m]
useless for the brainless.
-
mj-xmr[m]
-
ooo123ooo1234567
sech1: Call at least 1 problem which was fixed with the help of them.
-
sech1
the problem with valgrind
-
ooo123ooo1234567
sech1: or noise
-
sech1
which will be fixed
-
ooo123ooo1234567
<jeffro256[m]> "Right, but it can still starve..." <- Did you try to read code ? What's the purpose to talk about code without reading it ?
-
jeffro256[m]
> > <@sech1:libera.chat> so it is useful, it gives information... (full message at
libera.ems.host/_matrix/media/r0/do…0ba1eace3e17632726d4778a5689e524078)
-
jeffro256[m]
> > <@jeffro256:monero.social> Right, but it can still starve an indefinite amount of time if it comes back and its still not ready, comes back and still not ready, comes back and still not ready... Even if it's not hogging CPU time
-
jeffro256[m]
>
-
jeffro256[m]
> Did you try to read code ? What's the purpose to talk about code without reading it ?
-
jeffro256[m]
I specifically said I didn't read that part and that I was going to
-
mj-xmr[m]
It sounds to me like you're wasting time on somebody.
-
ooo123ooo1234567
> <@jeffro256:monero.social> > > <@sech1:libera.chat> so it is useful, it gives information... (full message at
libera.ems.host/_matrix/media/r0/do…e1258cc8b76abb3c8aeb0c2c4eac4b605b6)
-
mj-xmr[m]
ooo123: are you trying to hinder the progress of Monero as a whole?
-
mj-xmr[m]
Do you have a conflict of interest?
-
mj-xmr[m]
Because it starts to appear so to me.
-
mj-xmr[m]
It was a rhetorical question. I won't see your replies. Just that you know.
-
ooo123ooo1234567
<sech1> "ooo123ooo1234567 I've just..." <- The right question: why previous reviewer allowed it ? And it isn't the only example of merged code without proper review
-
mj-xmr[m]
<sech1> "the problem with valgrind" <- yes. If you fix a potential dead loop problem and multiple runs of this valgrind script runs without a hickup, you've pretty much quickly approximated the tedious work of finding the culprit. Leveraging the fact that the script can be automated (because it was written so)
-
mj-xmr[m]
Again not pretty English, but YKWIM.
-
jeffro256[m]
> > <@sech1:libera.chat> ooo123ooo1234567 I've just read through
monero-project/monero #5893 and that whole std::random_device code appeared because "Coverity said so". I don't see why we need something better than rand() in a freaking delay function which is "Sleeping because QUEUE is FULL"
-
jeffro256[m]
>
-
jeffro256[m]
> The right question: why previous reviewer allowed it ? And it isn't the only example of merged code without proper review
-
jeffro256[m]
I agree. This was probably merged with too little review and now we deal with it later. What's your GH handle?
-
ooo123ooo1234567
> <@jeffro256:monero.social> > > <@sech1:libera.chat> ooo123ooo1234567 I've just read through
monero-project/monero #5893 and that whole std::random_device code appeared because "Coverity said so". I don't see why we need something better than rand() in a freaking delay function which... (full message at
libera.ems.host/_matrix/media/r0/do…1c3c9af6899a2df1573fdf15177cb8a33ec)
-
ooo123ooo1234567
* There are such example within last 2 months, it isn't fixed problem
-
jeffro256[m]
What's your GH handle then? Throw a negative review at the problematic ones!
-
ooo123ooo1234567
> <@jeffro256:monero.social> > > <@sech1:libera.chat> ooo123ooo1234567 I've just read through
monero-project/monero #5893 and that whole std::random_device code appeared because "Coverity said so". I don't see why we need something better than rand() in a freaking delay function which... (full message at
libera.ems.host/_matrix/media/r0/do…e461e84d285e3a3ff729e568ddf9cf4359e)
-
mj-xmr[m]
jeffro256[m]: it's "SoCkPuPpEt"
-
ooo123ooo1234567
jeffro256[m]: it doesn't matter; focus on problems/solutions
-
mj-xmr[m]
APOLOGIES.
-
ooo123ooo1234567
> <@mj-xmr[m]:libera.chat> > <@sech1:libera.chat> the problem with valgrind
-
ooo123ooo1234567
>
-
ooo123ooo1234567
> yes. If you fix a potential dead loop problem and multiple runs of this valgrind script runs without a hickup, you've pretty much quickly approximated the tedious work of finding the culprit. Leveraging the fact that the script can be automated (because it was written so)
-
ooo123ooo1234567
if anyone would read code before approving PR or writing PR then there would be no such problems
-
sech1
not true
-
sech1
bugs exist even in the best reviewed software
-
mj-xmr[m]
I agree.
-
sech1
it's just inevitable once code complexity exceeds certain limit
-
sech1
but bugs per 10k lines of code or other metrics certainly get better if reviews get done properly
-
mj-xmr[m]
Reviews aren't a 100% safeguard of any software. That's why you have to rely on automated systems as well, which, unlike reviewers, don't get tired from having to deal with SoCkPupeTs.
-
sech1
and once again about automated system and code style, why I ask to rename class members to use m_ prefix
-
sech1
buggy code shouldn't even compile ideally
-
mj-xmr[m]
I have ~12+ years of software dev career in teams that prove it. And it wasn't always all my failt!
-
sech1
if you don't use prefixes, you can accidentally use local variable instead of class member in a complex code
-
sech1
and it will compile
-
sech1
just one typo and you use different variable
-
sech1
compiler is your friend and you should help it by writing code that resists bugs by not compiling :)
-
jeffro256[m]
@w are you on matrix or IRC?
-
sech1
*by giving compile errors
-
mj-xmr[m]
sech1: If you like adventures, you may always set a given clang warning to an error or define your own warning/error in clang, like the one you mentioned.
-
mj-xmr[m]
I'm using the word "adventures" because this useless chart will show you (more or less) how much work you'll have fixing this:
-
mj-xmr[m]
-
jeffro256[m]
> at the same time you approved
monero-project/monero #8365 blindly; facepalm
-
jeffro256[m]
I didn't "blindly" approve it. I looked at every single line and come to the conclusion that it's better than what we currently have
-
w[m]
jeffro256[m]: matrix
-
jeffro256[m]
ooo123ooo1234567 You keep complaining about the review process, but refuse to participate in it
-
sech1
mj-xmr[m] I always prefer -Wall -Werror where possible
-
sech1
to keep compilation clean
-
sech1
not in Monero codebase unfortunately
-
ooo123ooo1234567
> <@jeffro256:monero.social> > at the same time you approved
monero-project/monero #8365 blindly; facepalm
-
ooo123ooo1234567
>
-
ooo123ooo1234567
> I didn't "blindly" approve it. I looked at every single line and come to the conclusion that it's better than what we currently have
-
ooo123ooo1234567
random delay isn't needed, but you approve PR that use random generator in a faster way; facepalm
-
mj-xmr[m]
8365 was actually perfectly prepared for a review and Reviewers as human beings. This is a non-verbal show of the contributor's respect to his reviewers.
-
mj-xmr[m]
sech1: We'll get there, if we work as a team.
-
ooo123ooo1234567
> <@jeffro256:monero.social> > at the same time you approved
monero-project/monero #8365 blindly; facepalm
-
ooo123ooo1234567
>
-
ooo123ooo1234567
> I didn't "blindly" approve it. I looked at every single line and come to the conclusion that it's better than what we currently have
-
ooo123ooo1234567
it's the same as approving unnecessary optimization
-
ooo123ooo1234567
* it's the same as approving unnecessary optimization with more code, wider scope (previously it's within 1 function, now it's within 1 class)
-
mj-xmr[m]
Where even such a "useless charlatan" like me can add a bit here or there.
-
mj-xmr[m]
But I don't have to either.
-
sech1
8365 is no unnecessary optimization
-
sech1
it fixes a security issue (system entropy depletion)
-
jeffro256[m]
Why don't I see any criticism on #8365 ? Let it be known if there's an issue!
-
sech1
whether the randomness is needed there at all, is another topic
-
jeffro256[m]
> compiler is your friend and you should help it by writing code that resists bugs by not compiling :)
-
jeffro256[m]
Dang I must be writing some real bug-resistant code on accident :P
-
mj-xmr[m]
If 8365 is an unnecessary optimization, than master MINUS 8365 is worse than that.
-
jeffro256[m]
> mj-xmr I always prefer -Wall -Werror where possible
-
jeffro256[m]
-Wall -Wextra -Weffc++ -Werror -pedantic is the way to go
-
ooo123ooo1234567
sech1: No, std::random_device may use CSPRNG / /dev/urandom / RDSEED / RDRAND, but in the worst case it will be bottlenecked by CPU rdseed/rdrand instruction, which certainly has higher throughput than rate of accepting network connections
-
sech1
-pedantic is an overkill
-
jeffro256[m]
> > <@jeffro256:monero.social> > at the same time you approved
monero-project/monero #8365 blindly; facepalm... (full message at
libera.ems.host/_matrix/media/r0/do…9322620db0e782f5fb055c542f38bf3d7cc)
-
sech1
ooo123ooo1234567 not all systems has rdseed/rdrand
-
ooo123ooo1234567
sech1: it isn't security issue
-
sech1
and entropy exhaustion is a real problem
-
sech1
not a security issue?
-
sech1
Imagine you run monerod that exhausts all entropy while syncing
-
ooo123ooo1234567
sech1: proof ?
-
sech1
then start monero-wallet-cli and create a new wallet with 0 entropy
-
sech1
understand now?
-
mj-xmr[m]
> <@jeffro256[m]:libera.chat> > mj-xmr I always prefer -Wall -Werror where possible
-
mj-xmr[m]
>
-
mj-xmr[m]
> -Wall -Wextra -Weffc++ -Werror -pedantic is the way to go
-
mj-xmr[m]
Unreal :)
-
mj-xmr[m]
sech1: NO. CARE TO EXPLAIN AGAIN, SLOWLY?
-
selsta
mj-xmr[m]: can you stop with it?
-
moneromooo
Seconded
-
UkoeHB
+1
-
mj-xmr[m]
Can you say the same to ooo?
-
mj-xmr[m]
let me know how he reacts.
-
ooo123ooo1234567
sech1: if it's real problem, then OS is already compromised since user space code can make it vulnerable;
-
moneromooo
You're not ignored yet, that's why you get asked :)
-
ooo123ooo1234567
sech1: proof please
-
mj-xmr[m]
Why thank you :)
-
sech1
it's a problem on uncompromised OS
-
sech1
if your own code exhausts entropy, your new wallet will be predictable
-
sech1
proof ^^^
-
ooo123ooo1234567
sech1: can you find link to any successful demo with entropy depletion that way ?
-
sech1
find yourself
-
moneromooo
Anyway, if it even needs to be said... fixing entropy exhaustion is good. Please merge, etc etc.
-
sech1
I give you ideas, find proofs please if you need it
-
jeffro256[m]
ooo123ooo123[m] I agree that we should get rid of the random delay eventually, but we don't have to do it in one fell swoop. It's a relatively easy change to review and takes a step in the right direction. Also please, please, please, please put that stuff into the PR reviews. You have some really good insight so document that with a PR review
-
sech1
moneromooo the next question is if it's needed at all (random delay in epee)
-
sech1
so I'd wait with merging 8365
-
jeffro256[m]
Not only for the author of the PR, but for others who review as well
-
sech1
maybe complete removal of randomness is fine there
-
moneromooo
Random maybe not, but busy wait is not good.
-
ooo123ooo1234567
jeffro256[m]: 1 line changes in wrong direction are also easy to review, but are they needed ?
-
moneromooo
Random could help with everything waking up at hte same time, but I'm not sure that can happen.
-
sech1
delays are random already
-
sech1
because OS can't guarantee exact delay
-
jeffro256[m]
> Random maybe not, but busy wait is not good.
-
jeffro256[m]
that's what I'm saying. It shoudn't be a horribly long wait just to check again to see if it needs to wait another horribly long period of time to check again to see if it ...
-
ooo123ooo1234567
jeffro256[m]: I don't enjoy talking with people that write shallow comments
-
moneromooo
Much more precise than network delays though. A full queue would be due to (if not a bug) network congestion. That'll typically last somewhat longer than a timeslice (I want to say typical 10 ms ?)
-
sech1
"It shoudn't be a horribly long wait just to check again" Maybe an exponential backoff would be better there. 1 ms, 2 ms, 4 ms and so on in the loop. And cap it at 250 ms.
-
jeffro256[m]
> > <@jeffro256:monero.social> ooo123ooo123[m] I agree that we should get rid of the random delay eventually, but we don't have to do it in one fell swoop. It's a relatively easy change to review and takes a step in the right direction. Also please, please, please, please put that stuff into the PR reviews. You have some really good insight so document that with a PR review
-
jeffro256[m]
>
-
jeffro256[m]
> 1 line changes in wrong direction are also easy to review, but are they needed ?
-
jeffro256[m]
Do you think #8365 is a small step in the wrong direction?
-
sech1
*256 ms
-
moneromooo
If it's just one thread spamming lots of messages at once, it'll go through faster though, so small-ish delays are probably better, it'll check often but I assume the work is small, so it won't busy spam CPU.
-
ooo123ooo1234567
sech1: sech1, that problem require much bigger changes in other parts; it will be just static delay for now; since code is async, it's ok; don't dive into small scope optimizations
-
moneromooo
Sure, TCP like sounds good to me.
-
ooo123ooo1234567
> <@jeffro256:monero.social> > > <@jeffro256:monero.social> ooo123ooo123[m] I agree that we should get rid of the random delay eventually, but we don't have to do it in one fell swoop. It's a relatively easy change to review and takes a step in the right direction. Also please, please, please, please put that... (full message at
libera.ems.host/_matrix/media/r0/do…871728a7ce15119343ef272e6862386b6a8)
-
sech1
yes, if it's async then 250 ms delay is not a problem
-
Siren[m]
<ooo123ooo1234567> "Why are you supporting that..." <- What scammer?
-
sech1
I was talking about the current loop that sleeps for 250 ms
-
ooo123ooo1234567
sech1: talking with all you here I'm learning more about English, rather than C++
-
ooo123ooo1234567
Siren[m]: mj-xmr
-
selsta
Siren[m]: please move to #monero-community
-
moneromooo
IIRC the only times I saw that queue filling was due to a bug though.
-
Siren[m]
ooo123ooo1234567: Dunno what you're talking about
-
moneromooo
Oh, and possibly at the end of the process. So keeping the max delay small enough helps a pause at the end. 250 ms sounds... low enough I guess.
-
ooo123ooo1234567
moneromooo: This constant doesn't matter; small - problem, big - problem; you're talking about unimportant detail without reading code
-
moneromooo
Assuming all the threads don't end up sleeping after each other, so 250 ms * 8 would not be nice. I don't know if they can bejave like that off the top of my head.
-
moneromooo
so checking the stop flag before sleep is probably good.
-
moneromooo
Like, right before. Might already do.
-
» moneromooo wanders back
-
ooo123ooo1234567
moneromooo: in PR it's async code, what threads are you talking about ?
-
w[m]
moneromooo: "in PR it's async code, what threads are you talking about ?"
-
w[m]
from - ooo123ooo1234567:
-
ooo123ooo1234567
<sech1> "I give you ideas, find proofs..." <- ideas are easy to create, proof/implementation are not easy, any hint ?
-
ooo123ooo1234567
<sech1> "if your own code exhausts..." <- I saw only hardware bug in AMD CPU for which rdseed will return 0x000000, but it's already compromised OS since hardware is broken
-
sech1
-
sech1
-
moneromooo
There are a few P2P threads IIRC. If it doesn't apply, great, nothing to do then.
-
sech1
it's better to remove random delay
-
sech1
too much hassle to get 1 random number between 0 and 49
-
sech1
which doesn't even need to be random
-
moneromooo
Sure, as long as low enough that a thread doesn't get stuck unnecessarily several times a row, works for me.
-
sech1
core_tests passed without random delay (running tests now)
-
sech1
but if you say that this code is barely executed at all, it doesn't really matter
-
UkoeHB
spitballing: does random delay let it reorder with other jobs if potentially suck in a delay cycle?
-
moneromooo
Well, I don't remember seeing this happen much in my case. I do remember this code yelling many years ago. Guess it could be the warnings got moved to a lesser log level too for all I know :)
-
sech1
all tests passed without the random delay
-
mj-xmr[m]
sech1: if you PR it, I will start running the valgrind tests already tonight.
-
jeffro256[m]
Maybe you could put in a log statement in that while loop which prints if the queue is full and then fuzz test it to see if the code even ever triggers
-
sech1
most likely it doesn't
-
ooo123ooo1234567
-
ooo123ooo1234567
-
ooo123ooo1234567
-
ooo123ooo1234567
weaveworks/weave #1037#issuecomment-118418860, "Based on that, the only thing we may need to be concerned about is blocking apps on the host that use /dev/random."
-
ooo123ooo1234567
linux users are safe even in the worst case when timeout generation from that code will exhaust entropy pool at maximum speed
-
sech1
good
-
sech1
now maybe it's time to remove that code in your PR as there is no reason for it to be there
-
sech1
and PR 8365 is redundant
-
ooo123ooo1234567
sech1: look, doing unnecessary change: first reviewer point it and don't dive deeper, not doing unnecessary change: first reviewer point it and don't dive deeper
-
ooo123ooo1234567
In both cases if reviewer don't want to spend time then there is no proper review
-
ooo123ooo1234567
I'm not sure I will find my own PR for each case, I'm certainly sure there are examples in repo with PRs of others
-
ooo123ooo1234567
Also not changing code style: bad, changing code style: why did you do that ?
-
ooo123ooo1234567
But all of this doesn't matter, I'm personally will never complain about code style / text / naming / whatever in PRs of others. I will only check it's correct
-
sech1
you only care about correct/incorrect and don't care about future maintainers who can make it incorrect because it has bad style and they don't fully understand it
-
sech1
very short-sighted
-
mj-xmr[m]
OK but this means, that if there's still a reason for a deadlock, it will still be there, but now it will look like a pure CPU hog. We won't be able to distinguish if it's intentional or not.
-
sech1
what CUP hog? I'm only suggesting to change "250 + rng() % 50" to just "250"
-
ooo123ooo1234567
sech1: No. This kind of challenge may force others to start care about something hard, instead of focusing on shallow things. But I'm not sure
-
mj-xmr[m]
Ah sorry. Misunderstood.
-
sech1
code style and readability is not shallow things
-
ooo123ooo1234567
sech1: It's possible to look at the same thing with different focus / context / angle, and it will look differently. But correct code is working at least
-
sech1
here we fundamentally disagree
-
sech1
correct code can be working, but at the same time be a shit code
-
sech1
from any maintainer's perspective
-
sech1
you can write a single 1000-line function full of spaghetti that is correct and works and even bug free
-
sech1
good like changing anything there
-
ooo123ooo1234567
sech1: No, correct code is pretty hard to write
-
mj-xmr[m]
sech1: Code is meant to be read by humans. Machines are happy with binary code.
-
mj-xmr[m]
Also the humans who are meant to read it aren't only the original author.
-
sech1
*good luck
-
sech1
define correct code then
-
mj-xmr[m]
It can be the original author only that is meant to read it, but this doesn't belong to a team/community project.
-
sech1
1000-line spaghetti code function is correct? If it passes all tests and has no bugs?
-
mj-xmr[m]
I just realized that we're selling years of professional experience to somebody who isn't worth it, entirely for free. Good night.
-
ooo123ooo1234567
sech1: That's the problem: we are talking without defining common goal explicitly. And implicitly deduced one isn't equal probably
-
ooo123ooo1234567
mj-xmr[m]: experience of writing fiction literature in form reports in your case; facepalm
-
ooo123ooo1234567
<sech1> "1000-line spaghetti code..." <- I can treat your question as a challenge or blindly agree. I have no idea if there is some edge case where such code would be correct.
-
ooo123ooo1234567
<sech1> "1000-line spaghetti code..." <- In most cases spaghetti code is written by people who add small scope short term fixes
-
sech1
define correct
-
ooo123ooo1234567
<sech1> "1000-line spaghetti code..." <- Some things with a lot of edge cases can't be implemented without if/else. There is probably even example in one of you rerpo
-
ooo123ooo1234567
Things which are easy (within available time) to decompose can be implemented without spaghetti
-
ooo123ooo1234567
> <@mj-xmr[m]:libera.chat> > <@sech1:libera.chat> code style and readability is not shallow things... (full message at
libera.ems.host/_matrix/media/r0/do…02276ea5c4e4a1299e1bd2d35e9808c7afc)
-
ooo123ooo1234567
<mj-xmr[m]> "8365 was actually perfectly..." <- and all reviewers blindly approved; facepalm
-
ooo123ooo1234567
<mj-xmr[m]> "8365 was actually perfectly..." <- scammers are very respectful and pleasant, until understand that they will not receive money
-
ooo123ooo1234567
<UkoeHB> "spitballing: does random delay..." <- nobody writes async code that requires random delay in order to be correct; only incompetent developers adds random delay in some places in order to pass tests or hide deeper problem; and it was this case : firstly delay, then random delay, then proper usage of random number generator for random delay
-
ooo123ooo1234567
<mj-xmr[m]> "Can you say the same to ooo?" <- are you trying to create alternative reality description for people that don't see all msgs ?
-
luigi1112
mj-xmr[m] ooo123ooo1234567 please keep drama out of -dev to best of your ability. -community may be basically unmoderated (currently), but -dev isn't (supposed to be)
-
ooo123ooo1234567
luigi1112: drama is about emotions, it isn't about emotions. There are real problems that are not solved.
-
ooo123ooo1234567
luigi1112: And don't put me into the same row with this scammer;
-
ooo123ooo1234567
These questions are relevant to anyone who will do the same
-
luigi1112
the questions do not require inflammatory language
-
ooo123ooo1234567
luigi1112: If there would be rules and no blind merges, then It would work
-
luigi1112
let's improve it
-
ooo123ooo1234567
luigi1112: I think I can defend every my word
-
luigi1112
on a related note, improving things would be a good time to revisit finding a dedicated maintainer
-
luigi1112
*esp for the monero repo
-
ooo123ooo1234567
<mj-xmr[m]> "Reviews aren't a 100% safeguard..." <- I would completely opposite: the most important problems in monero can't be detected by incompetent people no matter what tool they are using; you're clear example;
-
ooo123ooo1234567
<sech1> "bugs exist even in the best..." <- It's a comment about hardness to reach perfection, but in current environment I would say even lower boundary of qualification isn't reached yet
-
ooo123ooo1234567
<jeffro256[m]> "What's your GH handle then..." <- if you're not anonymous then it doesn't mean that you must ask everyone what is their GH handle. Also GH isn't a measure of anything.
-
mj-xmr[m]
<luigi1112> "the questions do not require..." <- I'll do my best. I just don't like being falsely accused of being a scammer.