[devel] баги в tmpfs: hasher ... и ттеперь udev

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Вт Май 16 13:00:56 MSD 2006


Anton Farygin wrote:
> Anton Farygin wrote:
>> Привет.
>>
>> Совсем недавно обсуждалась проблема, которая вылезала при работе 
>> hasher'а на tmpfs.
>>
>> Так вот оказывается, что мы её словили на udev-091-alt2.
>>
>> workaround я нашёл судя по всему, но зато теперь появился testcase, 
>> который с большой вероятностью позволит воспроизводить эту проблему.
>>
>> Вот такой код в udevd:
>> static void export_initial_seqnum(void)
>> {
>>          char filename[PATH_SIZE];
>>          int fd;
>>          char seqnum[32];
>>          ssize_t len = 0;
>>
>>          strlcpy(filename, sysfs_path, sizeof(filename));
>>          strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename));
>>          fd = open(filename, O_RDONLY);
>>          if (fd >= 0) {
>>                  len = read(fd, seqnum, sizeof(seqnum)-1);
>>                  close(fd);
>>          }
>>          if (len <= 0) {
>>                  strcpy(seqnum, "0\n");
>>                  len = 3;
>>          }
>>          strlcpy(filename, udev_root, sizeof(filename));
>>          strlcat(filename, "/" EVENT_SEQNUM, sizeof(filename));
>>          create_path(filename);
>>          fd = open(filename, O_WRONLY|O_TRUNC|O_CREAT, 0644);
>>          if (fd >= 0) {
>>                  write(fd, seqnum, len);
>>                  close(fd);
>>          }
>> }
>>
>> приводил к тому, что файл /dev/.udevd/uevent_seqnum на некоторых машинах 
>>   появлялся с очень большой задержкой (большое 0.5 секунды), что 
>> естественно приводило к проблемам.
>>
>> По моему это явно можно интерпретировать как проблему tmpfs.
>>
>> Конечно надо ещё поэкпериментировать и написать более внятный testcase..
>>
>> Но всё-таки это уже не hasher ;)
> 
> Кстати, поможет ли опции sync при монтировании ?
> 

Опция sync при монтировании tmpfs не помогает ;(

Rgds,
Rider




Подробная информация о списке рассылки Devel