Summary: | Ошибка при установке и запуске ГАРАНТ 7.6.0 | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Svetlana Zhukova <svzhu> |
Component: | Запуск ; Отладка ; Исключения | Assignee: | Александр Морозов <amorozov> |
Status: | CLOSED FIXED | QA Contact: | Svetlana Zhukova <svzhu> |
Severity: | critical | ||
Priority: | P1 | CC: | baraka, kondratyuk, lav, sonner |
Version: | 2.0 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 6945, 7387 | ||
Attachments: | ошибка |
Description
Svetlana Zhukova
2011-09-08 12:50:02 MSK
Created attachment 2279 [details]
ошибка
Не находит файл garant.ini - после установки его нет в c:/Program Files/Garant-Server а также в d c:/Program Files/Garant-Client бутылка : eterhack bottle garant/7435 WINE@Etersoft 1.0 SQL 1.3.34/2.0.0-eter1.2/2 На Windows с этим дистрибутивом всё в порядке? дистрибутив брала отсюда:/Windows/Правовые/Гарант/cs_25.11.2011/2977985 от 25 ноября. Ранее его ставила и запускала на 1.0.12 для баги https://bugs.etersoft.ru/show_bug.cgi?id=7880 На windows запускается. Скорее всего это из-за того,что при установке теперь гарант просит ввести вручную адрес сервера и клиента.Создала багу 7932 (В ответ на comment #7) > Скорее всего это из-за того,что при установке теперь гарант просит ввести > вручную адрес сервера и клиента.Создала багу 7932 Не вижу однозначной связи. Если проблема в каком-то адресе сервера, то она характерна только CS-версии? У нас есть локальный Гарант, чтобы всё это выяснить? Если скопировать в system32 shell32.dll из бутылки, проинициализированной 1.0.12, и откатить коммит 540b5e9f90acd8f677929ce3eb0471b81f561e5a (msi: fix deferred execution custom actions behaviour in ACTION_CustomAction(...). Eterbug 807), то файл garant.ini в процессе установки создаётся. При установке выводится сообщение "failed to load module gsock32.dll". В 1.0.12 garant.ini корректно создаётся при установке даже если удалить shell32.dll Гарант без проблем ставится с открытой частью 1.0.12 в бутылку на eterhack, созданную 2.0.0. Найти старую версию eterhack, на которой бы не было данного бага, не получилось. На совсем старых версиях установщик вообще не запускается. > Если скопировать в system32 shell32.dll из бутылки, проинициализированной
> 1.0.12, и откатить коммит 540b5e9f90acd8f677929ce3eb0471b81f561e5a (msi: fix
> deferred execution custom actions behaviour in ACTION_CustomAction(...).
> Eterbug 807), то файл garant.ini в процессе установки создаётся. При установке
> выводится сообщение "failed to load module gsock32.dll".
Наличие shell32 из Win приводит к исчезновению одной ошибки в логе +msi:
$ grep 'DllThread custom action (.*) returned 1603' garant_install_eterhack_native_shell32.log
trace:msi:DllThread custom action (3e) returned 1603
$ grep 'DllThread custom action (.*) returned 1603' garant_install_eterhack.log
trace:msi:DllThread custom action (3e) returned 1603
trace:msi:DllThread custom action (69) returned 1603
Место с ошибкой в логе установки:
trace:msi:MSI_ProcessMessage INSTALLMESSAGE_ACTIONSTART: L"Перемещаются основные настройки во временное расположение"
...........
trace:shell:SHFileOperationA
trace:shell:PathIsRelativeW (L"C:\\Program Files\\Garant-Server\\settings\\*.*")
trace:shell:PathIsRelativeW (L"C:\\Program Files\\Garant-Server\\settings.tmp\\*.*")
...........
trace:msi:DllThread custom action (69) returned 1603
...........
trace:msi:MSI_ProcessMessage (nil) (nil) (nil) 0 10 L"Action ended 14:36:09: InstallFinalize. Return value 1603."
При установке с Win-версией shell32:
trace:msi:MSI_ProcessMessage INSTALLMESSAGE_ACTIONSTART: L"Перемещаются основные настройки во временное расположение"
...........
trace:shell:SHFileOperationA
trace:shell:PathIsRelativeW (L"C:\\Program Files\\Garant-Server\\settings\\*.*")
trace:shell:PathIsRelativeW (L"C:\\Program Files\\Garant-Server\\settings.tmp")
Видно, что при наличии Win-версии shell32 после settings.tmp нет \\*.*
Кроме того, не очень ясно, каким образом влияет наличие Win-версии shell32.dll, если судя по логам всё равно используется встроенная
Был когда-то похожий баг: 1074. Попробовал собрать с dlls/shell32/shlfileop.c из 1.0.12. Проблема осталась. > Видно, что при наличии Win-версии shell32 после settings.tmp нет \\*.*
Посмотрел исходники полученной от разработчиков Гаранта msihlp32.dll. *.* в конец добавляется в этой dll, если определяется, что версия shell32.dll меньше, чем нужно. Видимо, это какой-то воркэраунд.
Сделал, чтобы у shell32 была нужная версия. Теперь, если создать бутылку с новой открытой частью, то garant.ini нормально создаётся. Надо ещё исправить ошибку "failed to load module gsock32.dll". Установленный Гарант падает при запуске. Под 1.0.12 в этой же бутылке запускается. Приложил заново откаченный патч "ntdll: Fix a problem with starting Garant 7.5.0 (eterbug #5864)." После этого Гарант стал выводить ошибку о том, что он не может найти GblAdapter.dll. Судя по всему, проблема в том, что find_dll_file не инициализирует хэндл файла библиотеки. Оказалось, что проблема была вызвана исправлением для #6247. Сделал, чтобы при запуске Гаранта точки входа для нескольких функций ntdll менялись на те, что были ранее (без SDT-индексов). Теперь при запуске выводится сообщение "Файлы данных отсутствуют или повреждены!" Ошибка "failed to load module gsock32.dll" при установке ушла. ошибки,связанной с garant.ini нет. Теперь другая ошибка - "сервер приложений недоступен". Она возникает в конце установки или при запуске программы. Возможно, это связано с тем,что гарант во время инсталляции просит ввести адрес сервера. В 1.0.12 он автоматически определяет его: cellar.office.etersoft.ru, но в 2.0 даже если ввести его руками, ошибка остается. Жду решения 7932. новая eterhack bottle garant/7625 2.0.0-eter0.17/7 Пересоздал wineprefix в бутылке garant/7625. При установке в качестве адреса сервера ввёл eterhack. При запуске установленного Гаранта выводится сообщение "Файлы данных отсутствуют или повреждены!" Принято. |