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

Отработанное время:
Продуктивное время:
Bug 3098 - Гарант F1.Сервер: ошибка при установке   Make a simular bug
Summary: Гарант F1.Сервер: ошибка при установке
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Установка программ / MSI (show other bugs)
Version: 1.0.9
Hardware: PC All
: P4 major
Target Milestone: ---
Assignee: Anton Rudnev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 3000 3195 769 3493
  Show dependency treegraph
 
In work:
Reported: 2008-12-09 15:12 MSK by Денис Баранов
Modified: 2009-07-28 15:46 MSD (History)
3 users (show)

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


Attachments
Дерево действий установки (41.98 KB, text/plain)
2010-11-18 03:58 MSK, Anton Rudnev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Денис Баранов 2008-12-09 15:12:33 MSK
При установке Гарант как Сервер, инсталяция заканчивается ошибкой об установке. В консоли:
err:rpc:I_RpcReceive we got fault packet with status 0x3e6
err:msi:ITERATE_InstallService Failed to create service L"GARANT.Application.Server": 1783
err:msi:ITERATE_StartService Failed to open service L"GARANT.Application.Server"
err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1627
err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1627
Comment 1 Anton Rudnev 2008-12-09 16:33:33 MSK
(In reply to comment #0)
> При установке Гарант как Сервер,
> инсталяция заканчивается ошибкой об
> установке. В консоли:
> err:rpc:I_RpcReceive we got fault packet with status 0x3e6
> err:msi:ITERATE_InstallService Failed to create service
> L"GARANT.Application.Server": 1783
> err:msi:ITERATE_StartService Failed to open service
> L"GARANT.Application.Server"
> err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned
> 1627
> err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1627
> 

крайне вероятно, что это повтор 807
но с уверенностью сказать не могу.
Comment 2 Anton Rudnev 2008-12-16 16:37:47 MSK
> 
> крайне вероятно, что это повтор 807
> но с уверенностью сказать не могу.
>

с учетом патчей в 807, по сравнению с первым комментарием, бага стала воспроизводится точно так же, как и 807.

<wine@cellar bottle garant/eterbug-3098>$ wwxp  f1setup.exe
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet
fixme:msi:msi_unimplemented_action_stub DeleteServices -> 1 ignored L"ServiceControl" table values
fixme:msi:msi_unimplemented_action_stub RemoveShortcuts -> 10 ignored L"Shortcut" table values
fixme:msi:msi_unimplemented_action_stub RemoveFolders -> 36 ignored L"CreateFolder" table values
wine: Unhandled page fault on read access to 0x00000000 at address 0xb7e04a73 (thread 0037), starting debugger...
<wine@cellar bottle garant/eterbug-3098>$ err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu
err:menubuilder:InvokeShellLinker failed to build the menu

а вот как воспроизводится на данный момент 807 -> http://bugs.etersoft.ru/show_bug.cgi?id=807#c34

очень похоже.

я попробую построить дерево действий, основанное на трейсе функции ACTION_PerformAction, чтобы понять общую картину установки.



Comment 3 Anton Rudnev 2008-12-16 17:19:17 MSK
Created attachment 970 [details]
Дерево действий установки
Comment 4 Anton Rudnev 2008-12-16 17:50:10 MSK
(In reply to comment #3)
> Created an attachment (id=970) [details]
> Дерево действий установки
> 

это полная картинка установки.
для просмотра русского нужно использовать koi-8r
строчки в дереве имеют следующее значение

...                                      -- предыдущие действия
action имяДействия begin standart action -- запуск действия
  ...
  action имяДействия begin custom action -- запуск действия
    ...                                  -- вложенные действия 
  action ИмяДействия end -> результат    -- успешное завершение
  ...
action ИмяДействия end -> результат      -- успешное завершение
...                                      -- следующие действия

standart action - действие, обработчик которого реализован у нас в msi
custom action   - действие, обработчик которого находится обычно в какой-либо .dll в дистрибутиве инсталлируемой программы (которая кидается в виде .tmp-файла в windows\temp и затем оттуда запускается функция)

данное дерево можно сравнить с деревом установки fr9 (см. http://bugs.etersoft.ru/show_bug.cgi?id=807#c35)

видно, что и в том и в другом случае, в качестве действия в функцию ACTION_PerformAction попадает нечто с именем "[имя=значение;имя=заначениe;...]"

далее ACTION_PerformAction не распознает его как standart action и запускает некий обработчик (откуда он берется, я пока не знаю).

Возникает два вопроса. 
Должно ли возникать такое действие? 

Если да, то как правильно оно должно отрабатываться (это строчка похожа на список переменных окружений, которые должны быть установлены перед исполнением следующего действия, но анализ установки FineReader 9 под Windows указывает на то, процесс, гарантированно запускаемый следующем действием имеет старое окружения: т. е. эта последовательность к окружению не имеет никакого отношения), и эта отработка должна выполнятся внутри вызова ACTION_PerformAction.

Если же нет, то эта строчка не должна интерпретироваться в качестве действия, а должна интерпретироваться как-то раньше? чем произойдет вызов ACTION_PerformAction. Простое игнорирование такого действия результатов не даёт (см. http://bugs.etersoft.ru/show_bug.cgi?id=807#c32)
Comment 5 Anton Rudnev 2008-12-17 20:51:32 MSK
> custom action   - действие, обработчик которого
> находится обычно в какой-либо .dll в
> дистрибутиве инсталлируемой программы
> (которая кидается в виде .tmp-файла в windows\temp и
> затем оттуда запускается функция)

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

все типы действий описаны по ссылке http://msdn.microsoft.com/en-us/library/aa372048(VS.85).aspx

на данный момент понятно, что действие, которое должно выполнятся имеет номер 51 и описано по ссылке http://msdn.microsoft.com/en-us/library/aa368237(VS.85).aspx

действие, которое выполняется фактически, имеет номер 1 ( описано http://msdn.microsoft.com/en-us/library/aa368075(VS.85).aspx )

имя действия и как оно должно выполняться записаны в таблице CustomAction ( http://msdn.microsoft.com/en-us/library/aa368062(VS.85).aspx )

У нас ветвление по типам действия происходит в функции ACTION_CustomAction
там же и происходит обработка действия 51 (в нашем ошибочном случае оно распознается как действие 1)

надо проверить две вещи
1) почему в функцию ACTION_PerformAction передается поле Target, вместо поля Action (таблицы CustomAction)
2) почему в функции ACTION_CustomAction тип действия распознается как 1 вместо 51 (поле Type таблицы CustomAction)

возможно второе является следствием первого.
Comment 6 Anton Rudnev 2009-01-11 18:03:44 MSK
Кажется, что проблема, описанная в последних комментариях перестала проявляться.

Патч http://lists.etersoft.ru/pipermail/wine-patches/2009-January/000180.html поправляет мой собственный патч http://lists.etersoft.ru/pipermail/wine-patches/2008-December/000138.html

После него, установка серверной части гаранта, как и клиентской части, завершается успешно.
Comment 7 Денис Баранов 2009-02-14 19:55:35 MSK
Проверил на последней версии eter41\eter17 установка проходит корректно.