|
|
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
вот ведь... в конце вместо символа ;, символ + кнопки "редактировать" нет? 8\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2007, 13:09:40 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
Scott TigerПокажи целиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 01:51:26 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
Вероятная причина - параллельная работа 2 или более экземпляров этого скрипта либо этого скрипта и ещё какого-то механизма, удаляющего логи. Вот смотри: запускается find (начало трейса), открывает директорию: Код: plaintext 1. 2. 3. делает getdents в несколько проходов Код: plaintext и далее для каждого полученного в проходе имени файла получает информацию о нём (lstat) Код: plaintext 1. В какой-то момент файла, имя которого получилось в результате работы getdents, на диске не оказывается, и lstat возвращает ошибку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Получается, что, с точки зрения getdents, файл есть, а, на самом деле, его нет :) Скорее всего, он был удалён в процессе между вызовами getdents и lstat, хотя вероятность этого мне представляется небольшой. Также небольшой представляется вероятность наличия бага в какой-либо широкоизвестной библиотечной функции, типа readdir или как там find написан... Ещё интересный вариант - повреждение файловой системы, я бы fsck прогнал. Есть рыба-пила и есть рыба-молот. Вот только не понятно, что они там строят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 17:37:10 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
Есть такое подозрение, что когда файл -- символическая ссылка на не существующий файл, то getdents() его увидит, а lstat() вернёт ENOENT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 10:30:21 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
Scott Tigerс точки зрения getdents, файл есть вот этого я не вижу :( где-то есть про этот 23483? пока сдвинул задание на "пораньше". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 10:31:40 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
Вопрошатель Scott Tigerс точки зрения getdents, файл есть вот этого я не вижу :( где-то есть про этот 23483? пока сдвинул задание на "пораньше". Здесь не видно :) Очевидно, что lstat выполняется не от балды для каких файлов, а для тех, имена которых возвращает getdents. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 10:53:19 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
RAndrewЕсть такое подозрение, что когда файл -- символическая ссылка на не существующий файл, то getdents() его увидит, а lstat() вернёт ENOENT. Ну в коде find не должно быть непосредственных вызовов getdents, судя по man getdents. Ну и банальный эксперимент не подтверждает эту гипотезу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 10:55:43 |
|
||
|
find, rm - No such file or directory
|
|||
|---|---|---|---|
|
#18+
Scott TigerНу и банальный эксперимент не подтверждает эту гипотезу :) А что вернул, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 11:16:00 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=34977861&tid=1487428]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 323ms |

| 0 / 0 |
