Process-one
ejabberd
ejabberd@conference.process-one.net
Monday, March 5, 2018< ^ >
zinid has set the subject to: ejabberd discussions: https://docs.ejabberd.im
Room Configuration
Room Occupants

GMT+0
[00:02:13] joekokker leaves the room
[00:21:06] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[00:28:34] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[00:30:40] Odin leaves the room
[00:42:17] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[00:55:13] Odin leaves the room
[01:12:00] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[01:15:48] joekokker leaves the room
[01:36:18] jere leaves the room
[01:38:29] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[01:39:59] joekokker leaves the room: Replaced by new connection
[01:47:49] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[02:04:43] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[02:09:38] uc leaves the room
[02:12:53] Neustradamus leaves the room
[02:15:39] Neustradamus leaves the room
[02:27:30] carlos leaves the room
[02:35:32] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[02:37:57] alacer leaves the room: Stream closed by us: Replaced by new connection (conflict)
[02:41:39] Neustradamus leaves the room
[02:45:27] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[02:46:40] Neustradamus leaves the room
[02:49:39] Neustradamus leaves the room
[02:52:09] Neustradamus leaves the room
[02:54:10] Neustradamus leaves the room
[02:55:56] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[03:01:40] Neustradamus leaves the room
[03:04:10] Neustradamus leaves the room
[03:05:31] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[03:32:16] Neustradamus leaves the room
[03:46:40] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[03:48:10] Odin leaves the room: unknown reason
[03:52:18] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[04:05:46] Neustradamus leaves the room
[04:11:11] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[04:17:13] Neustradamus leaves the room
[04:22:14] Odin leaves the room
[04:26:19] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[04:28:40] Neustradamus leaves the room
[04:33:34] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[04:44:10] bbhoss leaves the room
[04:47:10] Neustradamus leaves the room
[04:48:08] Marzanna leaves the room
[05:01:44] frainz leaves the room: Stream closed by us: Replaced by new connection (conflict)
[05:09:12] lukas leaves the room: Stream closed by us: Replaced by new connection (conflict)
[05:16:46] Neustradamus leaves the room
[05:20:52] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[05:22:23] Odin leaves the room
[05:27:16] Odin leaves the room: Stream closed by us: Replaced by new connection (conflict)
[05:27:20] <mnr11> Whats wrong with this IQ:
[05:27:26] <mnr11>         IQ = #iq{from = From, to = JID, type = get, sub_els=[#xmlel{name = <<"ping">>,attrs=[{<<"xmlns">>,<<"urn:xmpp:ping">>}]}]} ?
[05:28:18] <mnr11> with real data :
[05:28:21] <mnr11> {iq,<<>>,get,<<>>,
                      {jid,<<"b1">>,<<"localhost">>,
                           <<"69856427685472808724">>,<<"b1">>,
                           <<"localhost">>,<<"69856427685472808724">>},
                      {jid,<<"m1">>,<<"localhost">>,<<>>,<<"m1">>,
                           <<"localhost">>,<<>>},
                      [{xmlel,<<"ping">>,
                              [{<<"xmlns">>,<<"urn:xmpp:ping">>}],
                              []}],
                      #{}}
[05:30:51] ludo leaves the room: Disconnected: Replaced by new connection
[05:32:46] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[05:33:15] Neustradamus leaves the room
[05:40:40] Neustradamus leaves the room
[05:40:54] lukas leaves the room: Stream closed by us: Replaced by new connection (conflict)
[05:42:20] pprrks leaves the room
[05:45:01] uc leaves the room
[05:45:20] lukas leaves the room: Stream closed by us: Replaced by new connection (conflict)
[05:48:44] robert_mobile leaves the room: Stream closed by us: Replaced by new connection (conflict)
[05:51:40] Neustradamus leaves the room
[05:55:43] ludo leaves the room
[06:20:24] ludo leaves the room: Disconnected: Replaced by new connection
[06:24:16] ludo leaves the room: Disconnected: Replaced by new connection
[06:24:36] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:25:40] uio leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:32:58] <zinid> Holger: can you dump the state somewhere?
[06:34:02] ludo leaves the room
[06:34:44] <zinid> mnr11: `id` attribute is required in iq stanzas
[06:36:10] <zinid> Holger: ah, seems like you found and fixed the issue already
[06:37:55] <mnr11> zinid, How should I generate the ID, or where can I get it?
[06:39:41] alacer leaves the room: Stream closed by us: Replaced by new connection (conflict)
[06:40:17] <zinid> You should use route_iq
[06:41:37] hlad leaves the room
[06:41:39] hlad leaves the room
[06:41:44] <mnr11> OK, I was trying that too
[06:41:52] zuglufttier leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:42:43] <Holger> zinid: No that wasn't the issue, just something I stumbled over while looking into the issue.
[06:42:43] <zinid> So you failed (due to lack of knowledge) and decided to invent a wheel?
[06:43:34] <zinid> Holger: more likely updated state is not returned somewhere
[06:43:34] Neustradamus leaves the room
[06:43:51] Licaon_Kter leaves the room: Stream closed by us: Replaced by new connection (conflict)
[06:46:46] <mnr11> zinid, here's the code https://pastebin.com/eQQ2MXqD
[06:47:14] uio leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:48:33] <mnr11> couldn't fix that, so I was trying it diffrently
[06:50:52] <zinid> gosh
[06:51:18] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:51:32] <zinid> mnr11, uncomment line 29, remove other shit, and do:
ejabberd_router:route_iq(IQ, no_matter, self(), 10)
[06:52:43] <zinid> also, did you read this? https://docs.ejabberd.im/developer/guide/#modules
[06:55:02] <mnr11> Just a glance , I need to read it thoroughly
[06:55:57] <zinid> seems like you also have no idea what gen_server is
[06:56:06] <zinid> you really need to read some Erlang basics
[06:56:38] <zinid> you will write shit with such scarce knowledge, don't you see
[06:56:57] Akasch leaves the room: Replaced by new connection
[06:57:26] <zinid> (should I mention again that you must not ping)
[06:57:35] marzanna leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[06:58:03] <zinid> Holger, so you destroyed that process already?
[06:58:47] <Holger> zinid: Nope, I can paste the state later today.
[06:58:58] <zinid> Holger, ah, ok, yes, would be nice
[07:00:45] Neustradamus leaves the room
[07:01:14] <mnr11> OK, I'm gonna stop trying to get it with pinging
[07:02:20] <mnr11> So, what procedure should I follow?
[07:02:29] <zinid> mod_stream_mgmt
[07:02:42] <zinid> if default ack timeout is too big for you, set it to 10 seconds
[07:03:09] <mnr11> would it be efficient?
[07:03:21] <zinid> hell no
[07:03:33] <mnr11> I guessed so
[07:04:35] <zinid> just leave mod_stream_mgmt alone and call it a day?
[07:07:45] <mnr11> zinid, The scenario here is mod_stream_mgmt detects the connection after the timeout, then may be the messages could be get through push notification (not sure how) but before the timeout it waits for resumption and the message sending happens normally if the connection is resumed  
[07:07:46] ludo leaves the room
[07:08:05] <Holger> The problem with a short ACK timeout is that you'll kill legitimate connections. Mobile TCP can be slooow.
[07:08:56] <Holger> mnr11: While mod_stream_mgmt waits for the timeout, push notifications are generated.
[07:09:15] <zinid> mnr11, you see, if mod_stream_mgmt detects timeout that means your mobile is out of receiption, pushes will not work neither
[07:09:34] <zinid> because mobile is not connected (switching networks or something)
[07:09:40] <Holger> mnr11: You don't want the client to resume?
[07:10:04] <mnr11> Ofcourse I want the resume.
[07:10:44] suzyo leaves the room
[07:11:21] <mnr11> Like in Facebook, whatsapp, they send all the messages through push notification if one client goes offline just for a second  
[07:11:34] <Holger> Sigh.
[07:12:13] <Holger> mnr11: There's NO WAY for them to detect a client went offline within a second.
[07:12:25] <mnr11> May be I'm not being able explain it correctly what I'm not understanding :)
[07:12:46] <Holger> mnr11: One thing you could do is just generating a push notification on every message even if your client is online.
[07:13:09] <mnr11> No thats not what I want
[07:13:27] <Holger> Yes it also wouldn't help much.
[07:13:32] <mnr11> Not in one second may be in couple of second for sure
[07:13:48] <Holger> For sure not.
[07:13:51] <Holger> You can't.
[07:13:53] <mnr11> I have tested it several times
[07:13:58] <Holger> Yes.
[07:14:05] <Holger> Your tests are flawed.
[07:14:06] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[07:14:32] <mnr11> Should I explain the scenario in details for the test?
[07:14:42] <Holger> No.
[07:15:00] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[07:15:09] <mnr11> Ok
[07:15:27] <Holger> Assume I have a slow connection, so a round trip from the server to my client and back takes 30 seconds.
[07:15:46] <Holger> Do we agree this can easily happen on mobile?
[07:16:11] <mnr11> Yes its possible
[07:16:19] <zinid> and you overload such slow connection with more traffic, great idea
[07:16:25] <Holger> Then please explain how anyone could detect a lost connection in less than 30 seconds.
[07:17:22] <mnr11> Then I couldn't explain the term/scenario may be
[07:17:25] <Holger> Either way I still have no idea at all how your ping timeout is different from mod_stream_mgmt's ACK timeout.
[07:17:31] ludo leaves the room
[07:19:43] <mnr11> Thats diffrent, cause I'm very noob in this arena, so I was trying what makes sense to me
[07:20:06] ThUnD3r|Gr33n leaves the room: Connection failed: timeout
[07:21:12] <mnr11> I saw in whatsapp if two user is connected then one goes offine for a second and minimize the app (I mean in the background)
[07:21:35] <zinid> what "goes offline" means in this scenario?
[07:21:37] <Holger> After sending a stanza, mod_stream_mgmt sends <r/> and then waits for <a/>. This is like ping and pong.
[07:21:49] hlad leaves the room
[07:21:51] hlad leaves the room
[07:21:59] <mnr11> I mean just disconnect the internet
[07:22:01] <zinid> you can just close sockets when minimizing app
[07:22:08] <zinid> you can do the same stupid shit
[07:22:34] <ThUnD3r|Gr33n®> !version emevth.no-ip.biz
[07:22:37] <Servant> ThUnD3r|Gr33n®: emevth.no-ip.biz is running ejabberd version 18.01.23 on unix/linux 3.4.113
[07:22:44] <zinid> !version zinid.ru
[07:22:44] <Servant> zinid: zinid.ru is running ejabberd version 18.01.129
[07:22:59] <Holger> What zinid said. Then the server will notice immediately. If the connection is currently fine.
[07:23:10] <mnr11> zinid, I don't get it, what same stupid thing
[07:23:18] <ThUnD3r|Gr33n®> !disco emevth.no-ip.bit
[07:23:19] <Holger> And yes that's what WhatsApp and friends are doing.
[07:23:24] <zinid> mnr11, closing sockets when app goes background
[07:23:34] <ThUnD3r|Gr33n®> !disco emevth.no-ip.biz
[07:23:38] <mnr11> ok thats waht they do?
[07:23:45] <zinid> you said that
[07:24:03] <Holger> I'm pretty sure they do.
[07:24:05] <zinid> otherwise, what
> I mean just disconnect the internet
means?
[07:24:10] <mnr11> I was just explaining scenario
[07:24:38] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[07:24:44] <zinid> Holger, because hibernation/dehibernation is so cheap?
[07:24:59] <zinid> I really don't understand this mobile world
[07:25:10] hlad leaves the room
[07:25:11] hlad leaves the room
[07:25:35] hlad leaves the room
[07:25:55] <zinid> not sure why you need server connections at all, just route everything via push servers
[07:26:14] ThUnD3r|Gr33n leaves the room: Connection failed: connection closed
[07:27:17] <mnr11> So, now the question is how can I close the socket, Lol
[07:27:23] hlad leaves the room
[07:27:25] hlad leaves the room
[07:27:36] <mnr11> You mean no XMPP server?
[07:27:59] <zinid> mnr11, what, java cannot close sockets?
[07:28:20] ThUnD3r|Gr33n leaves the room: Connection failed: connection closed
[07:28:34] <mnr11> Oh you mean from cient side.
[07:28:47] <Holger> zinid: My impression is, no matter what you do, regarding battery it makes no difference. Daniel built a Conversations variant that closes the socket immediately and the results for us were no different from keeping a persistent connection or whatever.
[07:28:53] <zinid> you will get other problems with such approach such as lagging UI, but seems like you're fine with that
[07:29:11] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[07:29:13] <zinid> Holger, sure, because polling is very effective
[07:29:22] <Holger> The only thing that does help in the first place is avoiding traffic (CSI).
[07:29:28] <zinid> it produces now cpu cycles if there is no event
[07:29:33] <zinid> yes
[07:29:36] <Holger> Right.
[07:29:45] <zinid> *no
[07:31:32] ThUnD3r|Gr33n leaves the room: Connection failed: connection closed
[07:34:38] carlos leaves the room
[07:50:15] robert_mobile leaves the room
[07:50:24] Odin leaves the room
[07:54:27] <mnr11> Do you guys use whatsapp?
[07:55:03] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[07:55:17] <mnr11> I'm not talking about Facebook because they might use diffrenet kind of tecnology
[07:55:48] <mnr11> I heard at first they used MQTT
[07:57:59] <flow> mnr11, whatsapp started with FunXMPP
[07:58:27] <mnr11> So, its a diffrent protocol?
[07:58:39] <mnr11> If you use whatsapp just send a message to a user and before that diconnect the internet
[07:59:12] <mnr11> and connect to the internet after couple of seconds
[07:59:22] <mnr11> see how you get the message.
[08:00:19] <mnr11> flow, is it their sort of custom protocol?
[08:01:17] pod leaves the room
[08:06:51] Odin leaves the room
[08:09:47] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[08:14:56] SouL leaves the room
[08:17:09] uio leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[08:19:02] ludo leaves the room: Disconnected: Replaced by new connection
[08:21:11] <Erl> Hello
[08:21:49] <Erl> how i can attomatucly add help room to new register jids on my ejabberd-2.1.11
[08:22:49] <Erl> i mean add help room aottomaticly to bookmarks for register new jids
[08:23:06] <zinid> mnr11, yes, FunXMPP is heavily modified XMPP
[08:26:39] pinky leaves the room: Stream reset by peer
[08:29:17] joekokker leaves the room
[08:31:32] hlad leaves the room
[08:31:34] hlad leaves the room
[08:33:02] <Erl> .
[08:33:33] frainz leaves the room
[08:33:48] <zinid> Erl, you have no answer because in general we don't provide support for 5-years outdated version
[08:33:48] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[08:35:01] <Erl> zinid: What to do if I do not know how to install your modern version
[08:36:13] <Erl> I hope to run the modern version but I do not know how to run it and errors that occur with me during its installation
[08:37:50] <zinid> what OS?
[08:38:27] <Erl> zinid: 14.04
[08:38:44] <zinid> Default Linux 14.04? 😀
[08:38:51] <Erl> Ubuntu
[08:39:11] <zinid> there are RPMs on process-one.net
[08:39:14] <zinid> oops
[08:39:16] <zinid> DEBs
[08:39:57] joekokker leaves the room
[08:40:05] <Erl> what the programe i well download
[08:40:13] <Erl> erlang 18 ?
[08:40:16] <zinid> https://www.process-one.net/en/ejabberd/downloads/
[08:40:21] <zinid> no
[08:40:48] <zinid> download the 64-bit deb package
[08:41:27] <Erl> https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/18.01/ejabberd_18.01-0_amd64.deb
[08:41:29] <Erl> this ?
[08:41:31] <zinid> yes
[08:41:41] <Erl> how install ?
[08:41:52] <zinid> don't you know how to install debs?
[08:41:59] <Erl> no
[08:42:04] <zinid> fuck
[08:42:04] <Erl> i dont know
[08:42:12] <Erl> im 15 years old
[08:42:15] <Erl> :'(
[08:42:43] zuglufttier leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[08:43:44] <zinid> dpkg -i ejabberd_18.01-0_amd64.deb
[08:43:44] ta leaves the room
[08:43:53] <zinid> but of course that's not all
[08:44:06] <zinid> you should check where the current version is installed first
[08:45:00] <Erl> Unpacking ejabberd (18.01-0) ...
Setting up ejabberd (18.01-0) ...
[08:45:20] <zinid> you will now get two versions running
[08:45:20] <Erl> it is work step
[08:45:24] <Erl> :-*
[08:45:31] <zinid> you should have removed the previous one first
[08:45:59] <Erl> zinid: ok i remove
[08:46:07] <zinid> remove what?
[08:46:19] <Erl> rm -fr ejabberd-2.1.11
[08:46:22] <zinid> how did you install previous version?
[08:46:22] <Erl> from root
[08:46:38] <zinid> no, you shouldn't do that, you will destroy your database
[08:46:52] <zinid> I'm also wondered, did you install ejabberd when you were 10 years old?
[08:47:26] <Erl> zinid: can you join to my vps ?
[08:47:30] <zinid> no
[08:47:34] <zinid> I don't do this for free
[08:47:39] <zinid> I'm not 15 years old
[08:48:14] <Erl> I do not want to prolong the time on you
[08:48:32] <Erl> So I wanted to do it on your own
[08:48:54] <zinid> just find where 2.1.x is installed
[08:48:56] <Erl> im deb the ejabberd
[08:49:03] <Erl> what i will work now ?
[08:49:08] <zinid> no
[08:49:20] <zinid> how or where 2.1.x is installed?
[08:49:35] <Erl> zinid: root
[08:49:41] <zinid> ok, I'm done
[08:50:19] <zinid> you won't be able to manage the server anyway
[08:50:29] <zinid> you're too young and stupid for this
[08:51:00] <Erl> yes
[08:51:02] <zinid> seems like you need general linux advice, join another conference for this
[08:51:10] <zinid> or ask on forums
[08:51:13] <Erl> yes
[08:52:03] <Erl> I just wanted to add automatic rooms to new users
[08:52:21] <zinid> you cannot do that even with newest ejabberd version
[08:53:28] <Erl> zinid: but the jid can add outomatic to new user
[08:53:47] <Erl> sush Translation bots
[08:53:54] <Erl> Translation google bots
[08:54:30] <Erl> melodytalk was enable automatic add jids Translation google bots to new users reg
[08:54:40] <zinid> so what?
[08:54:49] <Erl> Can I do it the same way?
[08:54:50] <zinid> they have a custom code or use mod_shared_roster
[08:55:10] <zinid> Erl, no you cannot, YOU CANNOT, YOU CANNOT
[08:55:26] <Erl> zinid: ok thank you
[08:55:30] <Erl> zinid: i love you
[08:55:42] <zinid> I will ban you if you say that once again
[08:55:44] <Erl> zinid: i was you heat me
[08:56:16] <Erl> zinid: ok im sorry
[08:56:20] <Erl> and i realy love you
[08:58:08] Erl has been banned
[08:58:16] zinid leaves the room: Stream reset by peer
[08:59:56] ta leaves the room
[09:14:24] frainz leaves the room: Stream closed by us: Replaced by new connection (conflict)
[09:15:21] zinid leaves the room
[09:16:56] suzyo leaves the room
[09:18:22] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[09:21:41] zinid leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[09:30:30] Licaon_Kter leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[09:36:29] <zinid> flow, what separators do you mean in the maillist thread?
[09:36:57] <zinid> to separate what?
[09:39:17] srgcdev leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[09:40:26] frainz leaves the room
[09:47:22] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[09:49:40] <flow> zinid, xep390 aka ecaps2 uses ASCII seperators, which are invalid in XML 1.0, to fix the xep115 issues
[09:49:54] uc leaves the room
[09:50:12] <flow> see xep390 § 4.1
[09:51:01] <zinid> ah
[09:55:42] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[10:12:00] lukas leaves the room
[10:18:14] lukas leaves the room
[10:18:58] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[10:26:03] ludo leaves the room: Disconnected: Replaced by new connection
[10:38:05] cromain leaves the room: Replaced by new connection
[10:39:38] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[10:43:53] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[10:49:42] zinid leaves the room: Stream reset by peer
[10:50:08] cromain leaves the room
[10:56:21] uio leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[11:01:35] ThUnD3r|Gr33n leaves the room: Connection failed: connection closed
[11:03:56] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[11:05:35] lukas leaves the room
[11:14:53] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[11:20:35] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[11:21:40] SouL leaves the room: Disconnected: Replaced by new connection
[11:23:31] vanitasvitae leaves the room: Stream reset by peer
[11:24:08] vanitasvitae leaves the room: Stream closed by us: Replaced by new connection (conflict)
[11:33:30] daniel leaves the room
[11:33:54] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[11:35:44] ta leaves the room: Disconnected: Replaced by new connection
[11:36:28] cippaciong leaves the room: Connection failed: connection closed
[11:38:54] ChaosKid42 leaves the room: Stream closed by us: Replaced by new connection (conflict)
[11:39:38] rom1dep leaves the room
[11:40:28] ileh leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[11:43:25] mrDoctorWho leaves the room
[11:52:10] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[11:53:57] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:00:17] ChaosKid42 leaves the room: Stream closed by us: Replaced by new connection (conflict)
[12:09:02] SouL leaves the room
[12:09:06] SouL leaves the room
[12:13:18] Man_Life leaves the room
[12:15:42] zuglufttier leaves the room
[12:15:48] zuglufttier leaves the room
[12:17:36] nekit leaves the room: Stream closed by us: Replaced by new connection (conflict)
[12:20:38] cromain leaves the room
[12:25:25] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:29:16] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:35:43] pod leaves the room: Replaced by new connection
[12:38:57] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:41:46] cippaciong leaves the room: Connection failed: connection closed
[12:43:56] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:47:07] zinid leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:47:14] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:49:29] jere leaves the room: Disconnected: Replaced by new connection
[12:56:20] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:59:54] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[12:59:54] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[13:03:52] jere leaves the room: Disconnected: Replaced by new connection
[13:09:16] <mnr11> How do I check if server gets any packet from client?
[13:13:22] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[13:13:54] alacer leaves the room: Stream closed by us: Replaced by new connection (conflict)
[13:16:23] <zinid> via hooks
[13:23:42] zinid leaves the room: Stream reset by peer
[13:26:59] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[13:28:37] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[13:29:43] rom1dep leaves the room
[13:30:52] Licaon_Kter leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[13:37:09] ta leaves the room
[13:41:19] ta leaves the room: Machine going to sleep
[13:43:14] vanitasvitae leaves the room
[13:47:14] mnr11 leaves the room: offline
[13:54:15] jere leaves the room
[13:59:02] zuglufttier leaves the room
[14:01:03] hlad leaves the room
[14:01:04] hlad leaves the room
[14:02:02] suzyo leaves the room
[14:02:18] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[14:04:05] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[14:07:04] ChaosKid42 leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[14:20:33] cippaciong leaves the room: Connection failed: connection closed
[14:31:46] joekokker leaves the room
[14:33:00] zuglufttier leaves the room
[14:38:40] zuglufttier leaves the room: Stream closed by us: system-shutdown
[14:41:07] <Holger> Hehe debugging on production servers is fun.
[14:41:47] Holger messed around, b0rked the state of >1k sessions, crashing hooks everywhere, fixed it with another hot upgrade, all sessions survived! \o/
[14:45:00] <zinid> 😃
[14:47:29] ta leaves the room: Machine going to sleep
[14:51:03] zuglufttier leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[14:51:05] cippaciong leaves the room: Connection failed: connection closed
[15:01:27] zuglufttier leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[15:03:20] ta leaves the room: Disconnected: Replaced by new connection
[15:12:41] suzyo leaves the room
[15:18:08] <zinid> https://github.com/psi-im/psi/issues/346
[15:18:37] <Holger> \o/
[15:18:54] <Holger> I also bugged them with the SM count thing today.
[15:19:29] <zinid> Holger, I don't see anything related in their github tracker 😉
[15:19:47] <Holger> Real men don't use trackers.
[15:20:14] <zinid> true shit
[15:26:16] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[15:30:43] ChaosKid42 leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[15:33:49] zuglufttier leaves the room
[15:36:13] <Holger> zinid: http://0x0.st/smQo.txt
[15:36:21] <Holger> That's the zombie
[15:36:28] <zinid> got it
[15:37:29] pod leaves the room
[15:37:38] <zinid> Holger, and its queue is empty?
[15:37:54] <zinid> I mean process' mailbox
[15:38:18] <Holger> zinid: Yes.
[15:38:22] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[15:38:23] <zinid> ok
[15:39:57] <zinid> `replaced => true`
[15:40:00] <zinid> what's this?
[15:40:43] <Holger> Hah.
[15:40:46] <zinid> it should be closed with #stream_error{}
[15:42:10] <Holger> This is Daniel's session.  Maybe he tried to kick it *after* noticing it being a ghost.  I'll ask him.
[15:42:37] <zinid> mgmt_state => resumed
[15:43:43] <zinid> it calls {stop, State#{resumed => true}}
[15:43:51] <zinid> this is definitely not a timer issue
[15:44:28] <Holger> Indeed, I'm blind.
[15:44:58] <zinid> don't you see related stacktraces in the log? Like those with failed hooks
[15:45:51] <Holger> Nope :-/
[15:49:01] <zinid> so the session was resumed, then the process received `replaced` event, but ignored it
[15:49:58] <zinid> https://github.com/processone/ejabberd/blob/master/src/mod_stream_mgmt.erl#L225
[15:50:01] <Holger> Daniel now said he tried to kick his session after noticing that it's hanging (and before telling me).
[15:50:02] <zinid> this was somehow ignored
[15:51:25] <Holger> when MgmtState == pending; MgmtState == active
[15:51:32] <Holger> This was no longer true at that point I guess?
[15:52:01] mimi89999 leaves the room
[15:52:08] <zinid> seems so
[15:52:15] <zinid> or due to socket being closed?
[15:52:26] <zinid> if the socket is closed I think no stream_error is sent
[15:52:34] <zinid> thus the hooks is not called
[15:52:42] <zinid> so we have potentially 2 ways
[15:53:24] <zinid> but there is https://github.com/processone/ejabberd/blob/master/src/mod_stream_mgmt.erl#L656
[15:54:00] <zinid> and then ejabberd_c2s:stop(OldPID)
[15:54:02] <zinid> wtf...
[15:54:14] <zinid> how that happens that all these were ignored
[15:54:59] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[15:55:00] mimi89999 leaves the room
[15:58:31] <Holger> Maybe the new process didn't receive the resume response?
[15:58:40] <Holger> What if the new process dies before receiving the response?
[15:58:53] <Holger> Hmm probably it can't.
[15:59:07] <zinid> only if killed by somebody
[15:59:55] <zinid> or exception were generated in this try block: https://github.com/processone/ejabberd/blob/master/src/mod_stream_mgmt.erl#L639
[16:03:42] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:07:27] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:08:08] debalance leaves the room
[16:10:29] <Holger> In <= 16.09, the old process called ejabberd_sm:close_session/4 and stopped itself.  I guess you changed this to avoid races where the old session entry is gone and the new one isn't there yet or something?
[16:10:36] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:10:38] frainz leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:12:21] <zinid> I don't remember already
[16:12:24] <zinid> 😁
[16:12:54] <Holger> Well I see how the sequence (1) close old session, (2) open new session, (3) kill old process makes sense.
[16:12:58] <zinid> Ah yes, to bounce messages or something
[16:13:58] <zinid> I think timeout was triggered during resumption
[16:14:10] <zinid> And nothing gets killed
[16:14:55] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:18:24] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:24:47] <Holger> The mailbox is empty and the process is happily waiting for messages.
[16:25:00] <zinid> Yeah
[16:25:02] <Holger> So the timeout message should've been delivered and I don't get why it would be ignored.
[16:26:08] <zinid> Maybe timeout message is ignored in resumed state?
[16:27:13] pinky leaves the room: Stream reset by peer
[16:27:28] <zinid> Sorry, I'm AFK, cannot look into the code
[16:29:49] SouL leaves the room
[16:30:30] <Holger> Ah indeed, and it seems we now silently ignore unhandled info messages.
[16:34:18] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:36:03] <Holger> So this very bad timing would explain how the timeout isn't triggered.  And the remaining question is why ejabberd_c2s:stop(OldPID) is ignored; or whether it wasn't called.
[16:38:40] Akasch leaves the room
[16:39:22] <Holger> Ah, as the process hasn't been replaced in the session table, it probably wasn't called.
[16:40:06] sezuan leaves the room
[16:41:07] <zinid> right
[16:41:08] <zinid> good catch
[16:41:16] <zinid> so seems like exception was generated?
[16:43:30] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:43:37] suzyo leaves the room
[16:44:43] <Holger> Yup.
[16:45:37] <zinid> ah, and stream_error was not processed because it's ignored in resumed state
[16:45:48] <zinid> so `resumed` state is the reason of all this 😛
[16:47:47] <Holger> Yeah. I'm back to being unsure how it helps to have the *new* process taking care of ditching the old session and killing the old process.
[16:48:06] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:48:33] ta leaves the room
[16:48:53] <Holger> As soon as the old process handled the resume call, it's non-functional anyway.
[16:48:57] <zinid> you can change that to see effects 🙂
[16:49:30] ludo leaves the room: Disconnected: Replaced by new connection
[16:49:55] <Holger> Well it was the other way up to 16.09 and I didn't notice the effects so I guess this was some corner case?
[16:50:35] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[16:52:14] <zinid> I think it was a work around bounce_messages()
[16:53:06] <zinid> if you don't see problems here you can just ejabberd_c2s:stop(State#state{resumed = true})
[16:55:06] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[16:55:50] <Holger> I would think the correct order is to have the new process (1) add the new session entry (2) delete the old one and (3) query the old process state. Then (4) the old process stops itself.
[16:56:17] <zinid> maybe, yes
[16:58:41] <Holger> The bounce_messages() issue was about a non-empty mailbox after handling resumption?
[16:59:03] <Holger> It's not clear to me how this is avoided now.
[16:59:06] <zinid> yes
[16:59:42] <Holger> Ok thanks a lot for the insight, I'll think about all this.
[17:00:14] <zinid> sure, I'm glad I don't need to fix the issue myself 😛
[17:00:22] <zinid> (especially given that I introduced it)
[17:00:24] <zinid> 😀
[17:02:28] <Holger> Hehe nah you fixed another issue. Probably no surprise that there are weird corner cases during resumption.
[17:05:03] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[17:07:06] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[17:08:12] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[17:11:33] lukas leaves the room
[17:16:47] suzyo leaves the room
[17:24:52] cromain leaves the room
[17:27:38] lukas leaves the room
[17:27:49] ludo leaves the room
[17:30:53] lukas leaves the room
[17:33:56] jannic leaves the room
[17:36:25] zinid leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[17:37:36] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[17:46:12] ludo leaves the room: Disconnected: Replaced by new connection
[17:47:10] Licaon_Kter leaves the room: Stream closed by us: Replaced by new connection (conflict)
[17:47:30] hlad leaves the room
[17:51:04] frainz leaves the room: Stream closed by us: Replaced by new connection (conflict)
[17:52:36] frainz leaves the room
[17:55:12] hlad leaves the room
[18:00:02] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[18:06:08] prefiks leaves the room
[18:07:19] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:08:54] damas leaves the room
[18:09:56] alacer leaves the room: Stream closed by us: Replaced by new connection (conflict)
[18:14:20] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[18:16:34] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:17:00] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:37:10] suzyo leaves the room
[18:40:23] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:40:35] ludo leaves the room: Disconnected: Replaced by new connection
[18:40:58] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:50:55] frainz leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[18:59:08] Marzanna leaves the room: Connection failed: connection closed
[19:05:42] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:07:00] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:08:07] jere leaves the room
[19:10:31] Licaon_Kter leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:18:13] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:21:37] pod leaves the room
[19:23:04] mimi89999 leaves the room
[19:27:01] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:28:00] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:28:13] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:35:14] boothj5 leaves the room
[19:36:40] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:39:07] SouL leaves the room
[19:39:09] SouL leaves the room
[19:46:23] uc leaves the room
[19:46:58] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:52:30] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:53:00] cippaciong leaves the room: Connection failed: connection closed
[19:55:34] Odin leaves the room
[19:56:32] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[19:57:43] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:07:48] ileh leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:08:41] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:14:51] Akasch leaves the room: Rechner geht in den Ruhezustand
[20:21:15] zinid leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:22:04] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:26:59] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[20:32:00] hlad leaves the room
[20:32:59] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:33:05] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:34:23] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[20:36:51] Akasch leaves the room
[20:41:29] ludo leaves the room
[20:46:55] Odin leaves the room: Stream closed by us: Replaced by new connection (conflict)
[20:49:05] uc leaves the room
[20:52:44] Akasch leaves the room: Disconnected: Replaced by new connection
[20:52:58] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[21:00:09] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[21:07:45] debalance leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[21:11:25] cippaciong leaves the room: Connection failed: connection closed
[21:13:03] Odin leaves the room
[21:14:42] carlos leaves the room: Disconnected: Replaced by new connection
[21:18:58] rom1dep leaves the room
[21:21:56] rom1dep leaves the room
[21:25:24] robert_mobile leaves the room
[21:25:33] jere leaves the room
[21:26:20] rom1dep leaves the room
[21:32:28] ludo leaves the room: Disconnected: Replaced by new connection
[21:32:55] cippaciong leaves the room: Connection failed: connection closed
[21:34:20] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[21:35:18] joekokker leaves the room
[21:39:58] rom1dep leaves the room: Stream closed by us: Replaced by new connection (conflict)
[21:40:11] vanitasvitae leaves the room
[21:40:17] rom1dep leaves the room
[21:43:07] Akasch leaves the room: Disconnected: Replaced by new connection
[21:43:58] rom1dep leaves the room
[21:48:38] <rom1dep> How do you guys test these scenarios? Must be tough to set up and test efficiently
[21:49:11] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[21:50:38] nekit leaves the room
[21:50:47] boothj5 leaves the room
[21:51:18] marc leaves the room: unknown reason
[21:53:28] ludo leaves the room: Disconnected: Replaced by new connection
[21:54:52] srgcdev leaves the room
[21:55:18] hlad leaves the room
[21:55:19] hlad leaves the room
[21:55:45] ludo leaves the room: Disconnected: Replaced by new connection
[22:02:58] boothj5 leaves the room
[22:03:08] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[22:03:48] Akasch leaves the room
[22:04:52] ludo leaves the room: Disconnected: Replaced by new connection
[22:15:45] debalance leaves the room: Stream closed by us: Replaced by new connection (conflict)
[22:16:39] debalance leaves the room
[22:17:57] cippaciong leaves the room: Stream closed by us: Replaced by new connection (conflict)
[22:26:05] ta leaves the room
[22:31:45] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[22:40:28] joekokker leaves the room
[22:42:46] carlos leaves the room
[22:59:46] cippaciong leaves the room
[23:00:01] Odin leaves the room
[23:01:47] cippaciong leaves the room: Connection failed: connection closed
[23:10:44] Licaon_Kter leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[23:12:05] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[23:13:21] rom1dep leaves the room: Stream closed by us: Replaced by new connection (conflict)
[23:24:58] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[23:25:36] <Holger> !tell zinid Ah I guess you wanted to make sure bounce_message_queue() re-routes stanzas *after* the new process added itself to the session table.
[23:25:37] <Servant> Holger: Ok!
[23:26:04] <Holger> rom1dep: You mean tests to track down such issues or unit tests?
[23:27:33] ludo leaves the room
[23:27:48] <Holger> rom1dep: I mean in this case we didn't test anything; I stumbled over it on conversations.im and then we looked into the live process and stared at the code to track things down.  Quite typical for such corner cases.
[23:28:56] mrDoctorWho leaves the room: Disconnected: Replaced by new connection
[23:31:36] jere leaves the room: Disconnected: Replaced by new connection
[23:31:38] jeremy leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
[23:35:33] jeremy leaves the room: Stream closed by us: Replaced by new connection (conflict)
[23:39:30] zuglufttier leaves the room: Stream closed by us: Replaced by new connection (conflict)
[23:55:15] ChaosKid42 leaves the room: Stream closed by us: Replaced by new connection (conflict)
[23:55:55] lukas leaves the room: Stream closed by us: Timed out waiting for stream resumption (connection-timeout)
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!