IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#ls2
/2022/07/25
dr|z3d CRIT […eTimer2 4/4] …til.SimpleTimer2: SimpleTimer2: Timed task net.i2p.router.transport.udp.PeerState2$ACKTimer@5686a7c4 exited unexpectedly, please report
dr|z3d java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 8
dr|z3d at net.i2p.router.transport.udp.SSU2Bitfield.set(SSU2Bitfield.java:103)
dr|z3d at net.i2p.router.transport.udp.PacketBuilder2.buildPacket(PacketBuilder2.java:301)
dr|z3d at net.i2p.router.transport.udp.PacketBuilder2.buildPacket(PacketBuilder2.java:143)
dr|z3d at net.i2p.router.transport.udp.PacketBuilder2.buildACK(PacketBuilder2.java:346)
dr|z3d at net.i2p.router.transport.udp.PeerState2$ACKTimer.timeReached(PeerState2.java:782)
dr|z3d at net.i2p.util.SimpleTimer2$TimedEvent.run2(SimpleTimer2.java:501)
dr|z3d at net.i2p.util.SimpleTimer2$TimedEvent.run(SimpleTimer2.java:440)
dr|z3d at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
dr|z3d at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
dr|z3d at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
dr|z3d at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
dr|z3d at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
dr|z3d at java.base/java.lang.Thread.run(Thread.java:833)
orignal 07:41:26@853/debug - SSU2: Block type 12 of size 5
orignal 07:41:26@853/debug - SSU2: Ack
orignal 07:41:26@853/debug - SSU2: Block type 4 of size 1313
orignal 07:41:26@853/debug - SSU2: First fragment
orignal 07:41:26@853/debug - SSU2: Block type 5 of size 60
orignal 07:41:26@853/debug - SSU2: Follow-on fragment
orignal zzz, why is it?
orignal so, I receive packet of 1313 + 5 bytes
orignal and last fragment of 60
orignal why was it split by two?
orignal I beleive there is plenty of room
orignal for send it as signle block
orignal never mind, because max payload size=1340
orignal wiht MTU 1420
zzz thanks dr|z3d thats a new one
dr|z3d that's on an up-to-date router, zzz.
dr|z3d the error occurred 1/2 dozen times in the space of a couple of minutes, then stopped.
orignal erorr from me
zzz what?
orignal it was a question
orignal if this error came from me
zzz no, almost certainly not. looks like a synchronization or race issue
zzz dr|z3d, what's your PeerState2 log level? wondering if you have any nearby logging
dr|z3d all turned off, zzz
zzz ok. stumped atm
dr|z3d I'll enable PeerState2 debug logging to see if we can shed some light. I was keeping an eye on participating throttler, so didn't want to choke up the logs. That issue appears to have passed.
zzz it's gonna be tough. the best I can do maybe to add more logging to the code if it happens again
dr|z3d critical level is good, doesn't get lost in the flow then.
dr|z3d orignal: no idea, didn't have the requisite logging enabled.
zzz its a headscratcher because I'm not off by 1, I'm off by 4
dr|z3d oh, and what zzz said.
zzz dr|z3d, java version?
orignal i2p+?
dr|z3d OpenJDK Runtime Environment 18-ea+36-Ubuntu-1
zzz x86_64?
dr|z3d yup, 64bit.
dr|z3d coreisbr  Ivy Bridge  [Jcpuid version: 3]
dr|z3d obviously I2P+, orignal :)
eyedeekay I am not going to make the meeting today
eyedeekay Best I can tell I've got 6-8 hours left, but I don't know when/how much I took
eyedeekay Very good quality though
dr|z3d what you taken, eyedeekay? acid? :)
eyedeekay Yeah not sure when but I think somewhere between 5-8 of the size doses I used to take in college
zzz lol how was hope?
eyedeekay High end of as much as I've ever taken
eyedeekay Fun, as you might imagine
zzz you home safe or still on the loose in NYC?
eyedeekay Spent a lot of time meeting people, volunteered a bit, and at about 1 last night, realized I was high as kite
orignal what happened?
dr|z3d sounds like someone enhanced eyedeekay's beer.
eyedeekay Not sure. I helped clean up and picked up a ton of tiny pieces of cardstock
eyedeekay Might have done it to myself
zzz where are you?
orignal seems in Harlem ))
eyedeekay I'm in my hotel restaurant getting breakfast
zzz should we send zlatinb_ over to check on you?
eyedeekay Nah I'm fine this is not my first rodeo
zzz got Sav there with you?
eyedeekay Yeah we're both here
zzz she got it together or is it a double shitshow?
dr|z3d positive vibes, zzz. it's not a shitshow, it's a dance in the clouds :)
eyedeekay She says she's all right too
zzz ok, if you need anything holler and I'll get zlatinb_ up on signal. have fun
eyedeekay Yeah I'm well into the groove of it now, just got to be careful in this heat
zzz found the bug dr|z3d, thanks again
zzz wasn't the issue, but you might want to update your JRE since you're on a EA
dr|z3d oh, good that you found the bug. great. re JRE, I'm waiting for the repo to update. this is Ubuntu Kinetic, so I'm a little surprised it isn't already updated.
dr|z3d oh, or maybe this is the one box I didn't update to kinetic. let's get that in motion.
zzz debian has 18.0.2, yeah, kinetic has 18.0.1
zzz 36ea is jammy
dr|z3d I usually give the latest dev release a couple of months to bed in and then update. usually fine.
zzz sure, jammy just went unsupported a few days ago
zzz which is why I started looking at the ruby2.7 issue
dr|z3d jammy unsupported? how so? that's current.
dr|z3d or you mean wrt ruby?
zzz oh sorry I meant impish
zzz 21.10
dr|z3d yeah, right. jammy is LTS afaik.
zzz gotta move that box to jammy at some point. not a crisis but on the list
dr|z3d as for ruby, a snap is probably your best bet, then you get to keep it updated without too much effort.
dr|z3d "snap refresh" or whatever the command is.
zzz well there's lots of ways to do it, but first have to see if it works
dr|z3d > Fetched 784 MB in 6s (62.9 MB/s)
dr|z3d entire upgrade took around 7 minutes. not bad.
zzz I did it on one box the other day, took 5 hours
dr|z3d interesting error #31:
dr|z3d …ntcp.EventPumper: Error in the event pumper
dr|z3d java.lang.NullPointerException
dr|z3d at net.i2p.router.transport.ntcp.NTCPConnection.sendTermination(NTCPConnection.java:917)
dr|z3d at net.i2p.router.transport.ntcp.NTCPConnection.sendTerminationAndClose(NTCPConnection.java:884)
dr|z3d at net.i2p.router.transport.ntcp.EventPumper.run(EventPumper.java:335)
dr|z3d at java.lang.Thread.run(Thread.java:748)
dr|z3d at net.i2p.util.I2PThread.run(I2PThread.java:103)
dr|z3d if (port <= 0 || ip == null)
dr|z3d throw new IOException("Invalid NTCP address: " + naddr);
dr|z3d kinetic's still on EA builds. slack fsckers. Private Build 18.0.1-ea (OpenJDK Runtime Environment 18.0.1-ea+10-Ubuntu-1)
dr|z3d that event pumper npe looks like it killed a good chunk of the router's traffic.
zzz dunno, at first glance it doesn't look possible
dr|z3d not seen it before, this much I know.
orignal is it NTCP or NTCP2?
zzz NTCP code is long gone
obscuratus I've run across routers with Port = 0, and no NTCP address. I think QPUV would occasionally show up that way. Let me see if I can find one.
obscuratus Oh, is this a NTCP v1 error?
obscuratus If I go to "All Routers with Full Stats", it's easy to do a search for "Port: 0". But it's always the SSU transport with Port=0. But there are several examples where the NTCP transport is published with no IP address.
orignal what's wrong with transports with port=0?
orignal It only means it's not reachable
obscuratus I'm just saying that be a possible explaination for the error dr|z3d is seeing.
obscuratus An unreachable transport without IP address or port published, making an inbound connection.
zzz port=0 is not legal
obscuratus zzz: Fair enough, but I see several examples in the wild.
zzz I assumed they were buggy i2pd forks, but if stock i2pd is publishing them that's a bug
zzz java may even ban them, not sure
orignal no I don't publish port = 0 at least since we started publishing caps 4 and 6
orignal the problem is
obscuratus So, when you're firewalled, are you supposed to publish a normal NTCP address, and let the SSU transport be the indicator to the rest of the world that you are firewalled?
orignal before we didn't have these caps
orignal and had to pubslish enpoint regardless if reachable or not
orignal NTCP or NTCP2?
obscuratus orignal: That question for me?
orignal if firewalled it's published with caps 4 or 6 and s only
orignal if not no caps but valid enpoint and i
orignal SSU is more complicated
obscuratus So, in that case (when you are firewalled), you publish NCTP2 without IP address or port. So port=null instead of port=0?
orignal no port at all
orignal only caps, s and v
orignal for NTCP2
obscuratus orignal: When I see a router with "Port: 0", it's always on the SSU transport. You're saying that i2pd shouldn't do that?
orignal newer version
orignal that publish caps with 4 or 6
obscuratus I'm looking at a router right now (LUB8) that is showing version 0.9.54, that is apparently firewalled. It's IPv4 SSU transport (with caps B4) is showing Port: 17059. It's IPv6 SSU transport (with caps B6) is showing Port: 0
obscuratus orignal: So not a vanilla i2pd router?
orignal shouldn't be
orignal let me check
orignal it it shown 0 it's bug
zzz speaking of 0
zzz 0) Hi
zzz what's on the list for today?\
orignal SSU2 status
zzz idk and zab are on the road
zzz status is 1)
zzz I'll add 2) response to SSU2 termination (mentioned last week)
orignal where is everybody?
zzz NYC for HOPE
zzz idk said it was good, zab told me it wasn't
zzz anyway
orignal NYC or HOPE?
zzz HOPE
orignal NYC is never good in my opinion ))
zzz not in this heat. but zab lived there for years, I don't think he has anything against it
zzz anyway
zzz 1) SSU2 status
zzz my turn I guess
orignal so I have implemented introducers
zzz chasing minor bugs still, they're getting more rare
zzz I thought the remaining troublemaker was p~8- but ai see a couple more
zzz pretty low frequency though
orignal I guess after proper MTU
zzz I'm about to start taking a look at my data phase resending, I think I have some problems
orignal I need to looks at it too
zzz maybe MTU or maybe can't handle session confirmed fragmentation at all
orignal because I need to update Ack block that I don't do
zzz 4 weeks to the release, so I really want to chase the last problems down
zzz that's it for me, go ahead
orignal 1. I have implemnetd introducers
orignal do you see any problem with i2pd router publishung SSU2 introducers yet?
zzz I haven't looked. Does it work on your side?
orignal will start testing soon
orignal I cann't fall to "Firewalled" state yet
orignal unfortunately peer test works too good for SSU2 ))
zzz lol please do your testing before you ask me to do it :)
orignal but will try to simulate it
orignal I don't ask you
orignal I ask you if you see any problems
orignal I saw some problems from others and fixed them
zzz what router hashes are publising introducers, and I'll look
orignal any of them
orignal I remeber one started with b5
orignal sometimes R4SAS's
zzz ok if you see any let me know
orignal I'm going to publish mine explicitly
zzz I have a list of about 40 SSU2 i2pd, don't see any b5
orignal I will let you know
orignal iNmq might publish now
zzz thanks. any other SSU2 status?
orignal I started replacing SSU by SSU2
orignal did it on 2RRY
orignal works well so far
zzz how are you doing on MTU changes/fixes?
orignal right now every ipv6 address will contain MTU for both SSU and SSU2
zzz ok. 1500 is default for SSU2, so you don't have to put it in there if 1500
orignal didn't have time to implement a code for ipv4 mtu detection
orignal but can I?
zzz sure, it's fine
zzz just a few wasted bytes, no big deal
orignal I think so too
orignal working on fragmented messages
orignal to not fill max payload if possible
orignal but deduct some random bytes
orignal also implemented reduced number of Ack tanges if need to fit into one message
zzz nice
orignal hope to porduce less fragmenetd messages
orignal but this morning issue
orignal I'm a little confused
orignal about 1313 and 60 frgegments
zzz huh?
orignal the main problem it was I2NP messages with RouterInfo
orignal <orignal> 07:41:26@853/debug - SSU2: Block type 12 of size 5
orignal <orignal> 07:41:26@853/debug - SSU2: Ack
orignal <orignal> 07:41:26@853/debug - SSU2: Block type 4 of size 1313
orignal <orignal> 07:41:26@853/debug - SSU2: First fragment
orignal <orignal> 07:41:26@853/debug - SSU2: Block type 5 of size 60
orignal <orignal> 07:41:26@853/debug - SSU2: Follow-on fragment
orignal I mean this one
orignal the message size was 1373
zzz I missed that, I was disconnected for a couple hours this morning
orignal I'm pretty sure it could fit it it was compressed
orignal I rememebr you said you never send RouterInfo block
orignal but I2NP messages intead
zzz right
orignal maybe time to change it?
zzz for now
orignal seconds fragment of 60 bytes for RI
orignal compression would help
zzz well, a database store message of a RI is compressed, right? so not too much difference?
orignal what compression level do you use there?
orignal as I remeber medium not high
orignal 60 bytes matter
zzz yeah I think it was 3
orignal yes, but 9 would produce 60 bytes less easily
zzz yes, 3
orignal I'm not sure I evern compress RI in database store
orignal just no compression
zzz 9 is about 4% smaller and 50% slower than 3 in my tests, but I can't remember what data I tested it on
orignal anyway, please think about such option
orignal if might reduce number of packets
zzz sure
zzz I have a proposal to reduce compressed RIs by hundreds of bytes, but I don't think we've talked about it
orignal 4% is around 60 for 1300 bytes ))
orignal about padding?
zzz yes
orignal we did talk
zzz oh yeah, we did, I forgot
orignal it was zlatin's idea
orignal well it might work ofc
orignal a next step
zzz yeah, we worked on it together
zzz I have a router out there with it enabled
zzz anything else on 1) SSU2 status?
orignal and how much the improvement?
orignal I think that's all from my side
zzz it's like 300 bytes
zzz 2) SSU2 termination response
orignal so around 25%?
zzz we said we'd think about it
orignal yes, I promised to make this list but didn't have time
zzz it's a fixed ~300 bytes savings
zzz no not the termination codes list
orignal asumme RI size like 1500
zzz the response to termination: an ack, another termination, or nothing
orignal oh yes
orignal tremination protocol
zzz so we have a code 1: Termination received. I think that's my preference, it's a little easier than an ack for me
orignal I prefer it too
zzz because with an ack, I have to remember what ack number I'm looking for
orignal we send it back to every termination, but 1
orignal let's do it
zzz just to review:
zzz QUIC says wait around for a while after closing. Whatever what you get, send another close
zzz the problem is "for a while". If you get a 'termination received' you can stop waiting
orignal I do it already
orignal if I'm in closing state I send termination again
orignal as we discussed
zzz I haven't done any of it yet
zzz but I think we're in agreement. I'll update the spec and try to code it, lets see how it works
orignal closing state might be up to 30 seconds
zzz one problem is now you have to decrypt the packets you get after closing, right? so you can see if it's a 'termination received' ?
orignal I decrypt as data packets
zzz ok. I promise I'll update the spec this week, no promises about coding it though
orignal but not sure if I actully do it. will check
zzz anything else on 2) ?
zzz anything else for the meeting?
orignal one more thing
orignal release
zzz yeah
orignal what are you going to enable there for SSU2?
zzz let's put that on the agenda for next week. I have some thoughts but nothing concrete yet. ok?
zzz until I know how solid things are, it's hard to make a recommendation
zzz ok great
orignal because if I start replacing SSU by SSU2 for everytbody I want to make sure no network split
orignal e.g. Java router will not be able to reach i2pd
zzz seems too early for that
orignal because i2pd's SSU is real shit
orignal SSU2 is better even now
zzz ok, let's see how it goes this week
zzz thanks, happy coding/testing
orignal obscuratus thank you for pointing to this bug
orignal will add check for valid host/port
obscuratus orignal: No problem.
orignal will commit