← Back to team overview

touch-packages team mailing list archive

[Bug 984523] Re: apt_pkg.Cache() E: Read error - read (21: is a directory)

 

** Package changed: python-apt (Ubuntu) => apt (Ubuntu)

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

Title:
  apt_pkg.Cache() E: Read error - read (21: is a directory)

Status in apt package in Ubuntu:
  New

Bug description:
  Ubuntu Release: 
  12.04 precise beta 2
  Description:	Ubuntu precise (development branch)
  Release:	12.04
  Up to date as of 0100h GMT 18/4

  $ apt-cache policy python-apt
  python-apt:
    Installed: 0.8.3ubuntu6
    Candidate: 0.8.3ubuntu6
    Version table:
   *** 0.8.3ubuntu6 0
          500 http://gulf/au.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
          100 /var/lib/dpkg/status

  ===========================
  Attempting to use python-apt to manipulate a debootstrapped precise chroot - when I attempt to get a cache object from the chroot, the following error occurs:

      cache = apt_pkg.Cache(apt.progress.base.OpProgress())
  SystemError: E:Read error - read (21: Is a directory), E:The package lists or status file could not be parsed or opened.

  Extra testing:
  * The same code functions perfectly on an 11.04 host with a debootstrapped precise chroot
  * The same error appears on a 12.04 host with a debootstrapped oneric (11.10) chroot
  * chrooting in with a bash shell and executing apt commands works

  To replicate, 
  * on a precise host, debootstrap a precise or oneiric chroot
  * start a python shell
  >>> import apt_pkg
  >>> import apt
  >>> apt_pkg.init_config()
  >>> apt_pkg.config.set('RootDir', '/path/to/chroot')
  >>> apt_pkg.config.set('APT::Architecture', '<your chroot arch>')
  >>> apt_pkg.init_system()
  >>> apt_pkg.Cache(apt.progress.base.OpProgress())
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  SystemError: E:Read error - read (21: Is a directory), E:The package lists or status file could not be parsed or opened.
  >>> apt.progress.base.OpProgress()
  <apt.progress.base.OpProgress object at 0x7fba202c8b10>
  >>> apt_pkg.Cache()
  Reading package lists... Error!
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  SystemError: E:Read error - read (21: Is a directory), E:The package lists or status file could not be parsed or opened.
  >>>

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/984523/+subscriptions