-
Kev
Meeting with nothing on the agenda in ~55 minutes.
-
linuxwolf
w00t
-
MattJ
It took me a long time to work out "Today being Monday, tomorrow being Wednesday"
-
Kev
MattJ: Submitted MAM yet?
-
MattJ
Not yet
-
ralphm
MattJ: +1 on stream:error everywhere
-
MattJ
Thanks, good to know I'm not just missing the point of that thread
-
MattJ
You MUST answer <iq> requests, but does that mean we shouldn't send a stream:error if there are any outstanding?
-
Kev
Oh, good question. Yes, I guess it does :)
-
ralphm
In Wokkel I just set up a general handler for that not-stanza-but-still-direct-child-of-the-stream-element-that-does-not-have-a-proper-name
-
linuxwolf
or you treat the stream:error as a "catastrophic failure", like a severed network … d-:
-
ralphm
linuxwolf: I do. In Wokkel, you get a Deferred back when sending out an IQ. If the current stream disconnects, the deferred is fired with an exception to that effect.
-
linuxwolf
/nod … it's what I've done just about everywhere, too
-
ralphm
mostly because you can't know what really happens
-
linuxwolf
if a server's at the point of emitting a stream:error, you have bigger problems than unanswered iq's
-
Kev
I think the order here is actually mandated.
-
Kev
Because the server must be processing the stanzas in order - so if you send <iq/><message><illegal/></message> ther server isn't allowed to process the message (and find there's an error) until it's finished with the iq.
-
Kev
Stream errors for server going down or whatever don't fit into this, I realise.
-
linuxwolf
right
-
ralphm
also http://xmpp.org/rfcs/rfc6121.html#roster-syntax-actions-push
-
linuxwolf
I rarely see the <illegal/>, but definitely see the crash (-:
-
ralphm
… which, in spite of the MUST, still allows for not sending a response
-
linuxwolf
graceful-crash?
-
MattJ
Kev, define "finished" (with the iq)
-
linuxwolf
(-:
-
MattJ
Kev, does handling in order require responding in order?
-
Kev
Of course.
-
ralphm
Of course roster pushes in any new design would be <message/> stanzas
-
Kev
It's not handled until the server has replied.
-
MattJ
Ok, so...
-
linuxwolf
ralphm: everything is pubsub
-
ralphm
linuxwolf: hah, earlier specs for pubsub used IQs for notifications
-
MattJ
Kev, if you send a vcard request to an occupant in a MUC room, the server isn't allowed to process any further stanzas from you until that person's server responds with their vcard?
-
ralphm
linuxwolf: this is one reason I think that's a bad idea
-
linuxwolf
in any new design, we can just do <publish/>, <subscribe/>, and <notify/> as TLS (top-level-stanzas)
-
linuxwolf
"just"
-
ralphm
linuxwolf: I guess we'd just drop '<presence/>' and keep '<message/>' and '<iq/>'.
-
linuxwolf
yeah, pretty much (-:
-
Kev
MattJ: It's not the server that's processing the iq.
-
MattJ
So we can have a stream:error before the iq is responded to?
-
Kev
Yes.
-
MattJ
Good
-
ralphm
Of course
-
Kev
Just not before an iq is responded to by the server.
-
Kev
A roster get or whatever.
-
linuxwolf
s/an iq is/an iq addressed to the server is/ ?
-
Kev
Right.
-
MattJ
I think you're talking about something aside from the main issue
-
Kev
Naturally.
-
MattJ
My original question was whether you could close a stream with unhandled iqs. We've establised a definite 'yes' for iqs sent to non-server JIDs
-
MattJ
and I see no reason a server must reply to an iq, if it's invalid for example, instead of throwing a stream error
-
ralphm
Kev: are you also saying that responses to iqs to the same entity should come back in order?
-
stpeter
gosh, its seems that I've missed a fun discussion
-
MattJ
and I'm thirdly not convinced (but admittedly on more shaky ground) that iqs must be responded to in order
-
MattJ
because I don't equate "handling" with "responding"
-
linuxwolf
MattJ: I agree
-
ralphm
MattJ: agreed, that seems QUITE problematic, to me.
-
MattJ
stpeter, pre-council meeting :P
-
linuxwolf
especially if dealing with large scale
- stpeter grumbles about a conference call that someone expected him to be on right now
-
ralphm
I think in-order processing is only about accepting stanzas in order and routing them in the same order as much as possible. Nothing beyond that.
-
ralphm
stpeter: claim atmospheric issues
-
MattJ
or claim it's Tuesday
-
stpeter
damn proprietary Outlook invites
-
linuxwolf
hah
-
linuxwolf
fumso
-
linuxwolf
(f*** u microsoft office!)
-
Kev
Righty.
-
Kev
Shall we have our not-a-meeting, then?
-
Kev
1) Roll call.
-
Kev
I'm here.
-
linuxwolf
presente
- stpeter is still on his conference call
-
MattJ
Gift
-
ralphm
hi
-
Kev
Tobias: ?
-
Tobias
kev
-
Tobias
ah..council meeting
-
Tobias
youp..i'm here
-
Kev
Did anyone have anything for the agenda?
-
stpeter
ok my call is done
-
Kev
I'll add GSoC, then
-
Kev
2) GSoC
-
Kev
The applications are in, thanks to the people who answered my call for mentors and have commented on proposals.
-
Kev
I submitted the slot requests to Google yesterday, based on the applications people volunteered to mentor and the comments on the proposals.
-
Kev
There's still time for people to comment on proposals if they want, but I'd rather they didn't juggle anything about too much, as we're pretty much done at this point (apart from the Jitsi guys deciding which proposals they want to accept - but they've chosen a number).
-
Tobias
ok
-
Kev
That's about it.
-
linuxwolf
nice
-
Kev
We've asked for more slots than is usual for us, so I'm expecting Carol not to be able to hand them all over, but hey ho.
-
linuxwolf
(-:
-
stpeter
Kev: would you be so kind as to point me to the message on the GSoC list that says exactly where we complete certain tasks? or is it all somewhere at google.com and I just need to log in someplace?
-
Kev
When that happens I'll look at the comments and scores people have left on the proposals and try to pick the ones we select somewhat fairly.
-
Kev
google-melange.com
-
stpeter
ah ok
-
stpeter
thanks
-
Kev
I think that's everything GSoCcish.
-
Kev
3) Date of next meeting.
-
Kev
SBTSBC
-
Kev
?
-
linuxwolf
wfm
-
linuxwolf
hopefully MAM will be a topic of discussion
-
linuxwolf
/zing
-
Kev
We can but hope. Nearly 50% of the XSF's GSoC applications were to work on MAM support.
-
stpeter
heh
-
Kev
Right, SBTSBC it is.
-
Kev
4) AOB?
-
ralphm
nope
-
linuxwolf
nada
-
MattJ
None
-
Tobias
nope
-
Kev
Sounds good then.
-
stpeter
ok thanks guys, I'm slowly getting back into mostly-xmpp mode, so I'll start working on things of interest here again soon
-
Kev
Thanks all.
- Kev bangs the gavel.
-
ralphm
Kev: I'm still interested in your responses to the pre-meeting discussion
-
Kev
ralphm: Interested in what way?
- stpeter closes his computer and heads to the light rail station
-
ralphm
Kev: well, for example, the question I asked
-
Kev
That's not entirely unambigous at this point :p
-
Kev
stpeter: Enjoy.
- linuxwolf goes for caffeine
-
ralphm
ralphm: Kev: are you also saying that responses to iqs to the same entity should come back in order?
-
ralphm
(and the stuff following that)
-
Kev
Yes.
-
Kev
The entity is obliged to process them in order, their server is obliged to send them to your server in order, and your server is obliged to send them to you in order.
-
ralphm
Kev: I'll rephrase
-
ralphm
Kev: are you saying that responses to iqs should come back in the same order as the requests?
-
Kev
To a given bare JID? Yes.
-
ralphm
As I said before, that seems problematic.
-
Kev
I don't see why.
-
Kev
It's what 6120 says you need to do.
-
ralphm
If I send an IQ to an entity that then goes out to request a web resource to produce a response, and I send it another unrelated IQ that can be responded to immediately, that is really an issue.
-
Kev
The second iq must be pipelined until the first is processed.
-
ralphm
I'm not sure if I agree this is what RFC 6120 says, but I do think it is stupid
-
ralphm
and I don't see why you'd want that kind of behaviour
-
Kev
Interesting, I'm wrong, I think.
-
Kev
What I say only holds true if the entity is a server.
-
ralphm
Really? Also, define 'server'
-
Kev
If it's a client, there seems to be no restriction on the processing order of data it receives.
-
Kev
"Thing at the S end of a C2S link, or at the end of an S2S link"
-
ralphm
also, 'processing' is rather vague
-
ralphm
you also mentioned MUC as an example
-
Kev
Did I?
-
ralphm
Oh, no MattJ did
-
ralphm
He mentioned waiting for the response to an vcard request
-
ralphm
a MUC will send this request on to the actual occupant. Do all groupchat messages have to be queued until the response can be sent back?
-
ralphm
(for the requesting occupant)
-
Kev
That's a fun question.
-
ralphm
RFC 6120 says:
-
ralphm
If the server's processing of a particular request could have an effect on its processing of subsequent data it might receive over that input stream (e.g., enforcement of communication policies), it MUST suspend processing of subsequent data until it has processed the request.
-
ralphm
I believe that the 'if' is rather (intentionally) vague, and not as strict as you seem to make it out to be.
-
Kev
Right.
-
ralphm
e.g. I'd say it does apply for subsequent publish requests to the same node
-
Kev
It seems that the following cases are strictly linear:
-
ralphm
but not to different nodes, or any other unrelated iq or message
-
Kev
Sending anything to your bare JID Routing stanzas Receiving routed stanzas
-
Kev
And that for other requests it's vague.
-
Kev
Oh, no, I'm wrong.
-
Kev
To your bare JID or to the server itself.
-
ralphm
so that's all about delivery
-
ralphm
and I agree with *that*
-
Kev
So routing must always be in order, and processing must always be in order if it's your own server - but other entities can process in their own chosen way, subject to the note about subsequent data.
-
ralphm
I still don't want my server to not respond to an iq:version if it is still figuring out what my roster is if the order of requests is 1) roster 2) version
-
Kev
That much is entirely clear in 6120
-
Kev
It must process those requests in order.
-
MattJ
Process, or respond?
-
ralphm
what MattJ says
-
ralphm
this is crucial
-
ralphm
and not clear at all to me
-
Kev
They're one and the same.
-
MattJ
and if this is ambiguous, I think it should be made clear that handle/process != respond
-
ralphm
Kev: I strongly disagree
-
ralphm
Kev: and I don't see any text to support that
-
Kev
If I say "please get me my roster", you can't possibly claim to have completed processing of that request until you have given me my roster.
-
ralphm
Sure I can!
-
ralphm
If I set my mind to it.
-
ralphm
Kev: also, I am not sure that RFC 6120, section 10.1, shares your interpretation of 'processing' in this case.
-
ralphm
It does not talk about processing requests, but rather processing of stanzas.
-
Kev
"e.g., in-order processing of a roster get and initial presence as described in [XMPP‑IM]"
-
Kev
I'd say that was pretty unambiguous.
-
ralphm
I think that's because of the paragraph I pasted. So a business rule for this particular exchange of different related stanzas.
-
ralphm
So I agree on that example, but not on the general case.
-
Kev
But when taken with the complete bullet: "Stanzas sent by a client to its server or to its own bare JID for direct processing by the server (e.g., in-order processing of a roster get and initial presence as described in [XMPP‑IM])."
-
ralphm
there is no reason to delay responding to an iq:version request if you sent out a roster request before that
-
Kev
It is clear that's just an example of the general case to which this rule applies.
-
ralphm
Kev: so if the current text divides us in interpretation, what do you think about what I say in reality? I'd be more than happy to suggest we amend this.
-
Kev
I think this is a good rule.
-
ralphm
I think it is a nightmare.
-
Kev
I think it's possible to find cases where it doesn't serve a purpose (as in your example), but I don't think it's harmful, and I think it's much simpler than trying to create a list of all requests that must be processed in order, which requests they must be processed in order with and which can pass through, etc.
-
Kev
ralphm: In your particular example it's really easy for the client to just request the version first, if response to that is more urgent than getting its roster :)
-
ralphm
Kev: seriously?
-
ralphm
Kev: so an entity should guess how much time it takes for a server to respond to unrelated queries and order them accordingly before sending them out?
-
Kev
No, not really, because just about all queries a client sends to a server it's going to get responses to ~instantly anyway.
-
Kev
Typically how many requests does a client make of its server? Roster, private, vcard, version maybe? These are all going to get processed quickly.
-
Kev
And for heavy processing platforms (i.e. not the clients own server), these rules don't apply.
-
ralphm
I'm talking about XMPP Core, not necessarily about XMPP IM. So while such behaviour might be ok for IM clients, I'd certainly don't want to have such a thing anywhere that generic.
-
linuxwolf
Kev: disco
-
Kev
linuxwolf: Disco should return instantly too.
-
Kev
Unless you were just adding it to the list, rather than a counterpoint, in which case...right.
-
linuxwolf
this "instantly" is a big assumption, IMO
-
linuxwolf
and I was adding to the list
-
Kev
disco#items to a MUC service, on the other hand, isn't subject to these rules.
-
ralphm
Kev: I'm willing to bet that most server developers strongly disagree with your stance on this.
-
linuxwolf
they do
-
ralphm
Kev: also, a muc service could be part of the server you are talking to. I.e. council@xmpp.org *and* ralphm@xmpp.org.
-
Kev
ralphm: It could, this is true.
-
linuxwolf
in any case, if you want to be reasonably sure things are fully handled in the proper order, you wait for the previous iq before sending the next
-
linuxwolf
and that is something we ought to recommend somewhere anyway
-
Kev
linuxwolf: Well, no, you don't need to, because 6120 says it'll do it for you.
-
linuxwolf
Kev: as this discussion points out, your stance is not universally accepted
-
ralphm
linuxwolf: so that's really a business rule of particular exchanges, not of all message/iq processing, right?
-
linuxwolf
processing is a vague term
-
linuxwolf
ralphm: true, but at least for my experiences, it's true far more often than it's false
-
ralphm
linuxwolf: but individually, per types of exchanges (say presence/roster v.s. iq version v.s. pubsub publish)
-
ralphm
linuxwolf: not on all incoming messages/iqs
-
linuxwolf
ralphm: true
-
Kev
linuxwolf: It's not vague, at least for iqs it's fairly clearly defined.
-
Kev
And it includes sending the response.
-
ralphm
Kev: if people disagree with an interpretation (in general) it is not clearly defined
-
linuxwolf
ralphm: it comes down to what's important to "ensure" is handled
-
Kev
I don't see how you can possibly interprep 6120 to not think iq processing includes sending the result.
-
ralphm
Kev: see above.
-
Kev
ralphm: Which part of the text makes you think it doesn't include the return?
-
Kev
"in general the server will respond to the IQ stanza"
-
linuxwolf
Kev: I don't think processing means it has to be completed; it has to be started in the received order, but not necessarily finished
-
linuxwolf
which therefore means it doesn't necessarily have to respond in the received order
-
ralphm
Kev: the part that says "If the server's processing of a particular request could have an effect on its processing of subsequent data it might receive over that input stream"
-
ralphm
Kev: which for my example is false.
-
Kev
ralphm: Yes, that is for stanzas that don't fall under the previous list.
-
ralphm
Kev: not in my world
-
Kev
"In-order processing applies (a) to any XML elements used to negotiate and manage XML streams, and (b) to all uses of XML stanzas"
-
Kev
That really doesn't seem ambiguous.
-
ralphm
as long as you talk about stanzas, it is about delivery
-
ralphm
in my opinion
-
Kev
And to make sure people don't make that mistake while reading it, it then has bullet 1 in the following list to say that it also includes the processing.
-
linuxwolf
I still think it comes down to how one defines processing
-
ralphm
Let's put it differently: I am going to suggest this text gets changed.
-
ralphm
because a) servers don't work that way, b) I think it is undesirable
-
ralphm
c) it might even be harmful
-
ralphm
it seems MattJ and linuxwolf agree with me. I'm curious about other server devs of course. I also think my interpretation shouldn't impact clients at all.
-
Kev
Other than changing the defined behaviour of the server.
-
ralphm
Kev: do you clients send out an iq and ignore or error on any other stanza from the same (local?) entity until that iq gets a response?
-
ralphm
do you*r*
-
Kev
Ignore or error? No. I'm not convinced it won't change behaviour, though, if the client e.g. doesn't know its own nickname before it tries to join bookmarked rooms.
-
ralphm
Kev: and to be sure: we don't agree that it changes the behaviour. My take is that it clarifies it.
-
ralphm
Kev: in general, if you need the output of one request as the input for another, you require order on the client side. That doesn't impact this at all.
-
linuxwolf
Kev: now this is just silliness … of course you can't act on data you don't yet know about, but that doesn't mean you can't handle an iq:version returning before that vcard or PEP item retrieve
-
Kev
linuxwolf: Unless the PEP item retrieve is also part of determining your nickname for joining MUCs, for example.
-
Kev
Or if the PEP retrieve is for your bookmarks and you get those before you know your nickname.
-
linuxwolf
Kev: right … but how does the iq:version impact this? Does swift break if it got the iq:version response before it got the PEP item-retrieve, even though you (theoretically) sent them in reverse order?
-
ralphm
Kev: again, if you need all responses, then yes, you should wait for all of them
-
Kev
Of course, clients could be written (subject to significant additional latency) to deal with not having guaranteed order - but at the moment 6120 says that the server will process its requests in order, and as such they don't need to.
-
linuxwolf
there is no additional latency
-
Kev
linuxwolf: There is if you're suggesting that where ordering matters you must wait for a reply to the previous before requsting the next, which you suggested earlier.
-
ralphm
Kev: only if you need the reponse!
-
linuxwolf
Kev: for those things that matter, you'd have to no matter what!
-
linuxwolf
I think we're agreed you can't join rooms until you know what rooms to join, yes?
-
linuxwolf
and, you can't join room until you know what the user's preferred and/or registered nick is, yes?
-
linuxwolf
but, that doesn't mean the client must way for the bookmark request to complete ...
-
linuxwolf
… before requesting the PEP-registered nickname
-
ralphm
Kev: what linuxwolf and I are saying actually improves latency.
-
ralphm
and also wastes less server resources as a bonus
-
linuxwolf
nor does it mean you must wait for one particular MUC room to respond to your register get before you send the next
-
linuxwolf
for those things I MUST have the result, they get sent serially, pending said response
-
Kev
Except 6120 says you don't need to do that, because the server will enforce ordering.
-
Kev
Sure, you *can* do it, but you don't need it.
-
ralphm
assuming again that the MUC room is local, I'd say that communicating with two rooms is talking to different (bare) JIDs, so that doesn't apply.
-
ralphm
Kev: you keep repeating that the RFC says that, but it is your interpretation thereof
-
Kev
Sure, based on reading the words in it :p
-
Kev
The only way around it is if you start twisting 'processing' to mean 'doing some things it was asked to do, but not all of them'.
-
ralphm
Kev: accept that other people might interpret words differently. If you hate that, provide functional tests for the next revision.
-
linuxwolf
Kev: yes, a lot of have
-
linuxwolf
because when you're dealing with 100k's to 1M's of users, it tend to need to
-
Kev
And elsewhere there's text that says, in a different context, that processing includes sending the reply.
-
ralphm
I have to eat now
-
ralphm
to be continued
-
linuxwolf
I need to get back to my day job
-
Kev
OK, I found that 6121 says that IQ processing includes sending the reply stanza when the request is sent to the bare JID (8.5.2.1.2) - I imagine we can find similar text for the other cases.
-
ralphm
it is too bad stpeter missed all of that
-
Tobias
there are logs
-
ralphm
oh, is that new?
-
stpeter
sure :)
- ralphm ducks
-
stpeter
http://xmpp.org:5290/muc_log/muc.xmpp.org/council/120411/
-
stpeter
will read later, but right now I'm deep in work on SASL and PRECIS
-
ralphm
yeah, I found them. I thought they were disfunctional
-
Tobias
they are also mentioned in the subject :)
-
stpeter
ralphm: they were for a little while, yes
-
stpeter
right, http://logs.xmpp.org/council/ is easier to remember :)
-
ralphm
Tobias: that's how I found them. Obviously I knew we used to have them
-
Tobias
somehow swift disallows copying the URL out of there :/
-
Tobias
must be a security feature
-
ralphm
Tobias: maybe you tried to do it out-of-order
-
Tobias
heh
-
Kev
Yeah, I'm not sure why that doesn't work. Patches welcome.
-
ralphm
stpeter: by the way, the calendar entry for the council meeting was an hour late
-
stpeter
damn timezones
-
Kev
1500UTC we're meeting at these days.
-
stpeter
it *seemed* wrong when I typed in 16:00
-
stpeter
but I just copied that over from previous meetings
-
ralphm
it was correct in our winter
-
stpeter
fixed for next week's meeting
-
ralphm
stpeter: really? I don't see an event next week.
-
stpeter
ralphm: "refresh all calendars" worked in my calendaring program
-
linuxwolf
hrm … it's not showing up for me, either
-
linuxwolf
the XSF Calendar or the XMPP Council Calendar?
-
ralphm
guess google doesn't pull it often or something
-
ralphm
I'm using the latter
-
stpeter
clearly we need calendaring over pubsub :P
-
linuxwolf
if I use < http://xmpp.org/xsf/XSF.ics >, then I see it … but I was originally using < http://xmpp.org/xsf/xsf-all.ics >
-
stpeter
hmm
-
linuxwolf
the latter now emits a "fatal error"
-
stpeter
I always use the files at http://xmpp.org/calendar/
-
ralphm
why does everything move!
-
stpeter
heh
-
ralphm
and not leave any forwarding address
- stpeter puts a redirect in place
-
ralphm
COOL URLS DON'T CHANGE!
-
ralphm
damnit
-
ralphm
/rant
-
linuxwolf
< http://maddox.xmission.com/ >
-
stpeter
actually lighttpd already had a redirect in place: "^/xsf/XSF.ics" => "http://xmpp.org/calendar/xsf-all.ics"
-
linuxwolf
hrmph
-
linuxwolf
ah … calendar
-
stpeter
why do people use applications that can't follow http redirects!
-
stpeter
COOL APPS FOLLOW SPECS!
-
linuxwolf
I don't know if I can trust this calendar
-
linuxwolf
it's not using TLS d-:
-
stpeter
true
-
stpeter
TLS everywhere!
-
stpeter
™
-
linuxwolf
ALL THE COOL THINGS USE TLS
-
linuxwolf
UTF-8 Everywhere™®
-
stpeter
:)
-
stpeter
:)™
-
linuxwolf
I now realize our lunch conversation is bleeding into this place
-
stpeter
yepper!
-
linuxwolf
I think I need another meeting
-
stpeter
I'm sure you'll have another one soon enough
-
linuxwolf
indubitably