Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 7874 - Блокируются файлы на cifs-разделе   Make a simular bug
Summary: Блокируются файлы на cifs-разделе
Status: CLOSED LATER
Alias: None
Product: CIFS@Etersoft
Classification: Продукты (Products)
Component: блокировки файлов и доступ (show other bugs)
Version: не указана
Hardware: PC All
: P4 minor
Target Milestone: ---
Deadline: 2014-12-31
Assignee: Pavel Shilovsky
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 3043
  Show dependency treegraph
 
In work:
Reported: 2011-11-16 21:47 MSK by Александр Морозов
Modified: 2024-04-15 20:03 MSK (History)
2 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Александр Морозов 2011-11-16 21:47:02 MSK
Собираем утилиту busytest из cifs/busytest.c в репозитории git.office:/projects/wine/wine-etersoft-devel.git

Монтируем cifs-раздел так:
mount -t cifs //winxp/Rarus /mnt/cifs -o user=guest,pass=,rw,iocharset=utf8,noperm,wine
или так:
mount -t cifs //winxp/Rarus /mnt/cifs -o user=guest,pass=,rw,iocharset=utf8,noperm,strictcache,forcemand
winxp - машина с Windows XP

Запускаем на cifs-разделе и нажимаем Ctrl-C после появления третьей звёздочки:
$ ./busytest fy
* * * ^C

После этого файл не открывается:
$ cat fy
cat: fy: Текстовый файл занят

Файл начинает открываться только после перемонтирования раздела.
Воспроизводится на машинах atlant (3.0.6-std-def-alt1) и euclid (3.0.7-std-def-alt1). На обоих стоит etercifs-5.1.4-alt1.
Comment 1 Pavel Shilovsky 2011-11-17 14:52:25 MSK
Это раньше работало на предыдущих ядрах?
Comment 2 Александр Морозов 2011-11-17 15:01:13 MSK
На 2.6.32-ovz-el-alt38 с etercifs-5.1.2-alt1 проблемы нет.
Comment 3 Pavel Shilovsky 2011-11-21 22:15:22 MSK
Проблема существует с ядра 2.6.38. Возникает она потому, что теперь в данном ядре изменился режим обработки сообщений: ждём ответ от сервера беконечно и тестируем его echo запросами; в случае, если сервер не отвечает на echo запросы, переустанавливаем соединение. Это изменения повлекло за собой то, что цикл ожидания ответа от сервера можно прервать (раньше он только сам прерывался после выставленного таймаута). Теперь, когда мы прерываем операцию, на сервер отсылается nt_cancel сообщение и оно не всегда успевает добраться до сервера раньше, чем тот ответит на запрос.

amorozov, данная проблема проявляется в реальной работе приложений или это было случайно поймано на синтетических тестах?

Как решение, можно сделать специальный хак, что если мы получаем open response и не находим объекта ожидающего данный пакет, то конструируем запрос на закрытие. Такому же поведению отвечает команда установки блокировки.
Comment 4 Александр Морозов 2011-11-21 23:21:16 MSK
> amorozov, данная проблема проявляется в реальной работе приложений или это было
> случайно поймано на синтетических тестах?
Тест синтетический. В реальной работе такого пока не видел.
Comment 5 Pavel Shilovsky 2014-10-15 10:28:56 MSK
lav@, пока выставляю здесь решена (отложена надолго),
Comment 6 Олег Шевченко 2024-04-15 20:03:26 MSK
Закрыта.