[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Make, ccache and unreaped defunct shells



I've installed sarge/amd64 on a machine with a couple of Opteron
275s. We're using make (Debian version), ccache 2.4 and distcc 2.18.3
to build quite a large amount of code using -j12.

At some point during the build make will stop spawning new
jobs. Looking at the process listing there are a large number
(equivalent to the number passed to -j) of completed shell processes
sat unreaped with make sat asleep waiting for them.

 mac 32196  1.0  0.2 24876 19648 pts/5  S+  11:51   0:02 make
 mac 13234  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14254  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14296  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14308  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14470  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14491  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14518  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14530  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14545  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14571  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14589  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>
 mac 14610  0.0  0.0    0       0 pts/5 Z+  11:52   0:00 [sh] <defunct>

According to /proc/32196/wchan the make process is in pipe_wait.

It seems like there is a fundamental problem with waiting for child
processes somewhere. Has anyone seen anything similar or recommend the
best course of action?

---8<---
ii  libc6                       2.3.2.ds1-22
ii  kernel-image-2.6.8-11-amd64 2.6.8-16sarge1
ii  make                        3.80-9
--->8---

-- 
Mike Crowe



Reply to: