[devel] баги в tmpfs: hasher ... и ттеперь udev
Anton Farygin
=?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Вт Май 16 12:25:42 MSD 2006
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 при монтировании ?
Rgds,
Rider
Подробная информация о списке рассылки Devel