Sunday, February 25, 2018
grimoire@muc.metronome.im
February
Mon Tue Wed Thu Fri Sat Sun
      1
2
3 4
5 6
7
8
9
10
11
12 13
14 15
16
17
18
19 20 21 22
23
24
25
26
27
28
       
             
Metronome IM "cook" book room | Support and Dev talk about the Metronome XMPP server.

Latest stable version build is: 4.0.3

For more information you can visit: https://metronome.im

Room logs can be found here: https://muc.metronome.im/logs/grimoire/

* Links *
<==========================================================>
- Building & Installation:
https://metronome.im/building
- Documentation:
https://metronome.im/documentation
- Issues Tracker:
https://github.com/maranda/metronome/issues
<==========================================================>

[11:00:20] <Maranda> @ping isode.com
[11:00:21] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:22] <Maranda> @ping isode.com
[11:00:22] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:24] <Maranda> @ping isode.com
[11:00:24] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:26] <Maranda> @ping isode.com
[11:00:26] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:28] <Maranda> @ping isode.com
[11:00:28] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:30] <Maranda> @ping isode.com
[11:00:30] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:31] <Maranda> @ping isode.com
[11:00:31] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:33] <Maranda> @ping isode.com
[11:00:33] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:35] <Maranda> @ping isode.com
[11:00:35] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: received a response of type invalid while authenticating with the authoritative server
[11:00:38] <Maranda> @ping isode.com
[11:00:38] <Echo1> Maranda: Ping failed (remote-server-not-found): Server-to-server connection failed: stream failure
[11:01:20] <Maranda> Ooook.
[11:01:22] <Maranda> Feb 25 11:00:38 lightwitch.org:dialback debug Attempting to perform dialback again... as more stanzas are being queued.
Feb 25 11:00:38 s2sout3a63250 debug sending: <db:result to='isode.com' from='lightwitch.org'>
Feb 25 11:00:38 s2sout3a63250 info sent dialback key on outgoing s2s stream
Feb 25 11:00:38 s2sout3a63250 debug Received[s2sout_unauthed]: <result xmlns='jabber:server:dialback' type='error' to='lightwitch.org' from='isode.com'><error type='auth' xmlns='j
abber:server' code='403'><forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></result>
Feb 25 11:00:38 s2sout3a63250 debug Disconnecting lightwitch.org[s2sout_unauthed], <stream:error> is: <stream:error><policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-streams'/>
<text xmlns='urn:ietf:params:xml:ns:xmpp-streams'>Number of max allowed dialback failures exceeded, good bye</text></stream:error>
Feb 25 11:00:38 s2sout3a63250 debug sending: <stream:error>
Feb 25 11:00:38 s2sout3a63250 debug sending: </stream:stream>

[12:35:43] <Maranda> time to update https://metronome.im/changelogs/3_8
[12:54:54] <Maranda> hmmm interesting movim is attempting to retrieve the whole archive even when I'm not logged?
[12:55:30] <Maranda> 🤔 🤔 🤔
[12:55:40] <Maranda> it's keeping to send mam queries
[12:56:15] <Maranda> me thinks it bugged
[13:36:22] <Maranda> Over 400 queries for like 5000 messages sounds over-kill to me O.o
[13:36:39] <Maranda> it's trying to sync 10 messages at a time?
[13:36:59] <jonasw> hm, seems okay to me.
[13:37:49] <Maranda> jonasw, it could really just sync the defacto 50 I mean, that's 100 queries.
[13:38:06] <Maranda> but I have the doubt it's just looping on something without reason.
[13:40:25] <Maranda> it continues to poll every 15 seconds or so.
[13:47:51] <Maranda> @version paranoid.scarab.name
[13:47:55] <Echo1> Maranda: paranoid.scarab.name is running Openfire version 4.1.5 on Linux 4.9.0-3-amd64 (amd64) - Java 1.8.0_141
[13:56:00] <Maranda> @version goonfleet.com
[13:56:20] <Echo1> Maranda: goonfleet.com can't be reached via XMPP (Server-to-server connection failed: Connecting failed: connection timeout)
[14:04:00] <Maranda> jonasw, if you get the chance to retest that anonymous stuff let me know if it works as it should now.
[14:05:12] <jonasw> I now get internal-server-error
[14:05:21] <jonasw> [Client] Juliet
jid: 68217c2d6dfebcaf5809faccbdf7bb018539e65f@localhost/24df1b57-9f29-4596-8b60-3a57c858062c
password: password

---------

Juliet connects

Juliet sends:
<presence xmlns:stream="http://etherx.jabber.org/streams" id="xshWZs96Vnv/fLY7q0PzZ"/>

Juliet receives:
<presence xmlns:stream="http://etherx.jabber.org/streams" id="xshWZs96Vnv/fLY7q0PzZ" from="68217c2d6dfebcaf5809faccbdf7bb018539e65f@localhost/24df1b57-9f29-4596-8b60-3a57c858062c"/>

Juliet sends:
<iq xmlns:stream="http://etherx.jabber.org/streams" id="xuHIUoNsX0O2UJSjY1jDo" type="set">
<query xmlns="jabber:iq:private">
<example xmlns="urn:example:registered">foobar</example>
</query>
</iq>

Juliet receives:
<iq xmlns:stream="http://etherx.jabber.org/streams" id="xuHIUoNsX0O2UJSjY1jDo" type="error" to="68217c2d6dfebcaf5809faccbdf7bb018539e65f@localhost/24df1b57-9f29-4596-8b60-3a57c858062c">
<error type="wait">
<internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>

[14:05:54] <Maranda> jonasw, that's ok
[14:06:02] <jonasw> no
[14:06:06] <jonasw> use service-unavailable please
[14:06:08] <Maranda> but... hmm it should add also the disabled storage error
[14:06:19] <jonasw> service-unavailable is the go-to error to let entities know that something is not supported
[14:06:46] <Maranda> jonasw, I don't agree it's supported, because it's advertised in features
[14:07:00] <jonasw> private xml doesn’t have a standardized thing to advertise
[14:07:03] <Maranda> Infact that module shouldn't be loaded on anonymous hosts XD
[14:07:06] <jonasw> and you shouldn’t advertise it if it doesn’t work
[14:08:02] <Maranda> <!-- Incoming 25/02/2018 15:07:46 -->
<iq id='c4edb3ff-9bb6-4c4a-801f-6d3549b357de' type='result' to='imadmin@lightwitch.org/gajim.0VW18RRJ' from='lightwitch.org'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<identity type='pep' name='Metronome' category='pubsub'/>
<identity type='im' name='Metronome' category='server'/>
<feature var='http://jabber.org/protocol/commands'/>
<feature var='urn:xmpp:ping'/>
<feature var='msgoffline'/>
<feature var='jabber:iq:version'/>
<feature var='urn:xmpp:jidprep:0'/>
<feature var='http://jabber.org/protocol/pubsub#access-presence'/>
<feature var='http://jabber.org/protocol/pubsub#auto-create'/>
<feature var='http://jabber.org/protocol/pubsub#create-and-configure'/>
<feature var='http://jabber.org/protocol/pubsub#create-nodes'/>
<feature var='http://jabber.org/protocol/pubsub#config-node'/>
<feature var='http://jabber.org/protocol/pubsub#delete-items'/>
<feature var='http://jabber.org/protocol/pubsub#delete-nodes'/>
<feature var='http://jabber.org/protocol/pubsub#filtered-notifications'/>
<feature var='http://jabber.org/protocol/pubsub#meta-data'/>
<feature var='http://jabber.org/protocol/pubsub#persistent-items'/>
<feature var='http://jabber.org/protocol/pubsub#publish'/>
<feature var='http://jabber.org/protocol/pubsub#publish-options'/>
<feature var='http://jabber.org/protocol/pubsub#purge-nodes'/>
<feature var='http://jabber.org/protocol/pubsub#retrieve-items'/>
<feature var='jabber:iq:register'/>
<feature var='vcard-temp'/>
<feature var='jabber:iq:privacy'/>
<feature var='urn:xmpp:blocking'/>
<feature var='urn:xmpp:server-presence'/>
<feature var='jabber:iq:roster'/>
<feature var='urn:xmpp:time'/>
<feature var='urn:xmpp:public-server'/>
<feature var='jabber:iq:private'/>
<feature var='urn:xmpp:sic:1'/>
<feature var='jabber:iq:last'/>
<feature var='http://jabber.org/protocol/disco#info'/>
<feature var='http://jabber.org/protocol/disco#items'/>
<feature var='urn:xmpp:carbons:2'/>
<feature var='urn:xmpp:csi:0'/>
<feature var='urn:xmpp:sift:2'/>
<feature var='urn:xmpp:sift:stanzas:presence'/>
<feature var='http://metronome.im/protocol/mam-purge'/>
<x type='result' xmlns='jabber:x:data'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/network/serverinfo<;/value>
</field>
<field var='support-addresses'>
<value>https://lightwitch.org/im-service/support</value>
<value>xmpp:support@conference.lightwitch.org?join</value>
</field>
<field var='admin-addresses'>
<value>https://lightwitch.org/contact</value>
</field>
<field var='abuse-addresses'>
<value>mailto:abuse@lightwitch.org</value>
</field>
</x>
</query>
</iq>
[14:08:05] <jonasw> it’s nothing under control of the client. return service-unavailable and possibly log a warning
[14:08:13] *Maranda points features.
[14:08:14] <jonasw> sure, but that’s not specified
[14:08:32] <jonasw> or do you find that here? https://xmpp.org/extensions/xep-0049.html
[14:08:35] <jonasw> also, please don’t advertise this
[14:08:41] <jonasw> if it won’t work anyways
[14:08:55] <jonasw> log a warning when the module is loaded on anonymous hosts, but don’t pretend to clients that there’s something they can use if they can’t
[14:09:45] *Maranda ponders
[14:09:46] <Maranda> <!-- Outgoing 25/02/2018 15:09:26 -->
<iq xmlns="jabber:client" to="prosody.im" type="get" id="c4edb3ff-9bb6-4c4a-801f-6d3549b357de" from="imadmin@lightwitch.org/gajim.0VW18RRJ">
<query xmlns="http://jabber.org/protocol/disco#info" />
</iq>

<!-- Incoming 25/02/2018 15:09:28 -->
<iq id='c4edb3ff-9bb6-4c4a-801f-6d3549b357de' type='result' to='imadmin@lightwitch.org/gajim.0VW18RRJ' from='prosody.im'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<identity type='pep' name='Prosody' category='pubsub'/>
<identity type='im' name='Prosody' category='server'/>
<feature var='urn:xmpp:carbons:2'/>
<feature var='urn:xmpp:carbons:1'/>
<feature var='jabber:iq:register'/>
<feature var='vcard-temp'/>
<feature var='http://jabber.org/protocol/commands'/>
<feature var='jabber:iq:roster'/>
<feature var='urn:xmpp:time'/>
<feature var='jabber:iq:time'/>
<feature var='jabber:iq:private'/>
<feature var='http://jabber.org/protocol/pubsub#publish'/>
<feature var='urn:xmpp:ping'/>
<feature var='jabber:iq:version'/>
<feature var='msgoffline'/>
<feature var='jabber:iq:last'/>
<feature var='http://jabber.org/protocol/disco#info'/>
<feature var='http://jabber.org/protocol/disco#items'/>
<feature var='jabber:iq:auth'/>
</query>
</iq>
[14:10:00] <Maranda> 🤔 🤔 🤔 Don't advertise in features??
[14:10:11] <jonasw> don’t advertise something which doesn’t work
[14:10:49] <Maranda> jonasw, it shouldn't be loaded in the first place that's the problem.
[14:11:13] <Maranda> so you should disable it on anon hosts.
[14:11:19] <Maranda> (the module)
[14:11:58] <Maranda> jonasw, I'm not sure how good is it to add code to prevent it loading on anonymous hosts.
[14:12:27] <Maranda> jonasw, if I did I should then do it for every other module using storage.
[14:13:19] <jonasw> Maranda, okay, if you want to argue that way... but that breaks my test suite
[14:13:37] <jonasw> I’d aruge that a server which doesn’t let me know I’m doing a stupid thing is rather hard to sue
[14:13:39] <jonasw> *use
[14:14:30] <Maranda> jonasw, I'm not really arguing just saying that on anon host you should do modules_disabled = { "private" } if it's loaded globally
[14:14:51] <Maranda> so yes I could add a warning telling to disable the module
[14:19:50] <Maranda> jonasw, actually I'll forbid loading.
[14:19:59] <Maranda> hmm at least for some modules.
[14:20:35] <Maranda> I'm not sure it's the right way but hmm...
[14:39:09] <Echo1> maranda committed --
mod_{privacy/private/roster/vcard}: unallow loading on anon hosts. (B…
-> https://github.com/maranda/metronome/commit/6d95d9fbb2f795b5489659b8bedde2ed680cd23a
[14:39:10] <Echo1> maranda committed --
mod_{groups/mam/pep/private}: unallow loading on anon hosts. (Better …
-> https://github.com/maranda/metronome/commit/f42def56540e392e0838d5e29ee605b07b985a9e
[14:39:34] <Maranda> jonasw, there you go.
[14:54:09] <Echo1> maranda committed --
mod_{privacy/roster/vcard}: remove trailing dot from log error.
-> https://github.com/maranda/metronome/commit/f7f012fc78dab8e8a97d090019a013f1ee34e4e8
[14:54:10] <Echo1> maranda committed --
mod_{groups/mam/pep/private}: remove trailing dot from log error.
-> https://github.com/maranda/metronome/commit/1cb35e4f7b53a59d6f5b51eb83684b6e96f89924
[14:56:15] <Maranda> jonasw, hmm and Prosody still returns internal-server-error on storage failures for private storage as well, so you say that in the case there's a fail I should just return service available?
[14:56:25] <Maranda> I suppose.
[14:56:37] <jonasw> but prosody has mod_storage_memory :)
[14:56:43] *Maranda never really touched that plugin.
[14:56:49] <jonasw> if there’s a *fail*, internal-server-error is appropriate
[14:57:00] <jonasw> if it is never going to work, service-unavailable and not announcing the feature is more appropriate
[14:57:37] <Maranda> jonasw, well it now will prevent loading the module.
[14:57:47] <Maranda> so I guess that sorts it anyways
[14:58:10] <jonasw> yah
[15:05:52] <jonasw> does metronome have something like mod_auth_any?
[15:06:56] <Maranda> jonasw, it does have internal, hashed and anonymous backends
[15:07:49] <Maranda> jonasw, just that authentication plugins will use the same format as pre-0.9
[15:08:09] <jonasw> meh
[15:08:14] <jonasw> then testing will be quite pointless
[15:08:24] <jonasw> or I have to pre-configure accounts, but that’s too much hassle
[15:10:48] <Maranda> 🤔 🤷‍♂
[15:15:33] <Maranda> jonasw, I guess you could use metronomectl to create the accounts portably as well but that's up to you.
[15:55:38] <Maranda> jonasw the other choice is commenting this if statement https://github.com/maranda/metronome/blob/master/plugins/mod_auth_anonymous.lua#L78
[15:56:54] <Maranda> Then commenting all the if statements at start in the modules I changed in this last commits
[15:57:53] <Maranda> Then mod_auth_anonymous will save data to the datastore normally
[15:59:22] <Maranda> Rather will allow to save*
[16:30:28] <Maranda> Actually...
[16:32:22] <Maranda> jonasw, https://github.com/maranda/metronome/blob/master/plugins/mod_auth_anonymous.lua#L78 if statement starting here. Then comment line 98 and 102
[16:32:40] <Maranda> There you go
[16:33:20] <Maranda> (comment the if statement starting at 78)
[16:33:48] <Maranda> Then everything will work like your tests need to.
[16:54:57] <Maranda> and maybe it's faster if I add a test mode..., lessens the headaches.
[16:58:45] <jonasw> don’t worry
[16:58:47] <jonasw> that’s not worth it
[16:58:54] <jonasw> I’m not going to add the test at this point, it’s too much trouble
[16:59:05] <Maranda> jonasw, pushed, anonymous_test_mode = true in the config will enable random jids and storage
[16:59:33] <Maranda> jonasw, and *DO EXACTLY WHAT YOUR TESTS SUITES NEED*
[17:00:13] <Maranda> jonasw, maybe if you said what the requirements were it would be easier ;)
[17:00:21] <Maranda> just saying
[17:00:46] <jonasw> "behave like any other XMPP server, except that I need ANONYMOUS login and/or login with any JID/Password"
[17:00:58] <jonasw> (even though I haven’t written code for the last mode yet; it’d be trivial to add though)
[17:01:02] <Maranda> jonasw, good it does that
[17:01:11] <Maranda> for anonymous
[17:01:40] <Maranda> it's pushed in master
[17:03:23] <Maranda> jonasw, all it needs now is the above configuration directive.
[17:04:27] <jonasw> except that it doesn’t work
[17:04:32] <jonasw> or is that setting global?
[17:04:54] <jonasw> [Client] Juliet
jid: 9b6002fa-9572-46cd-876a-81124b579629@localhost/1016ba26-bf7c-421f-9d3e-a4dd99cd6eb8
password: password

---------

Juliet connects

Juliet sends:
<presence xmlns:stream="http://etherx.jabber.org/streams" id="xubqBO1nr/wjmc+o+SivA"/>

Juliet receives:
<presence xmlns:stream="http://etherx.jabber.org/streams" id="xubqBO1nr/wjmc+o+SivA" from="9b6002fa-9572-46cd-876a-81124b579629@localhost/1016ba26-bf7c-421f-9d3e-a4dd99cd6eb8"/>

Juliet sends:
<iq xmlns:stream="http://etherx.jabber.org/streams" id="xOTwboYsA7JJ/MHFvDmiJ" type="set">
<query xmlns="jabber:iq:private">
<example xmlns="urn:example:registered">foobar</example>
</query>
</iq>

Juliet receives:
<iq xmlns:stream="http://etherx.jabber.org/streams" id="xOTwboYsA7JJ/MHFvDmiJ" type="error" to="9b6002fa-9572-46cd-876a-81124b579629@localhost/1016ba26-bf7c-421f-9d3e-a4dd99cd6eb8">
<error type="wait">
<internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Storage is disabled</text>
</error>
</iq>

[17:05:05] <jonasw> config is here: http://paste.debian.net/hidden/45f77395/
[17:07:34] <Maranda> jonasw, yeah spotted the problem forgot to remove the callback.
[17:08:33] <Maranda> jonasw, commited
[17:09:09] <Echo1> maranda committed --
mod_auth_anonymous: remove the callback also.
-> https://github.com/maranda/metronome/commit/b1c99128002d651e8b9650780236c3b8c3e1cd41
[17:09:10] <Echo1> maranda committed --
mod_auth_anonymous: add test mode for test suites.
-> https://github.com/maranda/metronome/commit/984743a4e45d9544607ac42016bf4d497ed7facd
[17:09:52] <Maranda> jonasw, now it should work. And I need to have my Sunday lol
[17:10:29] <Maranda> brain is starting to smoke :)
[17:14:14] <Maranda> jonasw, no the setting is non zone relevant the only directives that are per host are storage/authentication and such (it looked logic to be that way)
[17:14:36] <jonasw> go have your sunday
[17:14:37] <jonasw> :-)
[17:14:56] <Maranda> 🖖
[17:14:57] <jonasw> some tests still do fail, but I can’t report those right away (gonna have my own sunday now :))
[17:15:38] <Maranda> ok
[17:18:11] <Maranda> have a good one!
[17:19:06] <jonasw> same to you
[23:51:46] <Echo1> maranda committed --
mod_{...}: add auto unload on starting preconditions not being met.
-> https://github.com/maranda/metronome/commit/5b19f3c3e82118ce8830c14f1dc1284771565ce8