stopping amd causes a freeze

Dominic Fandrey kamikaze at bsdforen.de
Sat Jul 27 08:33:22 UTC 2013


On 26/07/2013 19:10, Dominic Fandrey wrote:
> On 25/07/2013 12:00, Konstantin Belousov wrote:
>> On Thu, Jul 25, 2013 at 09:56:59AM +0200, Dominic Fandrey wrote:
>>> On 22/07/2013 12:07, Konstantin Belousov wrote:
>>>> On Mon, Jul 22, 2013 at 11:50:24AM +0200, Dominic Fandrey wrote:
>>>>> ...
>>>>>
>>>>> I run amd through sysutils/automounter, which is a scripting solution
>>>>> that generates an amd.map file based on encountered devices and devd
>>>>> events. The SIGHUP it sends to amd to tell it the map file was updated
>>>>> does not cause problems, only a -SIGKILL- SIGTERM may cause the freeze.
>>>>>
>>>>> Nothing was mounted (by amd) during the last freeze.
>>>>>
>>>>> ...
>>>>
>>>> Are you sure that the machine did not paniced ?  Do you have serial console ?
>>>>
>>>> The amd(8) locks itself into memory, most likely due to the fear of
>>>> deadlock. There are some known issues with user wirings in stable/9.
>>>> If the problem you see is indeed due to wiring, you might try to apply
>>>> r253187-r253191.
>>>
>>> I tried that. Applying the diff was straightforward enough. But the
>>> resulting kernel paniced as soon as it tried to mount the root fs.
>> You did provided a useful info to diagnose the issue.
>>
>> Patch should keep KBI compatible, but, just in case, if you have any
>> third-party module, rebuild it.
>>
>>>
>>> So I'll wait for the MFC from someone who knows what he/she is doing.
>>
>> Patch below booted for me, and I run some sanity check tests for the
>> mlockall(2), which also did not resulted in misbehaviour.
>>
> 
> Your patch applied cleanly and the system booted with the resulting
> kernel.
> 
> Amd exhibits several very strange behaviours. ...

I can verify the whole thing with a clean world and kernel.

This time I'll concentrate on the first instance of amd:

# tail -n3 /var/log/messages
Jul 27 10:08:56 mobileKamikaze kernel: newnfs server pid5868 at mobileKamikaze:/var/run/automounter.amd.mnt: not responding
Jul 27 10:09:41 mobileKamikaze kernel: newnfs server pid5868 at mobileKamikaze:/var/run/automounter.amd.mnt: not responding
Jul 27 10:11:41 mobileKamikaze last message repeated 3 times

The process, it turns out, simply doesn't exist. There is another
process, though:
# ps auxww | grep -F sbin/amd
root       5869   0.0  0.1  12036   8020 ??  S    10:08am   0:00.01 /usr/sbin/amd -r -p -a /var/run/automounter.amd -c 4 -w 2 /var/run/automounter.amd.mnt /var/run/automounter.amd.map

# cat /var/run/automounter.amd.pid
5868

Here is what I think happens, amd forks a subprocess and the main
process, silently dies after it wrote its pidfile.

For completeness:
# mount
/dev/ufs/5root on / (ufs, local, noatime, soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/ufs/5stor on /pool/5stor (ufs, local, noatime, soft-updates)
/pool/5stor/usr on /usr (nullfs, local, noatime)
/pool/5stor/var on /var (nullfs, local, noatime)
/usr/home/root on /root (nullfs, local, noatime)
tmpfs on /var/log (tmpfs, local)
tmpfs on /var/run (tmpfs, local)
tmpfs on /tmp (tmpfs, local)

Everything else seems to work. I'll revert your patch for now and
wait for the MFC.

-- 
A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail? 


More information about the freebsd-stable mailing list