Bug 15807 - fails with readonly / fs
Summary: fails with readonly / fs
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: dhcpcd (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-27 20:09 MSD by Nick S. Grechukh
Modified: 2009-08-27 21:21 MSD (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nick S. Grechukh 2008-05-27 20:09:53 MSD
зачем нужен этот код и почему он реализован именно так?

dhcpcd.c:367:
        if (mkdir (ETCDIR, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP
                           | S_IROTH | S_IXOTH) && errno != EEXIST )
        {
                logger (LOG_ERR, "mkdir(\"%s\",0): %s\n", ETCDIR, strerror 
(errno));
                exit (EXIT_FAILURE);
        }

в моем случае он получает EROFS (Read-only file system) и благополучно сдыхает, 
при том что сама /etc на запись доступна.
Steps to Reproduce:
http://lists.altlinux.org/pipermail/sisyphus/2008-May/214990.html
Comment 1 Nick S. Grechukh 2008-05-27 20:19:34 MSD
собственно говоря, даже если действительно /etc недоступна для записи, это не 
повод умирать. Могут ведь выдать только ip && default gateway.
Comment 2 Nick S. Grechukh 2008-05-28 12:57:37 MSD
я предлагаю делать так:

stat("/etc");

если (not exist) then  mkdir("/etc") else touch("/etc/resolv.conf") ;

если errno = EROFS -> выставить флаг RO и не пытаться писать полученную 
конфигурацию. это уже не обязательно, вопрос ro /etc у нас пока не стоит :)

Comment 3 Michael Shigorin 2008-05-28 13:03:21 MSD
Апстрим уведоми pls, он переехал/ожил.
http://roy.marples.name/dhcpcd
Comment 4 Nick S. Grechukh 2008-05-28 14:08:47 MSD
http://bugs.marples.name/show_bug.cgi?id=86
Comment 5 Michael Shigorin 2009-07-20 18:06:57 MSD
2 gns: не знаешь, ещё актуально?
2 sem: глянешь?
Comment 6 Mikhail Efremov 2009-07-20 18:36:51 MSD
Судя по http://marples.name/projects/dhcpcd/ticket/86 для dhcpcd 4 это вообще не актуально. Бегло просмотрев dhcpcd.c я подобного кода действительно не вижу. Но лучше бы проверить, конечно...
Comment 7 Mikhail Efremov 2009-08-22 23:57:40 MSD
Не проверил, но веря апстриму и посмотрев код закрываю.
Comment 8 Michael Shigorin 2009-08-27 21:21:47 MSD
И то спасибо.