Ankündigung

Einklappen
Keine Ankündigung bisher.

Backend-Plugin Fehler

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Backend-Plugin Fehler

    Hallo zusammen,

    folgenden Fehler bekomme ich mit dem Backend-Server:

    Code:
    2018-12-02  22:11:15 ERROR    CP Server Thread-9 [02/Dec/2018:22:11:15] HTTP
    Traceback (most recent call last):
      File "/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py", line 628, in respond
        self._do_respond(path_info)
      File "/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py", line 687, in _do_respond
        response.body = self.handler()
      File "/usr/local/lib/python3.5/dist-packages/cherrypy/lib/encoding.py", line 219, in __call__
        self.body = self.oldhandler(*args, **kwargs)
      File "/usr/local/lib/python3.5/dist-packages/cherrypy/_cpdispatch.py", line 54, in __call__
        return self.callable(*self.args, **self.kwargs)
      File "/usr/local/smarthome/plugins/backend/BackendSysteminfo.py", line 76, in system_html
        ipv6 = Utils.get_local_ipv6_address()
      File "/usr/local/smarthome/lib/utils.py", line 182, in get_local_ipv6_address
        s.close()
    UnboundLocalError: local variable 's' referenced before assignment
    SmarthomeNG und Plugins sind von heute (02.12.18 21 Uhr), alles aus dem DEV-Zweig. System-Umgebung ist ein Docker-Image (Ubuntu).
    Kann gerne debuggen, um den Fehler einzukreisen.

    Gruss,

    Stefan
    Sonos

    #2
    Ah ja, tatsächlich ist da ein Bug in der lib/utils.py:

    Code:
        @staticmethod
        def get_local_ipv6_address():
            """
            Get's local ipv6 address
            TODO: What if more than one interface present ?
    
            :return: IPv6 address as a string
            :rtype: string
            """
            try:
                s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
                s.connect(('2001:4860:4860::8888', 1))
                IP = s.getsockname()[0]
            except:
                IP = '::1'
            finally:
                s.close()
            return IP
    Hier muss im finally-Block die Variable "s" auf None geprüft werden.

    In der Funktion "get_local_ipv4_address" ist der gleiche Fehler.

    Gruss,

    Stefan
    Zuletzt geändert von pfischi; 02.12.2018, 22:27.
    Sonos

    Kommentar

    Lädt...
    X