IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#i2p-dev
/2023/09/23
@eyedeekay
&eche|on
&kytv
&zzz
+R4SAS
+RN
+RN_
+T3s|4
+dr|z3d
+hk
+postman
+wodencafe
An0nm0n
Arch
Danny
DeltaOreo
FreefallHeavens
Irc2PGuest52850
Irc2PGuest53061
Irc2PGuest88897
Nausicaa
Onn4l7h
Onn4|7h
Over1
Sisyphus
Sleepy
Soni
T3s|4_
aargh2
acetone_
anon2
b3t4f4c3
bak83
boonst
cancername
cumlord
dr4wd3
eyedeekay_bnc
hagen_
khb_
not_bob_afk
orignal_
plap
poriori_
profetikla
r3med1tz
rapidash
shiver_
solidx66
u5657
uop23ip
w8rabbit
weko_
x74a6
zzz eyedeekay, congrats for knocking about 1500 lines out of the release diff, that's real progress
zzz ping eyedeekay re: RouterVersion STATUS
zzz for those who are on the latest and want to cleanup the stray on-disk netdb mess:
zzz rm -r ~/i2p/netDb ~/.i2p/netDb/client*
zzz eyedeekay, I suggest you post an advisory somewhere
zzz actually I've seen "exploratory" also, so:
zzz rm -r ~/i2p/netDb ~/.i2p/netDb/client* ~/.i2p/netDb/expl*
eyedeekay Ack will do
eyedeekay Re: RouterVersion.STATUS it is for embedders/easy-installs now so they can put `alpha` `beta` and `rc` status into the version before the build/extra, so they can have versions like 2.4.0-beta1, etc
mesh eyedeekay: what you call a 'STATUS' is usually called a 'release qualifier' or 'version qualifier'. Also good idea to keep it all caps so it stands out if present
zzz eyedeekay, ok, so if we're at 2.4.0-alpha2 and want to go to beta, what will it be...
zzz 2.4.0-beta3? 2.4.0-beta2? 2.4.0-beta1?
zzz STATUS is the field in RouterVersion, I didn't make it up
eyedeekay Yeah the intent would be to switch to beta1 after alpha2 in your example
zzz thats what I thought
zzz see VersionComparator
zzz changing BUILD backwards will break unsigned updates
zzz it needs to be 2.4.0-2-beta1
eyedeekay Ok I see what you mean
zzz i.e. STATUS needs to be _after_ BUILD
zzz you want a ticket?
eyedeekay Probably better
zzz coming right up
zzz np :)
zzz #441
mesh btw any news on the "unsupported encryption options" bug?
eyedeekay Progressing still WIP
eyedeekay It should go away when I fix lifecycle issues in the newest draft MR on gitlab
eyedeekay Far and away the lifecycle stuff seems to be trickiest to fix
zzz want help?
zzz thought I dropped enough clues on how to do it pretty easily but maybe not...
eyedeekay Nah I think I got it from here it's just kind of extensive
zzz if it is extensive, maybe that's the wrong way, you _sure_ you don't want help?
zzz because the way I'm thinking will fix a lot of your other issues too
zzz you want me to eyeball your WIP, or you tell me what you're doing, or I tell you how I'd do it?
eyedeekay What I've done so far is split the getSubNetDb into get/create/remove and switched to the primary session as the dbid source, but I can't always get the primary session hash from where I call get* so I had to make a way to get at it
eyedeekay Tell me how you'd do it
zzz - remove FNDS HashMap storage
zzz - store client FNDF in ClientConnectionRunner next to SKM, add create/start/stop code in there next to the SKM equivalents
zzz add ctx.clientManager().getClientFNDF(Hash) method which can return null
zzz change all DBID strings to just use the hash instead
zzz - remove expl subdb which I still dont understand why
zzz EOT
zzz this fixes your FNDS thread-safe issues too
eyedeekay Ack, I'll try it that way. Re: clients_exploratory right now is only still there for debugging, I've been using it to catch any client with a null dbid which should never happen and it will go away soon
zzz my way solves lifecycle issue by binding the FNDF precisely to the client, removes "magic" FNDF creation, and ensures start and stop always happen
zzz there's plenty of other ways to do it that could be just as good, dunno. But SKM has the same requirements, and we have no SKM lifecycle bugs atm, so my first thought is to do it just like SKM
zzz so if you follow down my path, you have to decide whether FNDS.getSubDB() can return null (causing you to add null checks and handling throughout the codebase) or returns the maindb if not found (much simpler, but may have undesirable side effects)
zzz bug fixes may resolve most of the client-not-found null cases but you almost certainly can't eliminate all possibility due to concurrency
zzz note that clientManager().getSessionKeyManager(Hash) works for subsession hashes also, so copying that code will solve your subsession problem above also
zzz would you please start squashing your merge commits again (and change your default in your gitlab settings) to minimize the commit log?
eyedeekay Yes I will
zzz thanks :)
zzz orignal, reproduced U router issue, verified I broke it in January, working on fix now
orignal for NTCP2 you mean?
mesh oops, sorry
zzz orignal, yes
zzz it's an NTCP2 bug, not updating the address after transitioning to firewalled