Bug 3806

Summary: Гарант 7.3: не устанавливаются файлы данных
Product: WINE@Etersoft Reporter: Денис Баранов <baraka>
Component: Установка программ / MSIAssignee: Илья Шпигорь <shpigor>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P1 CC: baraka, delayer, kondratyuk, lav, sonner, vitperov
Version: 1.0.10   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: 10287, 10965 Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3195, 3493, 4005, 4284    
Attachments: Ошибка при установке Гаранта

Description Денис Баранов 2009-04-11 00:34:15 MSD
После установки самого Гаранта начинается установка данных, но после ввода отзыва выдается сообщение об ошибке.
Ведется выяснение обстоятельств.
Comment 1 Денис Баранов 2009-04-21 14:14:39 MSD
*** Bug 3819 has been marked as a duplicate of this bug. ***
Comment 2 Денис Баранов 2009-04-22 18:34:32 MSD
Было выяснено что если устанавливать прошлую версию Гарант 7.2, то установка программы и данных проходит успешно. 
to vitperov: можешь посмотреть на ошибки!?
Для получения отзыва нужно направить письмо на "Гарант.Служба технической поддержки" <hotline@garant.ru>
Comment 3 Денис Баранов 2009-04-24 20:15:02 MSD
Было выяснено что версия 7.2 устанавливается на 1.0.10 через wine98 без ошибок. Надо искать в чем проблема.
Comment 4 Виталий Перов 2009-05-04 14:48:06 MSD
Да, проблему увидел. Она возникает сразу после ввода полученного кода.

В консоли при этом вообще ничего не пишется.
Comment 5 Виталий Перов 2009-05-04 16:08:42 MSD
При отладке по каналу shell в консоли пусто.
При отладке по каналу ntdll подозрительные сообщения типа:

warn:ntdll:NtCreateFile L"\\??\\C:\\Program Files\\Garant-Local\\Logs\\datasetup\\" not found (c0000035)

trace:ntdll:NtReadFile (0x2e0,(nil),(nil),(nil),0x3b1cdd4,0x3b1ce5c,0x00000200,(nil),(nil)),partial stub!

warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\winNT\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\winNT\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\command\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\winNT\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\winNT\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\mscoree.dll" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\command\\mscoree.dll" not found (c0000034)


и ещё:
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\command\\krnl386.exe16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\Program Files\\Garant-Local\\apps\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system.drv16" not found (c0000034)
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\command\\system.drv16" not found (c0000034)


аналогично:
warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\gdi.exe16" not found (c0000034)

warn:ntdll:NtQueryFullAttributesFile L"\\??\\C:\\windows\\system32\\user.exe16" not found (c0000034)

Comment 6 Виталий Перов 2009-05-04 16:51:50 MSD
На всякий случай попробовал установить в бутылку dotNet. Не помогло.

Трейс по каналу ole ничего не даёт:
trace:ole:DllMain 0x7e9c0000 0x2 (nil)
trace:ole:DllMain 0x7e9c0000 0x3 (nil)
trace:ole:DllMain 0x7e9c0000 0x2 (nil)

Comment 7 Виталий Перов 2009-05-04 17:38:14 MSD
Трейс по каналу setupapi ничего не выводит.

Сделал трейс по каналу file.
Ничего подозрительного не увидел
Comment 8 Константин Кондратюк 2009-05-15 12:11:51 MSD
Даю багу в общий доступ
Comment 9 Виталий Перов 2009-06-01 15:35:26 MSD
При установке запускается несколько приложений:
 pid      threads  parent   executable (all id:s are in hex)
 00000008 1        00000000 'datasetup.exe'
 00000032 1        00000008 'garant.exe'
 0000002d 14       00000032 'F1Shell.run'
 00000060 4        0000002d 'F1DataSetup.run'

За графический интерфейс при вводе пароля отвечает F1DataSetup.run
Пробывал перехватывать отладчиком исключения - исключение возникает только после ошибка (при нажатии на OK в окне сообщения об ошибке)

При подключении отладчиком к F1Shell.run ситуация та же самая
Comment 10 Виталий Перов 2009-06-01 16:53:35 MSD
при подключении к datasetup.exe или garant.exe исключения вообще не происходит
Comment 11 Vitaly Lipatov 2009-08-05 17:04:58 MSD
К сожалению, отладку осложняет необходимость получения отзыва.
Может быть придумать что-то с получением полного лога один раз,
или запросить о похожей программе?
Или попросить разработчиков посмотреть?
Comment 12 Глеб Кордюков 2009-09-08 18:04:59 MSD
перевешиваю на тестеров для:
- поставить новый Гарант ~7.31.....
- проверить его работоспособность на 1.0.11
- отписать здесь о полученном результате.
Comment 13 Денис Баранов 2009-09-10 15:20:36 MSD
(In reply to comment #12)
> перевешиваю на тестеров для:
> - поставить новый Гарант ~7.31.....
По прежнему не ставиться. Ошибка при установке файлов-данных.

Для получение отзыва на пароль нужно отправлять письмо на "hotline@garant.ru" <hotline@garant.ru>

Нужно сделать установку, очень много нареканий по этому поводу.
Comment 14 Александр Морозов 2009-09-14 18:00:24 MSD
Created attachment 1319 [details]
Ошибка при установке Гаранта

При установке Гаранта из /var/ftp/pvt/Windows/Law - правовые/Garant 7.3.1/LOCAL в 1.0.11-eter8/3 получаю сообщение об ошибке (см. скриншот).

Не понял, что за отзыв на пароль, зачем он нужен.
Comment 15 Денис Баранов 2009-09-14 18:24:19 MSD
(In reply to comment #14)
> Created an attachment (id=1319) [details]
> Ошибка при установке Гаранта
> 
> При установке Гаранта из /var/ftp/pvt/Windows/Law -
> правовые/Garant 7.3.1/LOCAL в 1.0.11-eter8/3 получаю
> сообщение об ошибке (см. скриншот).
Гарант нужно устанавливать через wine98

> 
> Не понял, что за отзыв на пароль, зачем он
> нужен.
Это понадобится в дальнейшем при установке.
Comment 16 Александр Морозов 2009-09-18 18:45:38 MSD
Гарант ищет файл с шаблоном, содержащим "!", которого там быть не должно. Это приводит к ошибке. Откуда берётся такой шаблон, не ясно.

004f:Call KERNEL32.FindFirstFileA(007ebb80 "C:\\Program Files\\Garant-Local\\data2\\data*!???",02b1f910) ret=008268f3
...............
004f:Ret  KERNEL32.FindFirstFileA() retval=ffffffff ret=008268f3
004f:Call KERNEL32.GetLastError() ret=005d1d58
004f:Ret  KERNEL32.GetLastError() retval=00000002 ret=005d1d58
Comment 17 Денис Баранов 2009-09-19 12:12:45 MSD
(In reply to comment #16)
> Гарант ищет файл с шаблоном, содержащим "!",
> которого там быть не должно. Это приводит к
> ошибке. Откуда берётся такой шаблон, не
> ясно.
Можно писать в гарант и спрашивать у них, они рады нам помогать.
Comment 18 Александр Морозов 2009-10-05 16:43:20 MSD
Откуда берётся шаблон data*!??? не ясно. Первый раз в логах он появляется в качестве аргумента lstrlenA.

Сделал хак, заменяющий '!' в шаблоне на '.'. В логах появилась ошибка при удалении файла data2\data.lic. Это ошибка при проверке sharing, возникающая из-за того, что перед удалением файл открывается. Пробовал возврашать из DeleteFileW как TRUE, так и FALSE. Всё равно выдаётся сообщение о неопознанной ошибке.
Comment 19 Илья Шпигорь 2009-10-19 13:57:11 MSD
Выложил патч.

Ошибка, как ни странно, связана с контролом treeview.
При открытии окна "Мастер установки данных" в treeview контроле отображается БД, которая будет установленна. При этом в static контролах ниже выводится название этой БД и сколько места потребуется. В wine этого не происходит - static контролы не заполняются. При этом, скорее всего, установщик не подсчитывает сколько место ему надо и не получает информацию о БД. Для выполнения этих действий надо вручную выбрать сначала корневой элемент treeview, а потом  саму БД. При этом происходит посылка WM_NOTIFY диалогу и установка проходит без ошибок.

Эти действия должны происходить при создании диалога и всех его контролов. Но из-за того, что элемент treeview не может быть повторно выбран этого не происходит.

Решение - откатить патч, запрещающий повторное выделение элементов treeview. 

Протестировал установку на реальной БД - ошибка не проявляется.
Comment 20 Денис Баранов 2009-11-05 20:09:44 MSK
Принято.
WINE@Etersoft 1.0.11 eter11/eter6
Comment 21 Mikhail Krylatykh 2009-11-10 14:30:01 MSK
У меня не получилось на 11/6 установить файлы данных (ошибка 3816). Проблема та же, не видит, откуда эти данные брать. (Дистрибутив не найден. Пожалуйста, укажите путь к дистрибутивному диску вручную)
Comment 22 Vitaly Lipatov 2009-11-10 19:40:56 MSK
Вообще здесь обсуждалась другая проблема. Судя по всему, ваша ошибка у нас не воспроизводится. Попробуем запросить подробности. Илья?
Comment 23 Mikhail Krylatykh 2009-11-11 09:52:58 MSK
Прошу прощения, в предыдущем своем сообщении отослал не на ту ошибку. Речь шла о 3819, а так как она признана повтором 3806, а 3806 была пофиксена, поэтому отписался сюда.
Comment 24 Илья Шпигорь 2009-11-11 12:43:35 MSK
Похоже, ситуация ясна. 3819 - не дублирует эту ошибку, т.к. проблемы разные. Чтобы избежать путаницы, предлагаю эту багу закрыть, а 3819 переоткрыть.
Все дальнейшее обсуждение проблемы надо вести в 3819.