Bug 641

Summary: Не работает программа получения обновлений для Консультанта
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: ОбщееAssignee: Виталий Перов <vitperov>
Status: CLOSED FIXED QA Contact: Денис Баранов <baraka>
Severity: minor    
Priority: P4 CC: alexeev, baraka, kondratyuk, vitperov
Version: 1.0.10   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 721, 1465, 2666, 3847, 3928, 3937, 3938    
Bug Blocks: 42, 767    

Description Vitaly Lipatov 2007-06-23 10:51:35 MSD
В составе КонсультантаПлюс есть такая утилита comar.client.1.7.exe она предназначена для скачки обновлений с их закрытого сайта. Она работает под dotnetfx_1.1 .
Вопрос: как установить .NET 1.1 ? Есть ли какое нибудь решение?
Comment 1 Константин Кондратюк 2007-07-11 11:34:39 MSD
.NET 1.1 в целом ставится. Вопрос в том работает или нет... Первая проблема - нужна mscoree.dll, сейчас исключённая из сборки.
Comment 2 Константин Кондратюк 2007-07-11 13:56:22 MSD
Вроде бы mscoree.dll решает проблему нужных dll.
Но при запуске программа ругается на отсутствие Framework v.1.1.4322
Установку именно 4322 завершить не удалось.
Comment 3 Константин Кондратюк 2008-03-14 12:58:08 MSK
.NET 1.1.4322 ставится, mscoree.dll пока используем виндовую. При установке всё равно происходит ошибка, с вылетом в дебаггер и зацикливанием при выводе окон с сообщением об этой ошибке.
Comment 4 Константин Кондратюк 2008-10-15 12:10:37 MSD
Нужно проверить, какое положение вещей сейчас.
Comment 5 Vitaly Lipatov 2008-11-11 00:58:48 MSK
Передаю в тестирование.
Comment 6 Денис Баранов 2008-11-11 10:25:29 MSK
Программа получает обновления, но после завершения скачки, должна запуститься программа c:/Program Files/ConsultantPlus Updatev/comar.transport.config.exe
Но при ее запуске возникают ошибки, есть подозрение что они связаны с виндовской mscoree.dll.

тестировал на cellar, бутылка cons3300.35.
Comment 7 Vitaly Lipatov 2008-11-15 12:44:54 MSK
По заверению суппорта Консультант для версии 1.8 утилиты обновления требуется .Net 2.0.
Comment 8 Виталий Перов 2009-04-03 13:58:36 MSD
В связи с закрытием баги 2666, необходимо снова проверить
Comment 9 Денис Баранов 2009-04-05 21:30:08 MSD
(In reply to comment #8)
> В связи с закрытием баги 2666, необходимо
> снова проверить
> 
Незадолго до завершения установки, вылезает сообщение об ошибке и происходит падение в дамп:
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:791cfea1 ESP:0033feb4 EBP:0033fec8 EFLAGS:00210246(   - 00      -RIZP1)
 EAX:00000000 EBX:00000000 ECX:793eae2c EDX:00000000
 ESI:00000001 EDI:00000000
Stack dump:
0x0033feb4:  00000001 793eae2c 0033ff2c 793c8e40
0x0033fec4:  ffffffff 0033fee8 792454f0 00000000
0x0033fed4:  00122128 7b8b6ff4 791c7eb0 00000000
0x0033fee4:  00000000 0033ff08 791c6f1a 00000000
0x0033fef4:  00408e0e 00000000 79011b5f 7ffdf000
0x0033ff04:  791b0000 0033ffe8 7b8769e0 7ffdf000
Backtrace:
=>0 0x791cfea1 in mscorwks (+0x1fea1) (0x0033fec8)
  1 0x792454f0 in mscorwks (+0x954f0) (0x0033fee8)
  2 0x791c6f1a in mscorwks (+0x16f1a) (0x0033ff08)
  3 0x7b8769e0 in kernel32 (+0x569e0) (0x0033ffe8)
  4 0xb7f0dca7 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)
Comment 10 Константин Кондратюк 2009-04-05 22:28:53 MSD
Какая mscoree использовалась при тесте?
Comment 11 Денис Баранов 2009-04-06 19:33:52 MSD
(In reply to comment #10)
> Какая mscoree использовалась при тесте?
> 
нативная.

Если использовать встроенную то вообще что то непонятное:

install the Windows version of Mono to run .NET executables
install the Windows version of Mono to run .NET executables
err:ole:dispatch_rpc no apartment found for ipid {ffffffff-ffff-ffff-6800-00000b000000}
err:rpc:I_RpcReceive we got fault packet with status 0x80010108
err:ole:dispatch_rpc no apartment found for ipid {ffffffff-ffff-ffff-6800-00000b000000}
err:rpc:I_RpcReceive we got fault packet with status 0x80010108

При том что установлен dotnet 1.1 и 2.0
Comment 12 Виталий Перов 2009-04-17 18:21:37 MSD
Не смог даже установить.
На ftp 3 папки с консультантом, и не один установщик не работает.

Денис, если не сложно, создай пожалуйста чистую бутылку с установленным консультантом.
Comment 13 Виталий Перов 2009-04-20 14:48:30 MSD
Разобрался. Консультант в принципе не устанавливается, его надо копировать.

Но всё-равно сам консультант не запускается. Но это отдельная бага.

Нашёл установщик comar.
Установил .net1.1
Установил .net2.0

Запустил установщик. В процессе установки программа падает:

wine comar.client.1.7.exe
err:ole:TLB_ReadTypeLib Loading of typelib L"C:\\Program Files\\Common Files\\InstallShield\\Professional\\RunTime\\IsProBE.tlb" failed with error 2
fixme:storage:StgCreateDocfile Storage share mode not implemented.
fixme:shell:IShellLinkA_fnGetPath (0x1134e18): WIN32_FIND_DATA is not yet filled.
fixme:shell:IShellLinkA_fnGetPath (0x1134e18): WIN32_FIND_DATA is not yet filled.
fixme:shell:IShellLinkA_fnGetPath (0x11345e0): WIN32_FIND_DATA is not yet filled.
fixme:shell:IShellLinkA_fnGetPath (0x11345e0): WIN32_FIND_DATA is not yet filled.
fixme:ole:CoGetContextToken stub

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Resources.ResourceManager.GetSatelliteAssembliesFromConfig()
   at System.Resources.ResourceManager.TryLookingForSatellite(CultureInfo lookForCulture)
   at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
   at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
   at System.Environment.ResourceHelper.GetResourceStringCode(Object userDataIn)
   at System.Environment.GetResourceFromDefault(String key)
   at System.TypeInitializationException..ctor(String fullTypeName, Exception innerException)
   at System.Globalization.TextInfo.GetNativeTextInfo(Int32 cultureID)
   at System.Globalization.TextInfo.get_InvariantNativeTextInfo()
   at System.String.Compare(String strA, Int32 indexA, String strB, Int32 indexB, Int32 length, StringComparison comparisonType)
Comment 14 Виталий Перов 2009-04-20 15:05:51 MSD
Хоть установка и не работает, но c:/Program Files/ConsultantPlus
Updatev/comar.transport.config.exe всё-таки успевает установится.

При запуске появляется не полностью прорисованная формочка. Виновата gdiplus.dll. В консоле:
ixme:shell:URL_ParseUrl failed to parse L"System.Xml"
err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered
err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered
err:ole:create_server class {00000349-0000-0000-c000-000000000046} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {00000349-0000-0000-c000-000000000046} could be created for context 0x17
fixme:mscoree:LoadLibraryShim (0x4a4ed7c L"Gdiplus.dll", (nil), (nil), 0x32e50c): semi-stub
fixme:ole:CoGetContextToken stub
fixme:gdiplus:GdipCreateHalftonePalette
fixme:gdiplus:GdipCreateHalftonePalette
fixme:gdiplus:GdipCreateHalftonePalette
fixme:gdiplus:GdiplusNotificationHook 0x729e4f0
fixme:gdiplus:GdipCreateHalftonePalette
fixme:gdiplus:GdipBeginContainer2 (0x19c2e0, 0x32f0d4)
fixme:gdiplus:GdipSaveGraphics graphics state not implemented
fixme:gdiplus:GdipRestoreGraphics graphics state not implemented
fixme:gdiplus:GdipGetNearestColor (0x19c2e0, 0x32f00c): stub
fixme:gdiplus:GdipEndContainer (0x19c2e0, 0xdeadbeef)
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms.resources"
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms.resources"
fixme:gdiplus:GdipGetImageRawFormat stub
fixme:gdiplus:GdipSetImageAttributesColorKeys not implemented

Попробовал взять нативную gdiplus.dll. В результате сообщение об ошибке:
"Failed to load resources from resource file".
В консоле:
err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered
err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered
err:ole:create_server class {00000349-0000-0000-c000-000000000046} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {00000349-0000-0000-c000-000000000046} could be created for context 0x17
fixme:mscoree:LoadLibraryShim (0x4b38f5c L"Gdiplus.dll", (nil), (nil), 0x32e50c): semi-stub
fixme:ole:CoGetContextToken stub

При нажатии на <OK> происходит падение.
Comment 15 Виталий Перов 2009-05-10 15:12:21 MSD
Если дополнительно выбрать нативной mscoree.dll и ole32, то ничего не меняется:
WINEDLLOVERRIDES="gdiplus,ole32,mscoree=n" wine comar.transport.exe
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms"
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
fixme:advapi:SetSecurityInfo stub
fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"

Unhandled Exception: StackOverflowException.
wine: Unhandled page fault on read access to 0x00000000 at address (nil) (thread 0063), starting debugger...

Видимо проблемы с нативной gdiplus. И надо использовать сторонюю
Comment 16 Виталий Перов 2009-05-12 18:38:50 MSD
Идём дальше.
Много функций не реализовано, но для начало надо смотреть только те, что приводят к падению.

wine: Call from 0x7b8412f1 to unimplemented function gdiplus.dll.GdipBitmapSetPixel, aborting
wine: Call from 0x7b8412f1 to unimplemented function gdiplus.dll.GdipBitmapSetPixel, aborting

при дальнейшем рассмотрении оказалось, что частичную реализацию уже добавили.
Comment 17 Виталий Перов 2009-05-12 19:23:55 MSD
Обновился. Проверил. Теперь ошибка немного дальше:
fixme:gdiplus:GdipBitmapSetPixel not implemented
fixme:gdiplus:GdipEndContainer (0x1807e0, 0xdeadbeef)
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms.resources"
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms.resources"
fixme:gdiplus:GdipGetImageRawFormat stub
fixme:gdiplus:GdipSetImageAttributesColorKeys not implemented
Comment 18 Виталий Перов 2009-05-12 19:57:56 MSD
после добавления хака на GdipSetImageAttributesColorKeys идёт немного дальше:
fixme:gdiplus:GdipSetImageAttributesColorKeys hacked stub
fixme:gdiplus:GdipImageForceValidation 0x1ab618
fixme:gdiplus:GdipBitmapGetPixel not implemented
Comment 19 Виталий Перов 2009-05-12 20:36:13 MSD
сделал хак, добавляющий GdipBitmapGetPixel. Программа больше не показывает ошибку.
В плане функциональности всё прекрасно работает. Но в плане внешнего вида...
текст не прорисовывается, различные графические объекты не прорисовываются. Прорисовываются только кнопки.

Для решения необходимо реализовывать функции библиотеки gdiplus.
Comment 20 Виталий Перов 2010-03-01 17:41:11 MSK
Проверил на текущей версии eterhack (1.1.35)
Программа вроде работает. Всё отрисовывается.
Думаю эту багу можно закрыть. И для новых замеченых проблем заводить новые баги
Comment 21 Vitaly Lipatov 2010-03-22 13:01:06 MSK
Закрыл случайно, надо закрыть после проверки на сборке 1.2.0