python3.4 breaks installing deb files
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
App Grid |
Fix Released
|
Undecided
|
Unassigned | ||
Aptdaemon |
New
|
Undecided
|
Unassigned | ||
python-apt (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned | ||
software-center (Ubuntu) |
Fix Released
|
Critical
|
Unassigned |
Bug Description
[If you're facing this issue, please use bug 1290228 , so that we can use this bug for the implementation of the fix - thanks!]
Steps to reproduce:
- run trusty (updated sometime in the last ~month)
- open ?any? deb file with an aptdaemon client (software-center, appgrid, etc)
- installation will fail (bug 1290228 etc)
After trailing through aptdaemon and python-apt code it seems that there might be multiple manifestations of this bug
python-apt: progress/base.py: InstallProgress
>>> os._exit(
aptdaemon: progress.py: DaemonDpkgInsta
>>> args = [apt_pkg.
>>> os.execlp(
I think there are likely to be other points of failure too.
Noteworthy is the following:
pgg@four:~$ sudo python3.4 -c "import os; (statusfd, writefd) = os.pipe(); write_stream = os.fdopen(writefd, 'w'); print(write_
4
dpkg: error: unable to read filedescriptor flags for <package status and progress file descriptor>: Bad file descriptor
pgg@four:~$ sudo python3.3 -c "import os; (statusfd, writefd) = os.pipe(); write_stream = os.fdopen(writefd, 'w'); print(write_
4
(Reading database ... 227994 files and directories currently installed.)
Preparing to unpack .../appgrid_
This lead me to http://
My knowledge of python-apt and aptdaemon isn't really good enough to know what the best way forward is to resolve this in the least disruptive and safest way, but it would be nice if people could install deb files in 14.04. I've subscribed a few people who might have ideas.
Changed in appgrid: | |
status: | New → Fix Released |
Changed in software-center (Ubuntu): | |
status: | Triaged → Fix Released |
On Apr 11, 2014, at 11:13 AM, Launchpad Bug Tracker wrote:
>dpkg: error: unable to read filedescriptor flags for <package status and
>progress file descriptor>: Bad file descriptor
In Python 3.4, file descriptors are not inherited by child processes by inheritable( ).
default. You need to use os.set_
https:/ /docs.python. org/3/library/ os.html# fd-inheritance