Public bug reported:

When installing the package 'macfanctld' it automatically starts the
daemon (/usr/sbin/macfanctld)

However, the daemon child process inherits stderr and doesn't close it.
As a result, any package which forks a child apt process and passes
pipes for stdout/stderr will wait indefinitely for them to be closed.

I cam across this problem using ansible:

~~~
- hosts: localhost
  tasks:
  - apt: pkg=macfanctld state=absent purge=yes
  - apt: pkg=macfanctld state=present
~~~

This consistently hangs at the second operation. At this point, ps
shows:

~~~
root     11471  0.0  0.0  64956  2112 pts/1    S+   13:16   0:00 sudo 
ansible-playbook tmp.yml
root     11472  2.1  0.1  85664 17160 pts/1    S+   13:16   0:00 
/usr/bin/python /usr/bin/ansible-playbook tmp.yml
root     11751  0.0  0.0   4444   648 pts/1    S+   13:16   0:00 /bin/sh -c 
/usr/bin/python 
/home/nsrc/.ansible/tmp/ansible-tmp-1405516587.94-157111181416778/apt; rm -rf 
/home/nsrc/.ansible/tmp/ansible-tmp-1405516587.94-157111181416778/ >/dev/null 
2>&1
root     11752  9.7  0.4 120508 71432 pts/1    S+   13:16   0:00 
/usr/bin/python 
/home/nsrc/.ansible/tmp/ansible-tmp-1405516587.94-157111181416778/apt
root     11756 13.2  0.0      0     0 pts/1    Z+   13:16   0:00 [apt-get] 
<defunct>
root     12000  0.5  0.0   4616   788 ?        Ss   13:16   0:00 
/usr/sbin/macfanctld
~~~

Notice that apt-get process has completed, but the parent process is
still waiting for it to close its stdout or stderr.

If you manually kill the macfanctld process, the ansible process
completes successfully.

You can demonstrate this even more directly like this:

~~~
# ( service macfanctld start 2>&1 ) | cat
 * Starting Apple MacBook (Pro) fan control daemon macfanctld
   ...done.
<< hangs at this point >>
~~~

Again, killing macfanctld from another terminal allows the command to
complete.

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: macfanctld 0.6+repack1-1
ProcVersionSignature: Ubuntu 3.13.0-30.55-generic 3.13.11.2
Uname: Linux 3.13.0-30-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.2
Architecture: amd64
Date: Wed Jul 16 13:55:04 2014
Dependencies:
 gcc-4.9-base 4.9-20140406-0ubuntu1
 libc6 2.19-0ubuntu6
 libgcc1 1:4.9-20140406-0ubuntu1
 multiarch-support 2.19-0ubuntu6
InstallationDate: Installed on 2014-07-16 (0 days ago)
InstallationMedia: Ubuntu-Server 14.04 LTS "Trusty Tahr" - Release amd64 
(20140416.2)
ProcEnviron:
 LANGUAGE=en_GB:en
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
SourcePackage: macfanctld
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: macfanctld (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug trusty

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1342740

Title:
  macfanctld keeps stderr open when daemonizing

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/macfanctld/+bug/1342740/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to