dwdjonas’, https://docs.google.com/spreadsheets/d/1-IBY4NhXbdZ_TqCCZkXrMgqq63yytaxXqJKhh47J1vI/edit?usp=sharing - but poke it about to see if I've cleared the old data off it correctly first. I think I have, but ENOQA.
chronosx88has left
chronosx88has joined
krauqhas left
krauqhas joined
NosoyHacker404has left
chronosx88has left
chronosx88has joined
intosihas left
jonas’dwd, I need your approval for +w, I sent a request
alex-a-sotohas left
alex-a-sotohas joined
intosihas joined
chronosx88has left
chronosx88has joined
chronosx88has left
chronosx88has joined
lorddavidiiihas joined
jonas’mathieui> whoops I forgot to look at pending PRs before submitting my MIX patches, but it looks like there’s no overlap at least
with which of the current PRs do you see a conflict?
mathieuijonas’, no conflict, but I saw a few MIX-related ones after looking
jonas’dwd, nevermind, I forked it
jonas’mathieui, which ones?
dwdjonas’, Oh, sorry, didn't think of that.
mathieuijonas’, only #856 actually
jonas’right, that one’s not gonna happen soon anyway
mathieuiyup
intosihas left
mathieuithere are deeper changes in other ones that I didn’t want to get into, e.g. reusing 0424 in 0407 section 4 instead of providing an ad-hoc mechanism+namespace
jonas’Ge0rG, can you obtain approval by the author of '401 for: https://gitlab.com/xsf/xeps/-/merge_requests/33
jonas’cc @ marc
etahas left
Marandahas left
etahas joined
Marandahas joined
neshtaxmpphas left
peetahhas left
peetahhas joined
lovetoxhas joined
intosihas joined
marcjonas’: okay for me if that's the MR Ge0rG was talking about last time
jonas’marc, please check if it really is that PR :)
marcjonas’: yep, later. I'm on mobile atm
jonas’marc, thank you
chronosx88has left
chronosx88has joined
intosihas left
Lancehas joined
Yagizahas left
vanitasvitaehas left
vanitasvitaehas joined
alex-a-sotohas left
alex-a-sotohas joined
florettahas left
peetahhas left
peetahhas joined
lskdjfhas left
lskdjfhas joined
lorddavidiiihas left
intosihas joined
Ge0rGit's the one splitting out IBR with token from 0401. I'm not so sure any more about the title, maybe I overdid it a bit
florettahas joined
lskdjfhas left
lskdjfhas joined
lskdjfhas left
lskdjfhas joined
lovetoxhas left
lskdjfhas left
lskdjfhas joined
lskdjfhas left
lskdjfhas joined
adiaholichas left
adiaholichas joined
lskdjfhas left
lskdjfhas joined
intosihas left
lskdjfhas left
lskdjfhas joined
davidhas left
davidhas joined
lorddavidiiihas joined
davidhas left
davidhas joined
ZashRe https://github.com/xsf/xeps/pull/1008
Does anyone actually enforce or even handle that?
SamWhitedI do in my implementation (just by virtue of using a uint16 which in Go wraps around if you overflow it)
SamWhitedI can't imagine it's likely to be something that's hit often (or ever) though.
ZashYeah, it goes into "don't use IBB for files that large" territory
ZashGiven a maximum block size of 65535 that's 4 GB. So, plz don't.
intosihas joined
SamWhitedI did look around and found several other implementations that explicitly handled it (Smack is the only one I remember looking at now though, but I think there were some of the python ones too). They used uint16
ZashI just looked at two and saw no trace of any overflow handling
neshtaxmpphas joined
Zashthis one seems to do stuff tho
moparisthebesthttps://i.imgflip.com/4oiu0k.jpg
SamWhitedyah, maybe it wasn't Smack, I don't see it now
mathieuiit is wrapped around in slixmpp afaik
SamWhitedah no, here it is: https://github.com/igniterealtime/Smack/blob/master/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSession.java#L759
focus121has left
focus121has joined
ZashIs that off-by-one?
SamWhitedAnd here it is for aioxmpp: https://github.com/horazont/aioxmpp/blob/devel/aioxmpp/ibb/service.py#L195-L196
SamWhitedYah, that looks off by 1 to me
ZashHaven't found anything in nbxmpp and Swiften tho
ZashNobody so far seems to have accidentally read it as a the positive subset of a signed integer, which I think is a thing somewhere else.
lskdjfhas left
lskdjfhas joined
stpeterhas joined
stpeterhas left
lskdjfhas left
lskdjfhas joined
intosihas left
lskdjfhas left
lskdjfhas joined
flowZash, good catch
Zashnp
SamWhitedYah, good eye; this is why I never use weird ternary constructs, I would never have noticed it in that mess of symbols and what not
flowI've just looked at the origin of this: it was introduced by henning in 2010
flowso it's a 10 year old bug you discovered \o/
Zash:D
SamWhitedNice, Zash gets all the points
lovetoxhas joined
flowof course i wonder if this ever caused an troubles :) but that doesn't mean that this shouldn't get fixed
SamWhitedHeh, yah, I doubt it
mathieuiZash, oh, slixmpp is also off by one as well I guess
SamWhitedFWIW, java does integer wraparound too IIRC, so that could probably just be an "unsigned short" or whatever it would be called in java land
SamWhitedNice; multiple off by ones fixed today! As they say, the three hard problems in computer science are naming things and off by one errors
Andrzejhas left
mathieuitricked by a modulo
Andrzejhas joined
neshtaxmpphas left
moparisthebestSamWhited, java doesn't have unsigned anything
SamWhitedoh, nevermind then. Been a while since I did any Java
Andrzejhas left
Andrzejhas joined
adiaholichas left
adiaholichas joined
ZashSamWhited: nice chain of events you set in motion here :)
SamWhitedYah that worked out nicely; I thought it was just going to clarify a typo fix, good teamwork turning it into bugfixes
mathieuiI just hope nobody ran into that, as it would reject stanzas with the 65535 sequence number
flowSamWhited, the problem is that there is no uint16_t in java land
SamWhitedI can't imagine anyone actually sends multi-gig files (assuming a reasonable blocksize) and doesn't get bored and cancel or have some other hickup
SamWhitedBut who knows
mathieuiThe best file transport!
SamWhitedI'm sure one crazy person somewhere has done it
mathieuiDoing 4k livestreams over IBB
chronosx88has left
chronosx88has joined
ZashAbsolute madlad
Andrzejhas left
Shellhas joined
Andrzejhas joined
intosihas joined
SamWhitedTangentially related: has anyone ever experimented with different blocksizes to see what a good default is? I just kind of guessed that ~2k was probably a good default, but I really have no idea
ZashFor IBB? 🤷
adiaholichas left
adiaholichas joined
moparisthebestsomewhat related to stanza size limits I reckon
SamWhitedI assumed ethernet MUT would be smaller than TCP and would be too small to actually fit a stanza in (without drastically increasing the overhead just from the XML), but maybe wifi would be a better thing to lookup
SamWhitedMTU, even
Zash4k block gets you a ~5.5k message stanza, that's about half of the 10k minimum stanza size limit. should be safe, even with longer jids.
Andrzejhas left
Andrzejhas joined
Zasha JID can be up to 3k in theory...
SamWhitedThat sounds good to me, maybe I'll up mine which I think was at 2k
Andrzejhas left
Andrzejhas joined
moparisthebestthat would be a case of "some people get what they deserve" (re: 3k JIDs)
Zashdns limits you to 255 or something for the hostpart, so more like 1023@255/1023
SamWhitedCould be a hostname though
SamWhitedNo idea if there are limits there
Arnehas left
Andrzejhas left
Andrzejhas joined
ZashA message stanza with 2x 1023@255/1023, 2x UUID and 4k IBB block turns into 12.5k
Andrzejhas left
Andrzejhas joined
NosoyHacker404has joined
Zashheh, with 2k block it looks like 9.8k
chronosx88has left
chronosx88has joined
lskdjfhas left
lskdjfhas joined
Zashso if you're absolutely want to stay clear of the strictest stanza size limits then 2k blocks would do.
Andrzejhas left
Andrzejhas joined
SamWhitedmeh, if you have a 3k JID you can manually set the block size, that's definitely not a thing I'm interested in optimizing for
lskdjfhas left
ZashWould be cool to have real network troughput stats ;)
intosihas left
marcjonas’, +1 for the PR from Ge0rG
Arnehas joined
raghavgururajanhas joined
nycohas joined
jonas’marc: thabks
jonas’marc: thanks
jonas’Path-MTU!
werdanhas joined
krauqhas left
ZashMmmmmmm. I've observed MUC participants in loops where they request the vcard of someone, then get their connection closed because the avatar was larger than the stanza size limit
ZashMuch fun.
krauqhas joined
lskdjfhas joined
lskdjfhas left
lskdjfhas joined
stpeterhas joined
stpeterhas left
lskdjfhas left
lskdjfhas joined
krauqhas left
krauqhas joined
moparisthebestbig avatar crashes MUC's you say ? >:)
jonas’khekhekhe
jonas’fun fact: you cannot kick MUCs off the s.j.n list that way (except the one with the evil avatar) because s.j.n shuffles the list of MUCs during each scan :)
jonas’(even if it caused a longer outage of the s2s connection or killed the c2s connection in a bad way or somesuch)
paulhas left
paulhas joined
Andrzejhas left
ZashWas there some point in advertising stanza size limits in stream-features or somesuch?
lskdjfhas left
SamWhitedThat would be really nice; at the very least it would let clients show a rough max-message-size while you're typing.
lorddavidiiihas left
intosihas joined
chronosx88has left
chronosx88has joined
dwdFWIW, I assumed that stanza sizes were reasonable huge these days. Like 64k would be an absolute minimum. Didn't we say 10M in RFC 6120?
Kev10k
Zash10k
ZashProsody ships with a default of 10M by default, ejabberd with 256k for c2s and 512k for s2s IIRC
ZashDunno about others
lskdjfhas joined
ZashEh, default defaults ftw
GuusI think Openfire does 2M.
antranigvhas left
antranigvhas joined
Ge0rGSo we need Path MTU Discovery! Will s2s be terminated on oversized stanzas? Is there an error sent to the originating node?
dwdWith bandwidth and RAM sizes these days, I'd think IBB at 10k blocksizes would be fine. That'll yield a 1ms choke on a 80Mbit link, so you could probably increase that by a factor of ten without worrying.
ZashGe0rG: yes. maybe, but probably no.
lorddavidiiihas joined
ZashPush harder for s2s-198
Ge0rGdwd: not on german mobile "broadband"
waqashas joined
Ge0rGZash: won't help on stream errors
ZashWhy?
dwdGe0rG, So you don't want to much a PMTU discovery, you actually want a IBB blocksize negotiation.
ZashYou want PMTU discovery for vcards/avatars!
SamWhitedI think my implementation for blocksize "negotiation" was to just request the default, then cut it in half until they accept the transfer or it gets under some small minimum where we deam the XML encoding overhead is too high to justify bothering
dwdZash, But if you're on a slow link, do you even want the jumbo-avatar?
ZashWhy you want the multiple-choice 0084 allows
Ge0rGdwd: how would you do that for the involved servers?
neshtaxmpphas joined
dwdGe0rG, Hmmm, yes. But you probably want a path characteristics request, plus a stream feature for stanza limits. We talked of a path characteristic command for TLS a while back; one for stanza limits and 198 might be more useful.
intosihas left
Ge0rGdwd: all of the above, and a way to discover each hop on the way