Bug#669583: OSError: [Errno 1] Operation not permitted
On Fri, Apr 20, 2012 at 04:11:16PM +0300, Teodor MICU wrote: > 2012/4/20 Michael Vogt : > > Sure, the setsid() call makes the process a session leader and removes > > the controlling tty. The rational is that if you run > > unattended-upgrades in a shell and then shutdown your tty goes away > > and unattended-upgrades gets killed even if its in the middle of a > > operation (like a upgrade). The unattended-upgrades-shutdown script is > > there to avoid that and keep the system running long enough to finish > > the upgrade - but for that unattended-upgrades must not be terminated > > by the tty going away. > > I think this protection is necessary only if U-A::Automatic-Reboot is > set to "true", right? If affirmative, why not wait until u-a finish > the pkgs upgrade and then do the reboot? Thanks for your mail! It protects against e.g. a user manually running unattended-upgrade in a terminal and then someone shuting down the machine. In this case the running unattended-upgades would get killed even if its in the middle of the upgrade leaving the system in a bad state. It will also help if cron does not put u-n into its own process-group (I don't know if it will do that or not, but I assume it will) and on shutdown cron might get killed and with it the running u-n. The goal is to keep u-n alive and let the "unattended-upgrades-shutdown" script deal with stopping it or waiting until its finished. Given that I think that cron puts it into its own process group already its just a minor protection, but AFAICT there are no downsides either :) Cheers, Michael -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#669583: OSError: [Errno 1] Operation not permitted
2012/4/20 Michael Vogt : > Sure, the setsid() call makes the process a session leader and removes > the controlling tty. The rational is that if you run > unattended-upgrades in a shell and then shutdown your tty goes away > and unattended-upgrades gets killed even if its in the middle of a > operation (like a upgrade). The unattended-upgrades-shutdown script is > there to avoid that and keep the system running long enough to finish > the upgrade - but for that unattended-upgrades must not be terminated > by the tty going away. I think this protection is necessary only if U-A::Automatic-Reboot is set to "true", right? If affirmative, why not wait until u-a finish the pkgs upgrade and then do the reboot? Thanks -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#669583: OSError: [Errno 1] Operation not permitted
On Fri, Apr 20, 2012 at 12:57:29PM +0300, Teodor MICU wrote: > 2012/4/20 Michael Vogt : > > Thanks for your bugreport. I fixed that now. I guess in your case it > > was already the session-leader for some reason (maybe because of > > systemd?). > > Yes, I use «systemd» but I don't know what being session-leader means. > Most times u-a is run automatically by Cron, only when I check or > debug some problem its run from a tty/pts console. > > Just for my curiosity, can you shortly explain what problem does > os.setsid() fix or avoid? Sure, the setsid() call makes the process a session leader and removes the controlling tty. The rational is that if you run unattended-upgrades in a shell and then shutdown your tty goes away and unattended-upgrades gets killed even if its in the middle of a operation (like a upgrade). The unattended-upgrades-shutdown script is there to avoid that and keep the system running long enough to finish the upgrade - but for that unattended-upgrades must not be terminated by the tty going away. Cheers, Michael -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#669583: OSError: [Errno 1] Operation not permitted
2012/4/20 Michael Vogt : > Thanks for your bugreport. I fixed that now. I guess in your case it > was already the session-leader for some reason (maybe because of > systemd?). Yes, I use «systemd» but I don't know what being session-leader means. Most times u-a is run automatically by Cron, only when I check or debug some problem its run from a tty/pts console. Just for my curiosity, can you shortly explain what problem does os.setsid() fix or avoid? Thanks -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#669583: OSError: [Errno 1] Operation not permitted
B1;3100;0cOn Fri, Apr 20, 2012 at 08:48:49AM +0300, Teodor wrote: > Package: unattended-upgrades > Version: 0.76.1 > Severity: grave > Justification: renders package unusable > > Hi, > > The os.setsid() changes makes u-a abort on every invocation: > | root@r2:~# unattended-upgrade > | Traceback (most recent call last): > | File "/usr/bin/unattended-upgrade", line 913, in > | os.setsid() > | OSError: [Errno 1] Operation not permitted > | > | root@r2:~# unattended-upgrade --debug > | Traceback (most recent call last): > | File "/usr/bin/unattended-upgrade", line 913, in > | os.setsid() > | OSError: [Errno 1] Operation not permitted > > Thanks Thanks for your bugreport. I fixed that now. I guess in your case it was already the session-leader for some reason (maybe because of systemd?). Cheers, Michael > > -- System Information: > Debian Release: wheezy/sid > APT prefers unstable > APT policy: (500, 'unstable'), (500, 'testing') > Architecture: amd64 (x86_64) > > Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores) > Locale: LANG=ro_RO.utf8, LC_CTYPE=ro_RO.utf8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > > Versions of packages unattended-upgrades depends on: > ii apt0.9.1 > ii apt-utils 0.9.1 > ii debconf [debconf-2.0] 1.5.42 > ii lsb-release4.1+Debian1 > ii python 2.7.2-10 > ii python-apt 0.8.4 > ii ucf3.0025+nmu3 > > unattended-upgrades recommends no packages. > > Versions of packages unattended-upgrades suggests: > pn bsd-mailx > > -- Configuration Files: > /etc/apt/apt.conf.d/50unattended-upgrades changed: > // Automatically upgrade packages from these origin patterns > Unattended-Upgrade::Origins-Pattern { > // Codename based matching: > // This will follow the migration of a release through different > // archives (e.g. from testing to stable and later oldstable). > // "o=Debian,n=squeeze"; > // "o=Debian,n=squeeze-updates"; > // "o=Debian,n=squeeze-proposed-updates"; > // "o=Debian,n=squeeze,l=Debian-Security"; > // Archive or Suite based matching: > // Note that this will silently match a different release after > // migration to the specified archive (e.g. testing becomes the > // new stable). > "o=Debian,a=unstable"; > // "o=Debian,a=stable"; > // "o=Debian,a=stable-updates"; > // "o=Debian,a=proposed-updates"; > "origin=Debian,archive=stable,label=Debian-Security"; > }; > // List of packages to not update > Unattended-Upgrade::Package-Blacklist { > //"vim"; > //"libc6"; > //"libc6-dev"; > //"libc6-i686"; > }; > // This option allows you to control if on a unclean dpkg exit > // unattended-upgrades will automatically run > // dpkg --force-confold --configure -a > // The default is true, to ensure updates keep getting installed > //Unattended-Upgrade::AutoFixInterruptedDpkg "false"; > // Split the upgrade into the smallest possible chunks so that > // they can be interrupted with SIGUSR1. This makes the upgrade > // a bit slower but it has the benefit that shutdown while a upgrade > // is running is possible (with a small delay) > //Unattended-Upgrade::MinimalSteps "true"; > // Install all unattended-upgrades when the machine is shuting down > // instead of doing it in the background while the machine is running > // This will (obviously) make shutdown slower > //Unattended-Upgrade::InstallOnShutdown "true"; > // Send email to this address for problems or packages upgrades > // If empty or unset then no email is sent, make sure that you > // have a working mail setup on your system. A package that provides > // 'mailx' must be installed. > Unattended-Upgrade::Mail "root"; > // Set this value to "true" to get emails only on errors. Default > // is to always send a mail if Unattended-Upgrade::Mail is set > Unattended-Upgrade::MailOnlyOnError "true"; > // Do automatic removal of new unused dependencies after the upgrade > // (equivalent to apt-get autoremove) > Unattended-Upgrade::Remove-Unused-Dependencies "true"; > // Automatically reboot *WITHOUT CONFIRMATION* if a > // the file /var/run/reboot-required is found after the upgrade > //Unattended-Upgrade::Automatic-Reboot "false"; > // Use apt bandwidth limit feature, this example limits the download > // speed to 70kb/sec > //Acquire::http::Dl-Limit "70"; > > > -- debconf information: > * unattended-upgrades/enable_auto_updates: true > > -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#669583: OSError: [Errno 1] Operation not permitted
One important detail: I use «systemd», so this might not be a bug in U-A. Thaks -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#669583: OSError: [Errno 1] Operation not permitted
Package: unattended-upgrades Version: 0.76.1 Severity: grave Justification: renders package unusable Hi, The os.setsid() changes makes u-a abort on every invocation: | root@r2:~# unattended-upgrade | Traceback (most recent call last): | File "/usr/bin/unattended-upgrade", line 913, in | os.setsid() | OSError: [Errno 1] Operation not permitted | | root@r2:~# unattended-upgrade --debug | Traceback (most recent call last): | File "/usr/bin/unattended-upgrade", line 913, in | os.setsid() | OSError: [Errno 1] Operation not permitted Thanks -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=ro_RO.utf8, LC_CTYPE=ro_RO.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages unattended-upgrades depends on: ii apt0.9.1 ii apt-utils 0.9.1 ii debconf [debconf-2.0] 1.5.42 ii lsb-release4.1+Debian1 ii python 2.7.2-10 ii python-apt 0.8.4 ii ucf3.0025+nmu3 unattended-upgrades recommends no packages. Versions of packages unattended-upgrades suggests: pn bsd-mailx -- Configuration Files: /etc/apt/apt.conf.d/50unattended-upgrades changed: // Automatically upgrade packages from these origin patterns Unattended-Upgrade::Origins-Pattern { // Codename based matching: // This will follow the migration of a release through different // archives (e.g. from testing to stable and later oldstable). // "o=Debian,n=squeeze"; // "o=Debian,n=squeeze-updates"; // "o=Debian,n=squeeze-proposed-updates"; // "o=Debian,n=squeeze,l=Debian-Security"; // Archive or Suite based matching: // Note that this will silently match a different release after // migration to the specified archive (e.g. testing becomes the // new stable). "o=Debian,a=unstable"; // "o=Debian,a=stable"; // "o=Debian,a=stable-updates"; // "o=Debian,a=proposed-updates"; "origin=Debian,archive=stable,label=Debian-Security"; }; // List of packages to not update Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; }; // This option allows you to control if on a unclean dpkg exit // unattended-upgrades will automatically run // dpkg --force-confold --configure -a // The default is true, to ensure updates keep getting installed //Unattended-Upgrade::AutoFixInterruptedDpkg "false"; // Split the upgrade into the smallest possible chunks so that // they can be interrupted with SIGUSR1. This makes the upgrade // a bit slower but it has the benefit that shutdown while a upgrade // is running is possible (with a small delay) //Unattended-Upgrade::MinimalSteps "true"; // Install all unattended-upgrades when the machine is shuting down // instead of doing it in the background while the machine is running // This will (obviously) make shutdown slower //Unattended-Upgrade::InstallOnShutdown "true"; // Send email to this address for problems or packages upgrades // If empty or unset then no email is sent, make sure that you // have a working mail setup on your system. A package that provides // 'mailx' must be installed. Unattended-Upgrade::Mail "root"; // Set this value to "true" to get emails only on errors. Default // is to always send a mail if Unattended-Upgrade::Mail is set Unattended-Upgrade::MailOnlyOnError "true"; // Do automatic removal of new unused dependencies after the upgrade // (equivalent to apt-get autoremove) Unattended-Upgrade::Remove-Unused-Dependencies "true"; // Automatically reboot *WITHOUT CONFIRMATION* if a // the file /var/run/reboot-required is found after the upgrade //Unattended-Upgrade::Automatic-Reboot "false"; // Use apt bandwidth limit feature, this example limits the download // speed to 70kb/sec //Acquire::http::Dl-Limit "70"; -- debconf information: * unattended-upgrades/enable_auto_updates: true -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org