Re: COPY и несуществующая директория = 500 Internal Server Error
Maxim Dounin
mdounin at mdounin.ru
Sat Dec 28 13:00:43 UTC 2013
Hello!
On Sat, Dec 28, 2013 at 03:20:47PM +0400, Михаил Монашёв wrote:
> Здравствуйте.
>
> Бага или фича?
>
> Если через WebDAV копируется несуществующий файл в существующей
> директории, то выдаётся 404. Но если копируется файл из несуществующей
> директории в неё же, то выдаётся 500 - Internal Server Error. Это
> правильное поведение или должно 404 тоже выдаваться?
Если исходный файл/каталог не сущетсвует, то в любом случае должно
выдаваться 404.
> Пример:
> копируем http://i39.beon.ru/17/74/1467417/47/avatars/4.jpeg
> в http://i39.beon.ru/17/74/1467417/47/avatars/4.jpeg.tmp
> и получаем: 500 Internal Server Error
>
> в error_log-е:
> 2013/12/28 11:54:28 [crit] 2845#0: *4749150 open() "/opt2/beon/i39/17/74/1467417/47/avatars/4.jpeg.tmp" failed (2: No such file or directory), client: 89.208.146.210, server: i39.beon.ru, request: "COPY http://i39.beon.ru/17/74/1467417/47/avatars/4.jpeg HTTP/1.1", host: "i39.beon.ru"
>
> в access.log-e:
> 28/Dec/2013:11:54:28 +0400 500 89.208.146.210 353 i39.beon.ru "COPY http://i39.beon.ru/17/74/1467417/47/avatars/4.jpeg HTTP/1.1" "-" "-" "-" "-" "-" "-" "close"
Должно быть так:
2013/12/28 16:51:35 [error] 33014#0: *1 lstat() "/path/to/foo/bar/bazz" failed (2: No such file or directory), client: 127.0.0.1, server: , request: "COPY /foo/bar/bazz HTTP/1.1", host: "localhost"
127.0.0.1 - - [28/Dec/2013:16:51:35 +0400] "COPY /foo/bar/bazz HTTP/1.1" 404 168 "-" "-"
То, что у тебя сломался open(), намекает на то, что в процессе
выполнения этого запроса кто-то удалил каталог.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru