Bug 24186 - Invalid location for DavLock database
Summary: Invalid location for DavLock database
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: apache2 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-29 18:55 MSD by Sergey Kurakin
Modified: 2012-03-23 19:23 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Kurakin 2010-09-29 18:55:06 MSD
Обнаружил в системе файл /etc/httpd2/conf/mods_available/dav_fs.conf из пакета apache2-common. Этот конфиг  не был активирован по причинам #24101. Недолго думая, включил его (a2dismod dav_fs && a2enmod dav_fs) и... лишился dav'а. Попытка монтирования приводит к следующему:

[Wed Sep 29 17:11:20 2010] [error] [client 127.0.0.1] Provider encountered an error while streaming a multistatus PROPFIND response.  [500, #0]
[Wed Sep 29 17:11:20 2010] [error] [client 127.0.0.1] Could not open the lock database.  [500, #400]
[Wed Sep 29 17:11:20 2010] [error] [client 127.0.0.1] (2)No such file or directory: Could not open property database.  [500, #1]

Да и немудрено, dav_fs.conf содержит единственную строку:

DavLockDB "/etc/httpd2/var/DavLock"

Директории "/etc/httpd2/var/" в моей системе нет. Хотелось бы понять, почему выбран такой странный путь для DavLockDB вместо /var/lock/dav по умолчанию?
И если это чем-то оправдано, то необходимо запаковать каталог "/etc/httpd2/var/" в apache2-common.
Comment 1 solo 2010-10-05 17:44:44 MSD
Похоже это бага.
Comment 2 solo 2010-10-07 17:00:31 MSD
(В ответ на комментарий №0)
...
> 
> Да и немудрено, dav_fs.conf содержит единственную строку:
> 
> DavLockDB "/etc/httpd2/var/DavLock"
> 
> Директории "/etc/httpd2/var/" в моей системе нет. Хотелось бы понять, почему
> выбран такой странный путь для DavLockDB вместо /var/lock/dav по умолчанию?
> И если это чем-то оправдано, то необходимо запаковать каталог
> "/etc/httpd2/var/" в apache2-common.

  "/etc/httpd2/var/DavLock" получился после раскрытия "@@ServerRoot@@/var/DavLock" из стандартных конфигов httpd.

  Похоже надо создавать /var/lock/httpd2, делать на него ссылку (/etc/httpd2/lock) и использовать её.

PS: extra-available/httpd-dav.conf есть ещё "@@ServerRoot@@/uploads". Похоже, сдесь будет подобная проблема.
Comment 3 Sergey Kurakin 2010-10-07 23:40:40 MSD
(In reply to comment #2)
>   Похоже надо создавать /var/lock/httpd2, делать на него ссылку
> (/etc/httpd2/lock) и использовать её.

Да, похоже, что авторы проблемного dav_fs.conf имели ввиду что-то вроде этого.
(Честно говоря, я рассматривал ссылки в /etc/httpd2 исключительно как способ переноса древних конфигураций и не вижу смысла использовать эти ссылки в конфигурациях нынешних. Но спорить не буду, Вам виднее.)

Для информации:
1. По умолчанию, т. е. в отсутствие параметра DavLockDB, dav использует /var/lock/dav/DAVLock.
2. Сейчас file /var/lock/dav is not owned by any package, но уверен, что вручную я его не создавал.
3. По индексу нынешнего Сизифа /var/lock/dav принадлежит только пакету mod_dav (это который для apache1.3). Уверен, что этого пакета в моей системе никогда не было.
Вывод: когда-то /var/lock/dav/ был запакован в apache2.

Не имею ничего против, если этот каталог будет называться /var/lock/httpd2/, лишь бы он был. Сейчас его в моей системе нет.

> PS: extra-available/httpd-dav.conf есть ещё "@@ServerRoot@@/uploads". Похоже,
> сдесь будет подобная проблема.

Наверное будет, если кто-то захочет воспользоваться этой экстрой из коробки.
Comment 4 solo 2012-03-23 19:23:16 MSK
  Сейчас в /etc/httpd2/conf/mods-available/dav_fs.conf присутствует:

DavLockDB "/etc/httpd2/lock/DavLock"

  При этом, симлинк /etc/httpd2/lock указывает на /var/lock/httpd2.
А /var/lock/httpd2 -- предоставляется apache2-common.