[2.3.0-6434] mDNS observer problems

Bug #1752737 reported by Kurt
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Avahi
New
Unknown
avahi (Ubuntu)
Confirmed
Medium
Trent Lloyd

Bug Description

I see avahi-browser choking on non-utf8 characters in my rackd.log:

==> rackd.log <==
2018-02-28 16:54:33 provisioningserver.utils.services: [info] mDNS observation process started.
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: Traceback (most recent call last):
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/maas/maas-common", line 87, in <module>
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: main()
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/maas/maas-common", line 83, in main
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: run()
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/maas/maas-common", line 52, in run
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: from provisioningserver.__main__ import main
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/__main__.py", line 55, in <module>
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: main()
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/utils/script.py", line 91, in __call__
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: self.execute(argv)
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/utils/script.py", line 86, in execute
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: args.handler.run(args)
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 221, in run
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: _observe_mdns(reader, output, args.verbose)
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 145, in _observe_mdns
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: for event in observer(events):
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 161, in _observe_resolver_found
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: for event in filter(_p_resolver_found, events):
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 125, in _extract_mdns_events
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: for event in map(parse_avahi_event, lines):
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: File "/usr/lib/python3.5/codecs.py", line 321, in decode
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: (result, consumed) = self._buffer_decode(data, self.errors, final)
2018-02-28 16:54:36 provisioningserver.utils.services: [info] observe-mdns: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 240: invalid continuation byte
2018-02-28 16:54:36 provisioningserver.utils.services: [critical] mDNS observation process failed.

Traceback (most recent call last):
Failure: twisted.internet.error.ProcessTerminated: A process has ended with a probable error condition: process ended with exit code 1.

==> regiond.log <==
2018-02-28 16:54:50 regiond: [info] ::1 GET /MAAS/rpc/ HTTP/1.0 --> 200 OK (referrer: -; agent: provisioningserver.rpc.clusterservice.ClusterClientService)
2018-02-28 16:55:20 regiond: [info] ::1 GET /MAAS/rpc/ HTTP/1.0 --> 200 OK (referrer: -; agent: provisioningserver.rpc.clusterservice.ClusterClientService)

==> maas.log <==
Feb 28 16:53:52 MAAS-RC01 maas.interface: [info] ens33 (physical) on MAAS-RC01: New MAC, IP binding observed: 08:eb:74:ca:d3:6f, 192.168.1.82

Similar traceback when running from command line:

maasuser@MAAS-RC01:~$ maas-rack observe-mdns
{"hostname": "Apple-TV", "interface": "ens33", "address": "192.168.1.81"}
Got SIGTERM, quitting.
Traceback (most recent call last):
  File "/usr/sbin/maas-rack", line 87, in <module>
    main()
  File "/usr/sbin/maas-rack", line 83, in main
    run()
  File "/usr/sbin/maas-rack", line 52, in run
    from provisioningserver.__main__ import main
  File "/usr/lib/python3/dist-packages/provisioningserver/__main__.py", line 55, in <module>
    main()
  File "/usr/lib/python3/dist-packages/provisioningserver/utils/script.py", line 91, in __call__
    self.execute(argv)
  File "/usr/lib/python3/dist-packages/provisioningserver/utils/script.py", line 86, in execute
    args.handler.run(args)
  File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 221, in run
    _observe_mdns(reader, output, args.verbose)
  File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 145, in _observe_mdns
    for event in observer(events):
  File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 161, in _observe_resolver_found
    for event in filter(_p_resolver_found, events):
  File "/usr/lib/python3/dist-packages/provisioningserver/utils/avahi.py", line 125, in _extract_mdns_events
    for event in map(parse_avahi_event, lines):
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 228: invalid continuation byte

Revision history for this message
Mike Pontillo (mpontillo) wrote :

Thanks; this is a bug in avahi itself [1], so the best we can do is work around this in MAAS.

[1]: https://github.com/lathiat/avahi/issues/169

Changed in maas:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in avahi (Ubuntu):
status: New → Confirmed
Changed in maas:
milestone: none → 2.4.0beta1
Changed in maas:
milestone: 2.4.0beta1 → 2.4.0beta2
Changed in maas:
milestone: 2.4.0beta2 → 2.4.0beta3
Changed in maas:
milestone: 2.4.0beta3 → 2.4.0beta4
Changed in maas:
milestone: 2.4.0beta4 → 2.4.x
Changed in maas:
milestone: 2.4.x → 2.5.0
importance: Medium → High
Changed in maas:
milestone: 2.5.0 → 2.5.0beta1
Revision history for this message
Andres Rodriguez (andreserl) wrote :

In MAAS we have provided a work around in LP: #1773698

Changed in maas:
milestone: 2.5.0beta1 → 2.5.0beta2
no longer affects: maas
no longer affects: maas/2.4
Changed in avahi:
status: Unknown → New
Revision history for this message
Trent Lloyd (lathiat) wrote :

Potential upstream fix for backport, may be relevant to MAAS:
https://github.com/lathiat/avahi/pull/206

Trent Lloyd (lathiat)
Changed in avahi (Ubuntu):
assignee: nobody → Trent Lloyd (lathiat)
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.