Re: multimedia/vlc causes a panic if media files are on msdosfs

From: Rainer Hurling <rhurlin_at_gwdg.de>
Date: Mon, 23 Nov 2009 18:13:08 +0100
On 22.11.2009 00:44 (UTC+1), Oliver Pinter wrote:
> can you run memtest?

hmmm. memtest reports no errors. And I do not think that this was a 
memory specific task.
I observed the below described behaviour on to different machines, both 
running 9.0-CURRENT. And there are no panics any more after system 
update on november 21th.

> On 11/21/09, Rainer Hurling <rhurlin_at_gwdg.de> wrote:
>> On 20.11.2009 16:59 (UTC+1), Rainer Hurling wrote:
>>> On 20.11.2009 20:26 (UTC+1), Aditya Sarawgi wrote:
>>>> On Fri, Nov 20, 2009 at 01:01:23PM +0200, Kostik Belousov wrote:
>>>>> On Thu, Nov 19, 2009 at 02:30:33PM -0800, Doug Barton wrote:
>>>>>> Please see http://www.freebsd.org/cgi/query-pr.cgi?pr=140648 for more
>>>>>> information, including a trace.
>>>>>>
>>>>>> There is also some evidence that the same problem is triggered by
>>>>>> accessing files on an NTFS partition. The VLC folks have suggested
>>>>>> that the problem may be related to threading.
>>>>> This is because msdosfs and ntfs are not mpsafe, and it seems that
>>>>> VLC using recently added F_RDAHEAD/F_READAHEAD fcntls.
>>>>>
>>>>> Please try this.
>>>>>
>>>>> diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
>>>>> index 434f54a..676de65 100644
>>>>> --- a/sys/kern/kern_descrip.c
>>>>> +++ b/sys/kern/kern_descrip.c
>>>>> _at__at_ -718,14 +718,15 _at__at_ kern_fcntl(struct thread *td, int fd, int cmd,
>>>>> intptr_t arg)
>>>>>              do {
>>>>>                  new = old = fp->f_flag;
>>>>>                  new |= FRDAHEAD;
>>>>> -            } while (atomic_cmpset_rel_int(&fp->f_flag, old, new) ==
>>>>> 0);
>>>>> +            } while (!atomic_cmpset_rel_int(&fp->f_flag, old, new));
>>>>>  readahead_vnlock_fail:
>>>>>              VFS_UNLOCK_GIANT(vfslocked);
>>>>> +            vfslocked = 0;
>>>>>          } else {
>>>>>              do {
>>>>>                  new = old = fp->f_flag;
>>>>>                  new &= ~FRDAHEAD;
>>>>> -            } while (atomic_cmpset_rel_int(&fp->f_flag, old, new) ==
>>>>> 0);
>>>>> +            } while (!atomic_cmpset_rel_int(&fp->f_flag, old, new));
>>>>>          }
>>>>>          fdrop(fp, td);
>>>>>          break;
>>>> I have been getting panics with VLC on UFS filesytem too, Although the
>>>> frequency of panics on a UFS filesystem is pretty low as compared to
>>>> msdosfs and ntfs systems and they are very abrupt. I will try getting
>>>> a trace.
>>> I am observing panics also with newest vlc port on ufs2. System panics
>>> whenever playing .flv files.
>> With this patch even my panics went away :-)
>>
>> Thank you very much,
>> Rainer Hurling
>>
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>>
Received on Mon Nov 23 2009 - 16:13:17 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:58 UTC