Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
poezio
poezio
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 178
    • Issues 178
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 7
    • Merge Requests 7
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • poezio
  • poeziopoezio
  • Issues
  • #3465

Closed
Open
Opened Feb 28, 2019 by Maxime Buquet@ppjetMaintainer

idna validation failed on seemingly valid domain

Poezio version: 47069606
Slixmpp version: slixmpp@05d76e4b

I wanted to play a bit and test with the following diff "removing" safeJID:

diff --git a/poezio/common.py b/poezio/common.py
index 3a865054..d7bbbfdc 100644
--- a/poezio/common.py
+++ b/poezio/common.py
@@ -456,7 +456,4 @@ def safeJID(*args, **kwargs) -> JID:
     Used to avoid tracebacks during is stringprep fails
     (fall back to a JID with an empty string).
     """
-    try:
-        return JID(*args, **kwargs)
-    except InvalidJID:
-        return JID('') 
+    return JID(*args, **kwargs)

The following idna error happened when joining foobar@chat.cluxia.eu. Not entirely sure how to reproduce, and I'm having difficulties tracking it down.

2019-02-28 00:12:51,905 DEBUG:xmlstream:SEND: <presence to="foobar@chat.cluxia.eu/pep_" xml:lang="en"><x xmlns="http://jabber.org/protocol/muc"><history seconds="6337524" /></x><c xmlns="http://jabber.org/protocol/caps" node="https://poez.io" hash="sha-1" ver="ShLc8Sd+awa9
Jgf6zhgZv4xI9pQ=" /><x xmlns="vcard-temp:x:update"><photo>bc59cfde8c748d222d643c1b2171af95ed1c9d6e</photo></x><idle xmlns="urn:xmpp:idle:1" since="2019-02-28T00:12:51.513142+00:00" /></presence>
2019-02-28 00:12:51,905 DEBUG:muctab:  TAB   Refresh: MucTab  
2019-02-28 00:12:51,905 DEBUG:muc:Refresh: Topic                                                           
2019-02-28 00:12:51,906 DEBUG:text_win:Refresh: TextWin                  
2019-02-28 00:12:51,906 DEBUG:info_wins:Refresh: MucInfoWin                                                 
2019-02-28 00:12:51,906 DEBUG:info_bar:Refresh: GlobalInfoBar 
2019-02-28 00:12:51,907 DEBUG:text_win:Refresh: TextWin                                                                                                                                                                                          
2019-02-28 00:12:51,907 DEBUG:inputs:Refresh: MessageInput                                                                                                                                                                                                                       
2019-02-28 00:12:52,447 DEBUG:xmlstream:RECV: <presence xml:lang="en" from="foobar@chat.cluxia.eu/pep_" to="test@bouah.net/poezio-yUfy"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" ver="ShLc8Sd+awa9Jgf6zhgZv4xI9pQ=" node="https://poez.io" /><idle xmlns="urn:xmpp
:idle:1" since="2019-02-28T00:12:51.513142+00:00" /><x xmlns="vcard-temp:x:update"><photo>bc59cfde8c748d222d643c1b2171af95ed1c9d6e</photo></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test@bouah.net/poezio-yUfy" affiliation="none" role="participant" /><stat
us code="110" /></x></presence>                                                               
2019-02-28 00:12:52,449 DEBUG:xmlstream:Event triggered: presence                                                                                                                                                                                                                
2019-02-28 00:12:52,450 DEBUG:xmlstream:Event triggered: presence_available                                                                                                                                                                                                     
2019-02-28 00:12:52,450 DEBUG:xmlstream:Event triggered: got_online
2019-02-28 00:12:52,451 DEBUG:xmlstream:Event triggered: changed_status                            
2019-02-28 00:12:52,452 DEBUG:xmlstream:Event triggered: entity_caps
2019-02-28 00:12:52,452 DEBUG:xep_0045:MUC presence from foobar@chat.cluxia.eu/pep_ : OrderedDict([('lang', 'en'), ('jid', 'test@bouah.net/poezio-yUfy'), ('affiliation', 'none'), ('room', 'foobar@chat.cluxia.eu'), ('role', 'participant'), ('nick', 'pep_'), ('show', ''), ('
status', ''), ('alt_nick', <nick xmlns="http://jabber.org/protocol/nick" />)])
2019-02-28 00:12:52,452 DEBUG:xmlstream:Event triggered: groupchat_presence                                
2019-02-28 00:12:52,454 DEBUG:xmlstream:SEND: <presence xml:lang="en" to="foobar@chat.cluxia.eu/pep_" type="error"><error type="cancel"><undefined-condition xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Slixmpp got into tro
uble.</text></error><idle xmlns="urn:xmpp:idle:1" since="2019-02-28T00:12:51.907475+00:00" /></presence>                                                                                                                                                                         
2019-02-28 00:12:52,454 ERROR:rootstanza:Error handling {jabber:client}presence stanza       
Traceback (most recent call last):                                                             
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 135, in _validate_domain
    domain = idna(domain)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/stringprep.py", line 99, in idna
    raise StringprepError
slixmpp.stringprep.StringprepError

During handling of the above exception, another exception occurred:


Traceback (most recent call last):
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/xmlstream/xmlstream.py", line 796, in event
    handler_callback(data)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/core/handlers.py", line 1146, in on_groupchat_presence
    tab.handle_presence(presence)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 452, in handle_presence
    self.process_presence_buffer(presence)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 482, in process_presence_buffer
    self.handle_presence_unjoined(last_presence, deterministic, own=True)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 500, in handle_presence_unjoined
    user_color = self.search_for_color(from_nick)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 1167, in search_for_color
    color = config.get_by_tabname(nick, 'muc_colors')
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 234, in get_by_tabname
    return self.get_by_servname(tabname, option, default, fallback)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 244, in get_by_servname
    server = safeJID(jid).server
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/common.py", line 459, in safeJID
    return JID(*args, **kwargs)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 313, in __init__
    self._node, self._domain, self._resource = _parse_jid(jid)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 68, in _parse_jid
    domain = _validate_domain(domain)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 137, in _validate_domain
    raise InvalidJID('idna validation failed')
slixmpp.jid.InvalidJID: idna validation failed
2019-02-28 00:12:52,460 ERROR:basexmpp:idna validation failed
Traceback (most recent call last):
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 135, in _validate_domain
    domain = idna(domain)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/stringprep.py", line 99, in idna
    raise StringprepError
slixmpp.stringprep.StringprepError


During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/xmlstream/xmlstream.py", line 796, in event
    handler_callback(data)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/core/handlers.py", line 1146, in on_groupchat_presence
    tab.handle_presence(presence)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 452, in handle_presence
    self.process_presence_buffer(presence)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 482, in process_presence_buffer
    self.handle_presence_unjoined(last_presence, deterministic, own=True)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 500, in handle_presence_unjoined
    user_color = self.search_for_color(from_nick)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/tabs/muctab.py", line 1167, in search_for_color
    color = config.get_by_tabname(nick, 'muc_colors')
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 234, in get_by_tabname
    return self.get_by_servname(tabname, option, default, fallback)
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/config.py", line 244, in get_by_servname
    server = safeJID(jid).server
  File "/home/ppjet/Src/poezio/safeJID-removal/poezio/common.py", line 459, in safeJID
    return JID(*args, **kwargs)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 313, in __init__
    self._node, self._domain, self._resource = _parse_jid(jid)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 68, in _parse_jid
    domain = _validate_domain(domain)
  File "/home/ppjet/Src/foo/venv/lib/python3.7/site-packages/slixmpp/jid.py", line 137, in _validate_domain
    raise InvalidJID('idna validation failed')
slixmpp.jid.InvalidJID: idna validation failed
2019-02-28 00:12:52,461 DEBUG:xmlstream:Event triggered: muc::foobar@chat.cluxia.eu::presence
2019-02-28 00:12:52,461 DEBUG:xmlstream:Event triggered: muc::foobar@chat.cluxia.eu::got_online
Edited Feb 28, 2019 by Maxime Buquet
To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: poezio/poezio#3465