← Back to team overview

touch-packages team mailing list archive

[Bug 1405951] [NEW] apt-add-repository with non-existing or mistyped user name results in exceptions

 

Public bug reported:

Using a non-existing Launchpad user as an example. The same error
messages will occur if a user mistypes the ppa username when attempting
to add the repo.

$ sudo apt-add-repository ppa:doesntexist
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 101, in _get_https_content_py3
    lp_page = urllib.request.urlopen(request, cafile=LAUNCHPAD_PPA_CERT)
  File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 469, in open
    response = meth(req, response)
  File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.4/urllib/request.py", line 507, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 321, in get_ppa_info
    ret = get_ppa_info_from_lp(user, ppa)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 91, in get_ppa_info_from_lp
    return get_info_from_lp(lp_url)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 87, in get_info_from_lp
    return _get_https_content_py3(lp_url)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, in _get_https_content_py3
    raise PPAException("Error reading %s: %s" % (lp_url, reason), e)
softwareproperties.ppa.PPAException: 'Error reading https://launchpad.net/api/1.0/~doesntexist/+archive/ubuntu/ppa: Not Found'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 101, in _get_https_content_py3
    lp_page = urllib.request.urlopen(request, cafile=LAUNCHPAD_PPA_CERT)
  File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 469, in open
    response = meth(req, response)
  File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.4/urllib/request.py", line 507, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/apt-add-repository", line 119, in <module>
    shortcut = shortcut_handler(line)
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 837, in shortcut_handler
    ret = factory(shortcut)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 382, in shortcut_handler
    return PPAShortcutHandler(shortcut)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 346, in __init__
    info = get_ppa_info(self.shortcut)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 333, in get_ppa_info
    _get_suggested_ppa_message(user, ppa))
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 292, in _get_suggested_ppa_message
    lp_user = get_info_from_lp(LAUNCHPAD_USER_API % user)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 87, in get_info_from_lp
    return _get_https_content_py3(lp_url)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, in _get_https_content_py3
    raise PPAException("Error reading %s: %s" % (lp_url, reason), e)
softwareproperties.ppa.PPAException: 'Error reading https://launchpad.net/api/1.0/~doesntexist: Not Found'


If I attempt to add a PPA entering a real username but a repo which doesn't belong to that user, I get a list of which repos that user provides. I realize it is not possible to list every existing username on Launchpad, but I believe this should be handled more gracefully. For instance the user may get a simple error message saying the user 'doesntexist' is not on Launchpad with suggestions to doublecheck the name for potential typos.

(See also bug 1405950 which is unrelated but similar)

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: software-properties-common 0.96.1
ProcVersionSignature: Ubuntu 3.16.0-28.38-generic 3.16.7-ckt1
Uname: Linux 3.16.0-28-generic x86_64
ApportVersion: 2.15.1-0ubuntu1
Architecture: amd64
CurrentDesktop: Unity
Date: Sat Dec 27 15:16:32 2014
InstallationDate: Installed on 2014-12-19 (7 days ago)
InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20141211)
PackageArchitecture: all
SourcePackage: software-properties
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: software-properties (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug vivid

-- 
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/1405951

Title:
  apt-add-repository with non-existing or mistyped user name results in
  exceptions

Status in software-properties package in Ubuntu:
  New

Bug description:
  Using a non-existing Launchpad user as an example. The same error
  messages will occur if a user mistypes the ppa username when
  attempting to add the repo.

  $ sudo apt-add-repository ppa:doesntexist
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 101, in _get_https_content_py3
      lp_page = urllib.request.urlopen(request, cafile=LAUNCHPAD_PPA_CERT)
    File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
      return opener.open(url, data, timeout)
    File "/usr/lib/python3.4/urllib/request.py", line 469, in open
      response = meth(req, response)
    File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
      'http', request, response, code, msg, hdrs)
    File "/usr/lib/python3.4/urllib/request.py", line 507, in error
      return self._call_chain(*args)
    File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
      result = func(*args)
    File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
      raise HTTPError(req.full_url, code, msg, hdrs, fp)
  urllib.error.HTTPError: HTTP Error 404: Not Found

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 321, in get_ppa_info
      ret = get_ppa_info_from_lp(user, ppa)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 91, in get_ppa_info_from_lp
      return get_info_from_lp(lp_url)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 87, in get_info_from_lp
      return _get_https_content_py3(lp_url)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, in _get_https_content_py3
      raise PPAException("Error reading %s: %s" % (lp_url, reason), e)
  softwareproperties.ppa.PPAException: 'Error reading https://launchpad.net/api/1.0/~doesntexist/+archive/ubuntu/ppa: Not Found'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 101, in _get_https_content_py3
      lp_page = urllib.request.urlopen(request, cafile=LAUNCHPAD_PPA_CERT)
    File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
      return opener.open(url, data, timeout)
    File "/usr/lib/python3.4/urllib/request.py", line 469, in open
      response = meth(req, response)
    File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
      'http', request, response, code, msg, hdrs)
    File "/usr/lib/python3.4/urllib/request.py", line 507, in error
      return self._call_chain(*args)
    File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
      result = func(*args)
    File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
      raise HTTPError(req.full_url, code, msg, hdrs, fp)
  urllib.error.HTTPError: HTTP Error 404: Not Found

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/bin/apt-add-repository", line 119, in <module>
      shortcut = shortcut_handler(line)
    File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 837, in shortcut_handler
      ret = factory(shortcut)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 382, in shortcut_handler
      return PPAShortcutHandler(shortcut)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 346, in __init__
      info = get_ppa_info(self.shortcut)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 333, in get_ppa_info
      _get_suggested_ppa_message(user, ppa))
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 292, in _get_suggested_ppa_message
      lp_user = get_info_from_lp(LAUNCHPAD_USER_API % user)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 87, in get_info_from_lp
      return _get_https_content_py3(lp_url)
    File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, in _get_https_content_py3
      raise PPAException("Error reading %s: %s" % (lp_url, reason), e)
  softwareproperties.ppa.PPAException: 'Error reading https://launchpad.net/api/1.0/~doesntexist: Not Found'

  
  If I attempt to add a PPA entering a real username but a repo which doesn't belong to that user, I get a list of which repos that user provides. I realize it is not possible to list every existing username on Launchpad, but I believe this should be handled more gracefully. For instance the user may get a simple error message saying the user 'doesntexist' is not on Launchpad with suggestions to doublecheck the name for potential typos.

  (See also bug 1405950 which is unrelated but similar)

  ProblemType: Bug
  DistroRelease: Ubuntu 15.04
  Package: software-properties-common 0.96.1
  ProcVersionSignature: Ubuntu 3.16.0-28.38-generic 3.16.7-ckt1
  Uname: Linux 3.16.0-28-generic x86_64
  ApportVersion: 2.15.1-0ubuntu1
  Architecture: amd64
  CurrentDesktop: Unity
  Date: Sat Dec 27 15:16:32 2014
  InstallationDate: Installed on 2014-12-19 (7 days ago)
  InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20141211)
  PackageArchitecture: all
  SourcePackage: software-properties
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1405951/+subscriptions


Follow ups

References