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