aptdcon crashed with IOError in _get_terminal_width(): [Errno 5] Input/output error

Bug #948588 reported by Sergey "Shnatsel" Davidoff
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
aptdaemon (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

the following maintainer script crashed aptdaemon:

# enqueue ppa-purges - requires the aptdaemon version of ppa-purge
ppa-purge -r ppa:elementary-os/daily &
ppa-purge -r ppa:elementary-os/testing &
ppa-purge -r ppa:nemequ/sqlheavy &
ppa-purge -r ppa:midori/midori-dev &
ppa-purge -r ppa:ricotz/docky &
ppa-purge -r ppa:marlin-devs/marlin-daily &
# make sure we clean up even if something goes terribly wrong, e.g.
# there's no suitable ppa-purge and we're cleaning up after a failed install
rm -f /etc/apt/sources.list.d/elementary-daily-channel-elementary-os-daily-precise.list
rm -f /etc/apt/sources.list.d/elementary-daily-channel-elementary-os-testing-precise.list
rm -f /etc/apt/sources.list.d/elementary-daily-channel-nemequ-sqlheavy-precise.list
rm -f /etc/apt/sources.list.d/elementary-daily-channel-midori-midori-dev-precise.list
rm -f /etc/apt/sources.list.d/elementary-daily-channel-ricotz-docky-precise.list
rm -f /etc/apt/sources.list.d/elementary-daily-channel-marlin-devs-marlin-daily-precise.list
rm -rf /var/tmp/elementary-daily-release-channel

the part with rm's is actually very silly, reverted it already. I'm using a custom aptdaemon-based version of ppa-purge which can be found at lp:~shnatsel/ppa-purge/ppa-purge-aptdaemon

ProblemType: Crash
DistroRelease: Ubuntu 12.04
Package: aptdaemon 0.43+bzr769-0ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-18.28-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
ApportVersion: 1.94-0ubuntu2
Architecture: amd64
CrashCounter: 1
Date: Wed Mar 7 04:15:25 2012
DesktopFile: /usr/share/aptdaemon/aptdaemon.desktop
ExecutablePath: /usr/bin/aptdcon
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120303)
InterpreterPath: /usr/bin/python2.7
PackageArchitecture: all
ProcCmdline: /usr/bin/python /usr/bin/aptdcon --refresh
ProcEnviron:
 SHELL=/bin/bash
 TERM=xterm
 PATH=(custom, no user)
 LANG=ru_RU.UTF-8
PythonArgs: ['/usr/bin/aptdcon', '--refresh']
SourcePackage: aptdaemon
Title: aptdcon crashed with IOError in _get_terminal_width(): [Errno 5] Input/output error
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

Revision history for this message
Sergey "Shnatsel" Davidoff (shnatsel) wrote :
tags: removed: need-duplicate-check
Revision history for this message
Sebastian Heinlein (glatzor) wrote :

There are some serious issues in your script. I would not recommend to run aptdcon as a background task and then wait for it? This is a little bit inconsitent. Why do you redirect the output? If you don't want to see the terminal output just use the --hide-terminal option.

Changed in aptdaemon (Ubuntu):
status: New → Fix Committed
importance: Undecided → Low
visibility: private → public
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package aptdaemon - 0.43+bzr805-0ubuntu1

---------------
aptdaemon (0.43+bzr805-0ubuntu1) precise; urgency=low

  * New upstream snapshot:
    - Fix: Catch a possible exception in apt.cache.Cache.required_download
      which can occur if the user e.g. rebooted the system during a running
      debconf question (fixes LP: #659438)
      Furthermore raise ERROR_INCOMPLETE_INSTALL to signal the client
      that a call of FixIncompleteInstall() (basically a dpkg --configure -a
      call) fixes the issue
    - Fix: Sync all properties of the D-Bus transaction in the client before
      emitting the Finished signal (fixes LP: #747172) to ensure all changed
      properties are available (the order of received signals is not
      guranteed and the finished signal could be received before an error
      signal)
      Additionally raise the timeout before removing a transaction from
      D-Bus on the server side to give clients more time to sync
    - Fix wrong variable names in the download progress (fixes LP: #971839,
      LP: #976521)
    - Fix: Catch a possible pipe reading error (fixes LP: #733090)
    - Fix: Don't show the name of aptdaemon in crash reports
      (fixes LP: #973370)
      Aptdaemon is a system daemon and should work and fail silently
    - Fix: Fallback to a default terminal width of 80 chars (fixes LP: #948588)
      The width request could fail on standard input/output redirections
    - Fix: Don't use a reserved name for the simulate helper function
    - Fix: Convert exceptions to string before raising TransactionFailed()
    - Fix wrong variable name in the add license key failed error message
    - Fix: Don't overwrite the GObject.GObject.disconnect in
      aptdemon.client.Transaction by renaming the method to
      _disconnect_from_dbus()
    - Fix: Allow to cancel a transaction which hasn't been queued yet and
      is still in limbo
    - Fix: Raise NotImplementedError instead of ImplementedError
    - Add a test case for config file changes handling
  * debian/aptdaemon.install:
    - Don't ship the obsolete .desktop file anymore
 -- Sebastian Heinlein <email address hidden> Mon, 09 Apr 2012 20:48:44 +0200

Changed in aptdaemon (Ubuntu):
status: Fix Committed → Fix Released
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.