#805 mod_pep: Querying a PEP node using disco#info fails with "service-unavailable"

Reporter Vanitasvitae
Owner Zash
Stars ★★ (2)  
  • Priority-Medium
  • Status-Fixed
  • Type-Defect
  • Milestone-0.10
  1. Vanitasvitae on

    Hi! XEP-0384 requires a client to query PubSub nodes of a user (eg. §4.4) . When I do so using smackx-pubsub on a prosody server, the client first sends a disco iq: <iq to='contact@server.tld' id='w0eGv-16' type='get'><query xmlns='http://jabber.org/protocol/disco#info' node='eu.siacs.conversations.axolotl.devicelist'></query></iq> due to https://github.com/igniterealtime/Smack/blob/master/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java#L237 The server responds with "service-unavailable" due to https://hg.prosody.im/0.9/file/8613086779fa/plugins/mod_pep.lua#l286 I don't know, if this is an issue with prosody or with the OMEMO spec.

  2. Florian Schmaus on

    Related Smack issue: SMACK-743 https://issues.igniterealtime.org/browse/SMACK-743

  3. Zash on

    Should be noted that this is about mod_pep which implements a bare minimum needed for PEP.

    • title Querying pubsub items using PubSub fails with "service-unavailable" mod_pep: Querying pubsub items using PubSub fails with "service-unavailable"
  4. Zash on

    Hold on, why does it do a service discovery query? I don't see anything in either 384 or 163 mandating support for this. > Devices MUST subscribe to 'urn:xmpp:omemo:0:devicelist' via PEP Followed by an example notification that would received after subscribing via the normal PEP +notify method.

  5. Vanitasvitae on

    Zash: Thats because I use PubSub to query my own device list node

  6. Vanitasvitae on

    Zash: Smack does a disco query at the node in order to determine, whether it is a LeafNode or a CollectionNode. This is done only once, but fails on prosody. Here you can find some logs: https://pads.pirateparty.gr/p/nodes

  7. Vanitasvitae on

    It looks like xep-0163 §1 example 5 is failing...

  8. Zash on

    https://xmpp.org/extensions/xep-0163.html#example-5 is a response from a client, not from the server.

  9. Florian Schmaus on

    The issue title is not correct. It should be: > Querying a PEP node using disco#info fails with "service-unavailable". It is XEP-0060 § 5.3 failing. It appears that XEP-0163 does not explicitly require support for the "Discover Node Information" (XEP-0060 § 5.3) use case, XEP-0163 § 5. only mentions "node discovery". I tend to believe that a PEP service requires support for discovery node information use case, as otherwise we need to resort to ugly workaround in order to determine if a PEP node is a leaf or collection node (Or are all PEP nodes besides the root node required to be leaf nodes?).

  10. MattJ on

    • title mod_pep: Querying pubsub items using PubSub fails with "service-unavailable" mod_pep: Querying a PEP node using disco#info fails with "service-unavailable"
  11. Zash on

    Should be fixed in 0.10 with https://hg.prosody.im/0.10/rev/5f0c642a41a1

    • tags Milestone-0.10 Status-Fixed
    • owner Zash

New comment