Note that this was due to a very specialized kind of outage, namely
where the machine-readable API description file fetched from
api.launchpad.net refers to api.launchpad.test (which only exists in
some development setups and shouldn't be referred to from production).
This part of the problem was on us (the Launchpad team), and we've fixed
it.

It's also a little surprising, since we had other reports of clients
(including at least one that was also running Ubuntu 22.04) instead
raising the rather clearer `httplib2.error.ServerNotFoundError: Unable
to find the server at api.launchpad.test` (still a bit confusing of
course, but it points to the problem about as well as it can).  I don't
know why `socket.getaddrinfo` would raise `EBUSY` in this case, though.

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

Title:
  add-apt-repository has a misleading error message when the launchpad
  api is down

Status in software-properties package in Ubuntu:
  New

Bug description:
  On Ubuntu 22.04.2
  Package software-properties-common 0.99.22.7
  During the launchpad outage on the 23rd June 2023, add-apt-repository was 
crashing with the following:
  Traceback (most recent call last):
    File "/usr/bin/add-apt-repository", line 364, in <module>
      sys.exit(0 if addaptrepo.main() else 1)
    File "/usr/bin/add-apt-repository", line 347, in main
      shortcut = handler(source, **shortcut_params)
    File "/usr/lib/python3/dist-packages/softwareproperties/shortcuts.py", line 
40, in shortcut_handler
      return handler(shortcut, **kwargs)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 82, 
in __init__
      if self.lpppa.publish_debug_symbols:
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 120, 
in lpppa
      self._lpppa = self.lpteam.getPPAByName(name=self.ppaname)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, 
in lpteam
      self._lpteam = self.lp.people(self.teamname)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 98, 
in lp
      self._lp = login_func("%s.%s" % (self.__module__, 
self.__class__.__name__),
    File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 494, 
in login_anonymously
      return cls(
    File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 230, 
in __init__
      super(Launchpad, self).__init__(
    File "/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py", line 
477, in __init__
      self._browser.get(root_resource), 'application/json')
    File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 
439, in get
      response, content = self._request(url, extra_headers=headers)
    File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 
389, in _request
      response, content = self._request_and_retry(
    File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 
359, in _request_and_retry
      response, content = self._connection.request(
    File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1725, in 
request
      (response, content) = self._request(
    File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 144, 
in _request
      response, content = super(LaunchpadOAuthAwareHttp, self)._request(
    File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 
184, in _request
      return super(RestfulHttp, self)._request(
    File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1441, in 
_request
      (response, content) = self._conn_request(conn, request_uri, method, body, 
headers)
    File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1363, in 
_conn_request
      conn.connect()
    File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1139, in 
connect
      address_info = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM)
    File "/usr/lib/python3.10/socket.py", line 955, in getaddrinfo
      for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
  OSError: [Errno 16] Device or resource busy

  
  This was misleading as it seemed to indicate a problem with the client and 
not with the server. The error message should be improved as to make it clear 
where the error is located.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/2024926/+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