** Description changed:

  Under some conditions package installation/upgrade/removal fails with
  the following error:
  
  -- Error during installation --
  Setting up screenlets (0.1.2-7) ...
  dpkg (subprocess): unable to execute installed post-installation script: Exec 
format error
  dpkg: error processing screenlets (--configure):
   subprocess installed post-installation script returned error exit status 2
  
  -- Error during removal --
  Removing gnome-do ...
  dpkg (subprocess): unable to execute installed pre-removal script: Exec 
format error
  dpkg: error processing gnome-do (--purge):
   subprocess installed pre-removal script returned error exit status 2
  
  This error occurs when one of the installation or removal scripts
  (/var/lib/dpkg/info/PACKAGE.p*) is empty or corrupted.
  
+ == HOW TO REPRODUCE ==
+ Install a package and emulates a system crash before 30 seconds:
+ # apt-get install hello; sleep 20; echo b > /proc/sysrq-trigger
+ [simulates a system crash]
+ After reboot both installation and removal scripts are 0 bytes. You will 
notice that hello.list was correctly written to disk because of the fsync call 
in dpkg/src/filesdb.c
+ $ ls -l /var/lib/dpkg/info/hello.*
+ -rw-r--r-- 1 root root 323 2010-02-09 00:42 /var/lib/dpkg/info/hello.list
+ -rwxr-xr-x 1 root root   0 2009-08-15 19:17 /var/lib/dpkg/info/hello.postinst
+ -rwxr-xr-x 1 root root   0 2009-08-15 19:17 /var/lib/dpkg/info/hello.prerm
+ 
+ If you replay the test but adding a sync before the system crash:
+ # apt-get install hello; sync;  echo b > /proc/sysrq-trigger
+ After reboot the files are fine:
+ $ ls -l  /var/lib/dpkg/info/hello.*
+ -rw-r--r-- 1 root root 323 2010-02-09 00:46 /var/lib/dpkg/info/hello.list
+ -rwxr-xr-x 1 root root 103 2009-08-15 19:17 /var/lib/dpkg/info/hello.postinst
+ -rwxr-xr-x 1 root root  74 2009-08-15 19:17 /var/lib/dpkg/info/hello.prerm
+ 
+ If I adjust /proc/sys/vm/dirty_expire_centisecs to be below the sleep
+ time, ( for exemple 1000 in the test above ) then data are correctly
+ written to disk.
+ 
  == WORKAROUNDS ==
- Execute the following commands in a terminal 
+ Execute the following commands in a terminal
  (GNOME: Applications -> Accessories -> Terminal
-  KDE: KMenu -> Applications -> System -> Terminal [Konsole] )
+  KDE: KMenu -> Applications -> System -> Terminal [Konsole] )
  
  Workaround A: Remove the package and reinstall
  
  $ sudo rm /var/lib/dpkg/info/PACKAGE_VERSION.p*
  $ sudo apt-get remove --purge PACKAGE
  $ sudo apt-get clean
  $ sudo apt-get update
  
  Then reinstall the package
  
  Workaround B: Finish the install when the package can't be removed
  
  $ sudo apt-get clean
  $ sudo aptitude download PACKAGE
  $ sudo dpkg --unpack ./PACKAGE_VERSION.deb
  $ sudo dpkg --configure PACKAGE
  
  Replace PACKAGE with the package name which fails to install/remove.
  
  == Localization ==
  The same error in non-english language:
   . Erreur de format pour exec()
   . Error de formato ejecutable
   . Errore di formato di exec
   . Exec format error
   . Formatfel på körbar fil
   . Érvénytelen végrehajtható fájlformátum
   . Exec formátum hiba
   . Verkeerd uitvoerbaar bestand
   . Exec 格式错误

-- 
[MASTER] Exec format error : package failed to install/remove : 
installation/removal script returned error exit status 2
https://bugs.launchpad.net/bugs/512096
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to