deadlock avoided crash in 0.34.6
Dr. Lex Wennmacher
wennmach at geo.Uni-Koeln.DE
Mon Nov 6 15:40:12 CET 2000
On 04 Nov 2000 21:57:42 +0100 Love <lha at stacken.kth.se> wrote:
> sperber at informatik.uni-tuebingen.de (Michael Sperber [Mr. Preprocessor])
writes:
>
>> On FreeBSD 4.0-RELEASE with arla 0.34.6 I see this crash about once a
>> day:
>>
>> Nov 4 17:37:06 sams /kernel: xfs_message_rpc: deadlock avoidedpid = 8006 !=
8006
>> Nov 4 17:37:06 sams /kernel: xfs_inactive: failed writing back data: 11
>> Nov 4 17:37:07 sams /kernel: pid 8006 (arlad), uid 0: exited on signal 6
(core dumped)
>>
>> Somehow, this "8006 != 8006" business looks funny to me ...
>>
>> Any clues?
>
> Yes, that is leftover debugging stuff from when we tracked from where
> deadlock happend in arlad. Arlad should have dumped a core, can I see a
> backtrace ?
>
> The errormessage is, interesting.
I'm having this problem with 0.34.5, too. The code in question is this:
xfs/bsd/xfs_dev-common.c (line 400):
if (chan->proc != NULL && proc->p_pid == chan->proc->p_pid) {
printf("xfs_message_rpc: deadlock avoided"
"pid = %u != %u\n", proc->p_pid, chan->proc->p_pid);
return EDEADLK;
}
Your testing for `proc->p_pid==chan->proc->p_pid', but the printf reports
`proc->p_pid!=chan->proc->p_pid', which is responsible for the "interesting"
error messages. Now, what is right here, two `==' or two `!='?
Cheers
Lex
More information about the Arla-drinkers
mailing list