Package: python-apt
Version: 0.7.7.1
Severity: normal
Tags: patch

--- Please enter the report below this line. ---

apt/progress.py is using select to check the status of dpkg, but it will fail 
if there is an interruption not directly related with dpkg (such as child 
process exiting or something else related to the main program). From the 
select man page:
[EINTR]            A signal was delivered before the time limit expired
                       and before any of the selected events occurred.

The normal course of action is to just retry the select call.

diff -wruN python-apt-0.7.7.1-old/apt/progress.py 
python-apt-0.7.7.1/apt/progress.py
--- python-apt-0.7.7.1-old/apt/progress.py      2008-07-25 14:52:16.000000000 
-0400
+++ python-apt-0.7.7.1/apt/progress.py  2008-09-17 10:07:08.000000000 -0400
@@ -203,7 +203,9 @@
         return os.fork()
     def waitChild(self):
         while True:
-            select.select([self.statusfd],[],[], self.selectTimeout)
+            try: select.select([self.statusfd],[],[], self.selectTimeout)
+            except select.error, e:
+                if e[0] != EINTR: raise
             self.updateInterface()
             (pid, res) = os.waitpid(self.child_pid,os.WNOHANG)
             if pid == self.child_pid:

--- System information. ---
Architecture: amd64
Kernel:       Linux 2.6.26

Debian Release: lenny/sid
  500 unstable        www.emdebian.org 
  500 unstable        gulus.usherbrooke.ca 
  500 testing         gulus.usherbrooke.ca 
    1 experimental    gulus.usherbrooke.ca 

--- Package information. ---
Depends                          (Version) | Installed
==========================================-+-=============
python                            (<< 2.6) | 2.5.2-2
python                            (>= 2.4) | 2.5.2-2
python-central                  (>= 0.6.7) | 0.6.8
libapt-inst-libc6.7-6-1.1                  | 
libapt-pkg-libc6.7-6-4.6                   | 
libc6                           (>= 2.7-1) | 2.7-13
libgcc1                       (>= 1:4.1.1) | 1:4.3.2-1
libstdc++6                      (>= 4.2.1) | 4.3.2-1
lsb-release                                | 3.2-20





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to