** Description changed:

+ Steps to reproduce (for later SRU work)
+ 
+ #0
+ # On the test Host install apt-cacher-ng
+ # you need to do so before creating the guest to propagate
+ # and configure correctly when spawned
+ $ sudo apt install apt-cacher-ng
+ 
+ #1
+ # create a VM guest or container with at least three IPv4 adresses
+ # In the example below I used 4 virtio net in KVM all with DHCP configured
+ 
+ #2
+ # install prereq packages
+ $ sudo apt install avahi-utils squid-deb-proxy-client
+ 
+ #3
+ # check if all are interfaces are configured and avahi probes them all
+ # (you might need to edit netplan or E/N/I to e.g. dhcp on all of them)
+ $ avahi-browse -kprtf _apt_proxy._tcp
+ +;enp9s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ 
+;enp9s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
+ +;enp9s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ +;enp8s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ 
+;enp8s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
+ +;enp8s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ +;enp7s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ 
+;enp7s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
+ +;enp7s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ +;enp1s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ 
+;enp1s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
+ +;enp1s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ +;lo;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
+ 
=;enp8s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
+ 
=;enp9s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
+ 
=;enp7s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
+ 
=;enp1s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
+ 
=;enp9s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe3a:53e7;8000;
+ 
=;enp8s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe73:b27d;8000;
+ 
=;enp7s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe3a:53e7;8000;
+ 
=;enp1s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe4e:2923;8000;
+ 
=;enp9s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.125;8000;
+ 
=;enp8s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.202;8000;
+ 
=;enp7s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.186;8000;
+ 
=;enp1s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.42;8000;
+ 
=;lo;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;127.0.0.1;8000;
+ 
+ #5
+ # After being announced stop the cacher on the host
+ $ sudo systemctl stop apt-cacher-ng.service
+ 
+ #6
+ Check it is now dead from the guests POV
+ $ curl 192.168.122.1:3142
+ curl: (7) Failed to connect to 192.168.122.1 port 3142: Connection refused
+ 
+ #7
+ # Ensure that it is still announced in avahi in the guest
+ $ avahi-browse -kprtf _apt_proxy._tcp | grep '^=' | cut -d";" -f 4,8-9 | grep 
-v '::'
+ ...
+ apt-cacher-ng\032proxy\032on\032Keschdeichel;192.168.122.1;3142
+ 
+ #8
+ # Now run apt-avahi-discover which shows the python errors
+ # bleeding into the output even with stderr redirected
+ $ /usr/share/squid-deb-proxy-client/apt-avahi-discover 2>/dev/null 
+ error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
+ error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
+ error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
+ error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
+ http://192.168.122.42:8000/
+ 
+ P.S. I'm (paelzer) not entirely sure we need "multiple" IPs an announced
+ but down entry might be enough, but we want to stick close to what was
+ reported.
+ 
+ ---
+ 
  I get the following error when running the discovery script on the
  command line.
  
  $ /usr/share/squid-deb-proxy-client/apt-avahi-discover
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('10.1.2.3', 3142): 2147483647 (<class 'socket.error'>:[Errno 111] Connection 
refused [/usr/lib/python2.7/asyncore.py|read|83] 
[/usr/lib/python2.7/asyncore.py|handle_read_event|446] 
[/usr/lib/python2.7/asyncore.py|handle_connect_event|454])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('10.0.3.1', 3142): 2147483647 (<class 'socket.error'>:[Errno 111] Connection 
refused [/usr/lib/python2.7/asyncore.py|read|83] 
[/usr/lib/python2.7/asyncore.py|handle_read_event|446] 
[/usr/lib/python2.7/asyncore.py|handle_connect_event|454])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('172.24.74.129', 3142): 2147483647 (<class 'socket.error'>:[Errno 111] 
Connection refused [/usr/lib/python2.7/asyncore.py|read|83] 
[/usr/lib/python2.7/asyncore.py|handle_read_event|446] 
[/usr/lib/python2.7/asyncore.py|handle_connect_event|454])
  http://172.24.74.145:3142/
  
  The last line still returns the proper proxy URI so as far as I can tell
  things are still working.  The IP 10.1.2.3 is for an n2n VPN.  This is
  on trusty with version 0.8.6ubuntu1.
  
  To trigger the bug the environment setup needs to be in a specific way.
  It seems for the problem to occur it need more than one host/IP discovered 
via avahi. This can be probed via $ avahi-browse -kprtf _apt_proxy._tcp
  and e.g. the common LXD setup of IPv4 + ipv6 is NOT enough to trigger it.
  
  TODO: a sample output of the above command in an affected environment
  could be helpful.
  
  TODO: if possible outlining how the environment can be configured to
  have this multi host/IP reply in avahi would be helpful as well.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to python2.7 in Ubuntu.
https://bugs.launchpad.net/bugs/1505670

Title:
  "uncaptured python exception"

Status in python2.7 package in Ubuntu:
  New
Status in squid-deb-proxy package in Ubuntu:
  Confirmed
Status in python2.7 source package in Bionic:
  New
Status in squid-deb-proxy source package in Bionic:
  New
Status in python2.7 source package in Focal:
  New
Status in squid-deb-proxy source package in Focal:
  New

Bug description:
  Steps to reproduce (for later SRU work)

  #0
  # On the test Host install apt-cacher-ng
  # you need to do so before creating the guest to propagate
  # and configure correctly when spawned
  $ sudo apt install apt-cacher-ng

  #1
  # create a VM guest or container with at least three IPv4 adresses
  # In the example below I used 4 virtio net in KVM all with DHCP configured

  #2
  # install prereq packages
  $ sudo apt install avahi-utils squid-deb-proxy-client

  #3
  # check if all are interfaces are configured and avahi probes them all
  # (you might need to edit netplan or E/N/I to e.g. dhcp on all of them)
  $ avahi-browse -kprtf _apt_proxy._tcp
  +;enp9s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  
+;enp9s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
  +;enp9s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  +;enp8s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  
+;enp8s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
  +;enp8s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  +;enp7s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  
+;enp7s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
  +;enp7s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  +;enp1s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  
+;enp1s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local
  +;enp1s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  +;lo;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local
  
=;enp8s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
  
=;enp9s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
  
=;enp7s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
  
=;enp1s0;IPv4;apt-cacher-ng\032proxy\032on\032Keschdeichel;_apt_proxy._tcp;local;Keschdeichel.local;192.168.122.1;3142;
  
=;enp9s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe3a:53e7;8000;
  
=;enp8s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe73:b27d;8000;
  
=;enp7s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe3a:53e7;8000;
  
=;enp1s0;IPv6;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;fe80::5054:ff:fe4e:2923;8000;
  
=;enp9s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.125;8000;
  
=;enp8s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.202;8000;
  
=;enp7s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.186;8000;
  
=;enp1s0;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;192.168.122.42;8000;
  
=;lo;IPv4;Squid\032deb\032proxy\032on\032i-deb-proxy;_apt_proxy._tcp;local;i-deb-proxy.local;127.0.0.1;8000;

  #5
  # After being announced stop the cacher on the host
  $ sudo systemctl stop apt-cacher-ng.service

  #6
  Check it is now dead from the guests POV
  $ curl 192.168.122.1:3142
  curl: (7) Failed to connect to 192.168.122.1 port 3142: Connection refused

  #7
  # Ensure that it is still announced in avahi in the guest
  $ avahi-browse -kprtf _apt_proxy._tcp | grep '^=' | cut -d";" -f 4,8-9 | grep 
-v '::'
  ...
  apt-cacher-ng\032proxy\032on\032Keschdeichel;192.168.122.1;3142

  #8
  # Now run apt-avahi-discover which shows the python errors
  # bleeding into the output even with stderr redirected
  $ /usr/share/squid-deb-proxy-client/apt-avahi-discover 2>/dev/null 
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('192.168.122.1', 3142): 9223372036854775807 (<class 
'ConnectionRefusedError'>:[Errno 111] Connection refused 
[/usr/lib/python3.9/asyncore.py|read|83] 
[/usr/lib/python3.9/asyncore.py|handle_read_event|417] 
[/usr/lib/python3.9/asyncore.py|handle_connect_event|425])
  http://192.168.122.42:8000/

  P.S. I'm (paelzer) not entirely sure we need "multiple" IPs an
  announced but down entry might be enough, but we want to stick close
  to what was reported.

  ---

  I get the following error when running the discovery script on the
  command line.

  $ /usr/share/squid-deb-proxy-client/apt-avahi-discover
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('10.1.2.3', 3142): 2147483647 (<class 'socket.error'>:[Errno 111] Connection 
refused [/usr/lib/python2.7/asyncore.py|read|83] 
[/usr/lib/python2.7/asyncore.py|handle_read_event|446] 
[/usr/lib/python2.7/asyncore.py|handle_connect_event|454])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('10.0.3.1', 3142): 2147483647 (<class 'socket.error'>:[Errno 111] Connection 
refused [/usr/lib/python2.7/asyncore.py|read|83] 
[/usr/lib/python2.7/asyncore.py|handle_read_event|446] 
[/usr/lib/python2.7/asyncore.py|handle_connect_event|454])
  error: uncaptured python exception, closing channel <AptAvahiClient> 
('172.24.74.129', 3142): 2147483647 (<class 'socket.error'>:[Errno 111] 
Connection refused [/usr/lib/python2.7/asyncore.py|read|83] 
[/usr/lib/python2.7/asyncore.py|handle_read_event|446] 
[/usr/lib/python2.7/asyncore.py|handle_connect_event|454])
  http://172.24.74.145:3142/

  The last line still returns the proper proxy URI so as far as I can
  tell things are still working.  The IP 10.1.2.3 is for an n2n VPN.
  This is on trusty with version 0.8.6ubuntu1.

  To trigger the bug the environment setup needs to be in a specific way.
  It seems for the problem to occur it need more than one host/IP discovered 
via avahi. This can be probed via $ avahi-browse -kprtf _apt_proxy._tcp
  and e.g. the common LXD setup of IPv4 + ipv6 is NOT enough to trigger it.

  TODO: a sample output of the above command in an affected environment
  could be helpful.

  TODO: if possible outlining how the environment can be configured to
  have this multi host/IP reply in avahi would be helpful as well.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1505670/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to