View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002925 | SAS.Планета | Баг / Bug | public | 12-12-2015 12:12 | 08-01-2021 17:51 |
| Reporter | Djam | Assigned To | zed | ||
| Priority | normal | Severity | major | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Platform | wine 1.7.55 | OS | ROSA Linux Fresh R6 | OS Version | 2014.1 |
| Product Version | 151111 | ||||
| Target Version | 160606 | Fixed in Version | 160606 | ||
| Summary | 0002925: SAS.Planet 151111 не запускается под wine 1.7 и выше | ||||
| Description | С версий 15xxx SAS.Planet перестал запускаться. При установке различных конфигураций OSWindows XP-Seven, в то время как версии <15xxx исправно продолжают работать. | ||||
| Steps To Reproduce | 1. в ROSA Linux Fresh R6 с wine 1.7.55 скопировать в домашнюю директорию wine $HOME/.wine/wine_c/ загрузить и распаковать дистрибутивы SAS.Planet 14xx и 15хх 2. запустить из папки SAS.Planet 14xx файл SASPlanet.exe убедиться что программа работает 3. запустить из папки с SAS.Planet 15xx SASPlanet.exe или SASPlanet.Unicode.exe убедиться в том что программа падает при запуске. | ||||
| Additional Information | лог прилагаю | ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
|
|
На wine 1.6 точно работало. |
|
|
но 14е версии как работали так и работают. |
|
|
И какие будут предложения? |
|
|
по логам возможно понять что не так с песочницей? Отладить под 1.7.x вином. Со своей стороны так как работаю в лине, могу потестировать, если что-то подправить надо, думаю смогу. Жаль что нет нативной версии. Как и под lazarus(freepascal) но тут наверное бесполезно об этом думать |
|
|
По логу видно, что это внешняя ошибка в ntdll.dll: 2.2 Address : 7BC48889 2.3 Module Name : ntdll.dll - (Wine ntdll) 2.4 Module Version: 5.1.2600.2180 2.5 Type : EExternalException 2.6 Message : External exception C0000264. Ошибка произошла в объекте синхронизации:
этот объект как раз и поставляется либой ntdll.dll: |
|
|
Хм, странно, но от чего же ж в 14х версиях такого на замечено? Хм, если я правильно понимаю, то это для Vista and newer? Может какое-то исключение необходимо для обхода этой проблемы? |
|
|
для чистоты эксперимента удалил старую песочницу и пересоздал новую, по дефолту поставил Windows7. Ситуация ни как не изменилась. 14ххх - работает без проблем 151111 - крошится с теми же ошибками. |
|
|
Вариантов несколько. Или Wine врет насчет поддержки этого примитива синхронизации, или есть какие-то особенности его реализации, какие не знаю. Рекурсивного вызова нет, освобождения без захвата тоже. У меня идей нет. Можно, конечно при создании фабрики синхронизаторов пытаться создавать синхронизатор и тестировать его использование, но мне такое делать лень. Если кому сильно надо работа под Wine, то жду пул реквеста или предложения с оплатой. |
|
|
Можете попробовать PlayOnLinux - если не ошибаюсь, эта штука позволяет выбрать подходящую версию wine для запуска приложения. Можете ещё попробовать в wine выставить конфигурацию Win2000 если там такая есть. |
|
|
Хм, ничего не изменилось: Operating System: -------------------------------------- 6.1 Type : Microsoft Windows 2000 6.2 Build # : 2195 6.3 Update : Service Pack 4 6.4 Language: Russian 6.5 Charset : 204 Application: ------------------------------------------------------- 1.1 Start Date : Mon, 14 Dec 2015 15:47:11 +0300 1.2 Name/Description: SASPlanet.Unicode.exe 1.3 Version Number : 15.11.11.9233 1.4 Parameters : 1.5 Compilation Date: Wed, 11 Nov 2015 15:55:30 +0300 1.6 Up Time : 5 seconds Exception: ----------------------------------------------------- 2.1 Date : Mon, 14 Dec 2015 15:47:16 +0300 2.2 Address : 7BC48889 2.3 Module Name : ntdll.dll - (Wine ntdll) 2.4 Module Version: 5.1.2600.2180 2.5 Type : EExternalException 2.6 Message : External exception C0000264. 2.7 ID : 0D21 2.8 Count : 1 2.9 Status : New 2.10 Note : User: ------------------------------------------------------- 3.5 Privileges: SeChangeNotifyPrivilege - ON SeSecurityPrivilege - OFF SeBackupPrivilege - OFF SeRestorePrivilege - OFF SeSystemtimePrivilege - OFF SeShutdownPrivilege - OFF SeRemoteShutdownPrivilege - OFF SeTakeOwnershipPrivilege - OFF SeDebugPrivilege - OFF SeSystemEnvironmentPrivilege - OFF SeSystemProfilePrivilege - OFF SeProfileSingleProcessPrivilege - OFF SeIncreaseBasePriorityPrivilege - OFF SeLoadDriverPrivilege - ON SeCreatePagefilePrivilege - OFF SeIncreaseQuotaPrivilege - OFF SeUndockPrivilege - OFF SeManageVolumePrivilege - OFF SeImpersonatePrivilege - ON SeCreateGlobalPrivilege - ON Computer: ----------------------------------------------------- 5.3 Free Memory : 5256 Mb 5.5 Free Disk : 10,17 Gb 5.7 Processor : Intel(R) Pentium(R) 4 CPU 2.40GHz 5.8 Display Mode: 1366 x 768, 32 bit 5.9 Display DPI : 96 5.10 Video Card : Wine Display Adapter (driver ) все также 14хх без проблем, 15ххх - проблема |
|
|
Немного потестил SAS под wine в Ubuntu 14.04 через PlayOnLinux. Версия 1.8.rc4 падает с такой же ошибкой, что и 1.7.55. При этом в логе wine пишется пара строчек: > err:win:DefWindowProcA called for other process window 0x10020 > fixme:win:EnumDisplayDevicesW ((null),0,0x15ddac8,0x00000000), stub! Версии 1.6.2 и 1.4.1 работают без ошибок. При этом 1.6 безбожно тормозит и реально пользоваться можно только на версии 1.4. |
|
|
Можешь попробовать принудительно включить использование только самых простых примитивов синхронизации и проверить. Если дело в них, то можно сделать настройку, которая будет вызывать переход на них пусть и с потерей производительности. |
|
|
Как это включить? Т.е. там же по-моему это не получится сделать изменив одну строчку? |
|
|
Ну, в одну строку нет, но и не сильно много. Заменить этот код в конструкторе
на
Тоесть для всех типов синхронизаторов будет использоваться критическая секция со спинлоком TSynchronizerCSSCFactory |
|
|
Да, это решает проблему. И, кстати, под 1.8 тормозов как на 1.6 не наблюдается. Значит, нужно детектить версию ОС, и если там XP и ниже, использовать критическую секцию? |
|
|
Не обязательно именно критическую секцию. Желательно проверить другие примитивы. Главное не путать допускающие рекурсивный вызов с не допускающими. А еще вместо определения ОС можно в процессе создания фабрик создавать тестовый экземпляр и пробовать его лочить, и если вылетел ексепшен, то не пользоваться этой фабрикой. Если у тебя есть время и возможность, было бы хорошо, если бы ты этим занялся. |
|
|
Похоже, достаточно сделать проверку на версию ОС в одном месте, чтобы оно даже не пыталось создать примитив, заведомо не существующий в данной ОС. Теперь, под wine 1.8, если выбрать профиль WinXP, то всё работает, а если Vista и выше - нет. Djam, после тестов можете попробовать сообщить разработчикам wine о проблеме с SRW локом. |
|
|
Wine 5.0 по дефолту представляется как Windows 7 и с AV уже не падает, но в консоль всё-равно пишет ошибки, связанные с этим локом:
Поэтому, отключил этот лок, если программа запущена под wine. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 12-12-2015 12:12 | Djam | New Issue | |
| 12-12-2015 12:12 | Djam | File Added: SASPlanet.Unicode.elf | |
| 13-12-2015 18:03 | zed | Note Added: 0016930 | |
| 13-12-2015 19:12 | Djam | Note Added: 0016931 | |
| 13-12-2015 19:13 | zed | Note Added: 0016932 | |
| 13-12-2015 19:23 | Djam | Note Added: 0016933 | |
| 13-12-2015 19:43 | zed | Note Added: 0016934 | |
| 13-12-2015 20:08 | Djam | Note Added: 0016935 | |
| 13-12-2015 20:17 | Djam | Note Added: 0016936 | |
| 14-12-2015 09:06 | vdemidov | Note Added: 0016939 | |
| 14-12-2015 10:02 | zed | Note Added: 0016940 | |
| 14-12-2015 12:49 | Djam | Note Added: 0016943 | |
| 16-12-2015 10:16 | vdemidov | Status | new => confirmed |
| 16-12-2015 10:16 | vdemidov | Target Version | => 50xxxx.VIP |
| 26-12-2015 19:39 | zed | Note Added: 0016963 | |
| 26-12-2015 19:53 | vdemidov | Note Added: 0016964 | |
| 26-12-2015 19:55 | zed | Note Added: 0016965 | |
| 26-12-2015 21:54 | vdemidov | Note Added: 0016966 | |
| 27-12-2015 09:00 | zed | Note Added: 0016967 | |
| 27-12-2015 09:01 | zed | Summary | SAS.Planet 151111 не запускается под wine => SAS.Planet 151111 не запускается под wine 1.7 и выше |
| 27-12-2015 09:12 | vdemidov | Note Added: 0016968 | |
| 27-12-2015 11:01 | zed | Note Added: 0016969 | |
| 27-12-2015 14:32 | zed | Status | confirmed => feedback |
| 27-12-2015 14:32 | zed | Target Version | 50xxxx.VIP => 160606 |
| 03-01-2016 21:37 | zed | Status | feedback => resolved |
| 03-01-2016 21:37 | zed | Fixed in Version | => 160606 |
| 03-01-2016 21:37 | zed | Resolution | open => fixed |
| 03-01-2016 21:37 | zed | Assigned To | => zed |
| 08-01-2021 17:51 | zed | Note Added: 0020041 | |
| 08-08-2025 13:22 | zed | Category | Баг => Баг / Bug |