Bug 5904

Summary: 1С:8.2 утекают файловые дескрипторы
Product: WINE@Etersoft Reporter: Jemoytel Sergey <djam5>
Component: Файловые операцииAssignee: Andrey Vusik <night>
Status: CLOSED FIXED QA Contact: Денис Баранов <baraka>
Severity: blocker    
Priority: P1 CC: alla8608, djam5, ignis32, kondratyuk, lav, mid, night, sonner
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: 16106, 15915, 16341 Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 5634    
Attachments: Снимок экрана с сообщениями и ошибками

Description Jemoytel Sergey 2010-08-17 23:17:00 MSD
Created attachment 1793 [details]
Снимок экрана с сообщениями и ошибками

1С:Предприятие 8.2.12.78 при вызове отладчика из режима Конфигуратор появляется сообщение 

от eterx11msg
Превышен лимит на количество открытых файлов в системе...

При этом лимит выставлен на 5000
ulimit -n
5000

одновременно с этим появляется сообщение 1С об ошибке:

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/login:
по причине:
Ошибка при выполнении операции с информационной базой
 'c:\windows\profiles\serg\Мои документы\InfoBase3/1Cv8.1CD'
по причине:
 'c:\windows\profiles\serg\Мои документы\InfoBase3/1Cv8.1CD'

Подобная же ситуация наблюдается при параллельном запуске 1С одной базы в разных режимах Конфигуратор и Предприятие
Comment 1 Денис Баранов 2010-08-18 20:20:33 MSD
Выяснили проблему по джаберу, в итоге оказалось что действительно 1Ска открывает через чур файлов, база битая.
Comment 2 Ignis32 2010-09-30 06:07:27 MSD
Имею схожую проблему, при работе нескольких пользователей или открытии конфигуратора вместе с 1с8.2.

Если значительно увеличить лимиты, через некоторое время отваливается даже ключ защиты.

Иногда появляется аналогичное сообщение eterx11msg и 1с не запускается, иногда 1с просто вешается, с разнообразными сообщениями в консоли вайна. Вот разные варианты предсмертных хрипов:

1)
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT"
x11drv: Can't allocate handle for display fd

2)
xme:exec:SHELL_execute flags ignored: 0x00000100
wine: could not load L"C:\\Program Files\\1cv82\\common\\1cestart.exe": Module not found
fixme:process:__wine_kernel_init 1: L"C:\\Program Files\\1cv81\\bin\\"(L"C:\\windows")
wine: could not load L"C:\\Program Files\\1cv82\\common\\1cestart.exe": Module not found
fixme:process:__wine_kernel_init 1: L"C:\\Program Files\\1cv81\\bin\\"(L"C:\\windows")

3)
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT"
wine: Unhandled page fault on read access to 0x00000000 at address 0x4106ea (thread 002f), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 57 136") (87)
Read the Wine Developers Guide on how to set up winedbg or another debugger

4)
err:ntdll:RtlpWaitForCriticalSection section 0x7e82bfa0 "?" wait timed out in thread 0042, blocked by 0000, retrying (60 sec)

----------------------------------------
1с8.2 запускается с рабочего стола gnome под ubuntu 10.04, в сессии nx,
База локальная, файловая, не используется за пределами терминала.
В том же окружении 1с7 работала без проблема, пока не появилась восьмерка.


$ wine --version
WINE@Etersoft 1.0 Network 1.0.12-eter7/12
Product: WINE@Etersoft 1.0 Network (лицензия на терминальный сервер + подключения неограничены, коробочная версия)


----------------------------------------


Что подразумевается под битой базой и как это проверить?


Comment 3 Jemoytel Sergey 2010-09-30 09:13:06 MSD
Под битой базой понимается наличие ошибок в оной. Т.е. если провести в режиме конфигуратора тестирование и исправление то обязательно вылезут ошибки. Однако, как выяснилось позже проблема появления данной ошибки все-таки не в этом... Так как у меня очень болшое количество всякого рода конфигураций, и в один прекрасный день ошибки стало выдавать на всех без исключения. 

При этом 8.1 работает без таких вот ошибок
Comment 4 Александр Морозов 2010-09-30 12:00:51 MSD
2 lav:
А у нас проблема воспроизводится?
Comment 5 Vitaly Lipatov 2010-09-30 18:32:31 MSD
*** Bug 6029 has been marked as a duplicate of this bug. ***
Comment 6 Глеб Кордюков 2010-10-04 12:55:09 MSD
Андрей. Надо протестировать у нас. Указать номер бутылки. И процесс воспроизведения.
Comment 7 Jemoytel Sergey 2010-10-04 14:30:03 MSD
В ОС выставлена Ubuntu. Могу подтвердить что подобное происходит и на Mandriva 2010.1
Comment 8 Денис Баранов 2010-10-04 14:52:14 MSD
Возможно такая же проблема и в http://bugs.etersoft.ru/show_bug.cgi?id=6121
Comment 9 Andrey Vusik 2010-10-04 21:52:36 MSD
Ничего подобного за день проверки выявлено не было..
Буду экспериментировать еще.
Comment 10 Глеб Кордюков 2010-10-05 14:19:33 MSD
Возможно стоит списаться с клиентами и уточнить.
Comment 11 Andrey Vusik 2010-10-06 17:05:26 MSD
Проверял на guest@lin-test
Лимиты те же.
WINE@Etersoft 1.0 SQL 1.0.12-eter7.16/14
Запускал копии с одной бызы.
Запускал отладку, выполнял всевозможные проверки базы в конфигураторе, построение отчетов в программах, оставлял в простое -
Ничего заявленного не обнаружил.

Нужны конкретные действия в программе, приводящие к падению. Или удаленный доступ.

Пока багу закрываем.
Comment 12 Andrey Vusik 2010-10-20 17:49:21 MSD
Воспроизвел в Ubuntu 10.10 в vbox (На всякий случай есть еще  Mandriva 2010.1 с такой же проблемой)
wine eter7.19/14
Воспроизводится как на 80 так и на 87 платформе.

Порядок воспроизведения:
открываем конфигуратор и из него отладку - получаем результат на скриншоте.
Comment 13 Andrey Vusik 2010-10-20 18:21:09 MSD
*** Bug 6030 has been marked as a duplicate of this bug. ***
Comment 14 Александр Морозов 2010-10-21 20:18:34 MSD
Выяснил, что при каждой попытке открыть файл с SHARE-флагами, вступающими в конфликт с уже имеющимися, wineserver открывает файловый дескриптор, который потом не может быть закрыт до тех пор, пока не будут закрыты все соответствующие файлу хэндлы. Это приводит к исчерпанию лимита на файловые дескрипторы и вызову eterx11msg с сообщением об ошибке.

Добавил проверку на SHARE-флаги до открытия файла. Эта проверка должна предотвратить получение файлового дескриптора в случае, если мы можем заранее определить, что открытие файла завершится со STATUS_SHARING_VIOLATION.
Comment 15 Глеб Кордюков 2010-10-21 20:22:41 MSD
Патч добавлен в открытую часть. Надо протестировать на тестовом вайне.
Comment 16 Jemoytel Sergey 2010-10-21 20:42:56 MSD
(In reply to comment #15)
> Патч добавлен в открытую часть. Надо
> протестировать на тестовом вайне.
> 

Давайте проверю. Где взять патч или готовую сборку под Mdv2010.1?
Comment 17 Денис Баранов 2010-10-21 20:52:15 MSD
(In reply to comment #16)
> Давайте проверю. Где взять патч или готовую
> сборку под Mdv2010.1?
> 
Заказать на странице продукта версию testing.
Comment 18 Andrey Vusik 2010-10-22 14:36:18 MSD
Проверил. Все работает.