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

Отработанное время:
Продуктивное время:
Bug 10038 - Не инициализируется окружение wine на ядрах с запретом создания 16-битных сегментов (ltd16)   Make a simular bug
Summary: Не инициализируется окружение wine на ядрах с запретом создания 16-битных сег...
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Запуск ; Отладка ; Исключения (show other bugs)
Version: 2.1
Hardware: PC Linux
: P3 normal
Target Milestone: ---
Assignee: Konstantin Artyushkin
QA Contact: Konstantin Artyushkin
URL: https://bugs.winehq.org/show_bug.cgi?...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
In work:
Reported: 2014-06-19 11:48 MSK by Konstantin Artyushkin
Modified: 2015-01-21 12:22 MSK (History)
3 users (show)

See Also:
Заявки RT: 35448, 35581, 35595
Связано с:
Дата напоминания: пятница


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Artyushkin 2014-06-19 11:48:57 MSK
У клиента проявилась такая интересная проблема:
В дистрибутиве ALTLшnux p7 64 в ядре 3.12.21 не происходит инициализация окружения 

$ wine --update
Updating... Using WINEPREFIX=/home/ctac/.wine with WINE@Etersoft Network
2.1.3-eter3/5
Creating default file tree...
Copying prepared tree from '/usr/share/wine/skel-copy' and
'/usr/share/wine/skel' ...
Run /etc/wine/script.d/*.sh.pre scripts...
Update registry and environments...
Run /etc/wine/script.d/*.sh scripts...
7-Zip installing...
FAR installing...
MS XML Core Services 3.0 installing...
/home/ctac/.wine/dosdevices/c:/windows/temp
MS XML Core Services 4.0 installing...
/home/ctac/.wine/dosdevices/c:/windows/temp
Windows Scripting installing...
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
err:ntdll:RtlpWaitForCriticalSection section 0x7bcc9960 "loader.c:
loader_section" wait timed out in thread 0047, blocked by 000c, retrying
(60 sec)
err:seh:raise_exception Unhandled exception code c0000194 flags 0 addr
0x7bc38eea
err:ntdll:RtlpWaitForCriticalSection section 0x7bcc9960 "loader.c:
loader_section" wait timed out in thread 0047, blocked by 000c, retrying
(60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x7bcc9960 "loader.c:
loader_section" wait timed out in thread 0013, blocked by 000c, retrying
(60 sec)
err:seh:raise_exception Unhandled exception code c0000194 flags 0 addr
0x7bc38eea

При этом всё работает в ядре 3.8.13.4(64)

Проблема возникает после обновления ядра

------

Проверил в 3.12.21 32-бита - проблемы нету. 
Может чего доустановить надо

------
vbox с воспроизведённой проблемой "Users Virtual Machine/akv/ALTLinux Simply 7.0.1 x64". Не нашёл готовой машины поэтому проверял в своей.
Если надо подготовлю машину.
Comment 1 Konstantin Artyushkin 2014-06-24 15:20:52 MSK
Ситуация стала ещё интересней.
Судя по заявке https://rt.etersoft.ru/Ticket/Display.html?id=35595
У человека

ДИСТРИБУТИВ:
UBUNTU 12.04 64bit
===================
ЯДРО СИСТЕМЫ:
Linux server2 3.8.0-42-generic #62~precise1-Ubuntu SMP Wed Jun 4 22:04:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Такая же ошибка:

wine --admin
First running... Using WINEPREFIX=/home/kvatraporto/.wine with WINE@Etersoft Network 2.1.3-eter8/5
Using shared WINE tree in /var/lib/wine/default
Device \'c:\' created as link for \'/var/lib/wine/default\' target.
Creating default file tree...
Copying prepared tree from \'/usr/share/wine/skel-copy\' and \'/usr/share/wine/skel\' ...
Run /etc/wine/script.d/*.sh.pre scripts...
Initialize registry and environments...
Run /etc/wine/script.d/*.sh scripts...
7-Zip installing...
FAR installing...
MS XML Core Services 3.0 installing...
/home/kvatraporto/.wine/dosdevices/c:/windows/temp
MS XML Core Services 4.0 installing...
/home/kvatraporto/.wine/dosdevices/c:/windows/temp
Windows Scripting installing...
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент
modify_ldt: Недопустимый аргумент

Видимо не в ядре дело.
Comment 2 Konstantin Artyushkin 2014-06-24 15:38:25 MSK
По мотивам 
http://forum.winehq.org/viewtopic.php?f=8&t=22540
и
http://wiki.winehq.org/FAQ#head-bf26e320f9d279ba6d2e039f7d91f0a60a433f88

сделал

# echo 1 > /proc/sys/abi/ldt16 

и установил  пакет i586-libncurses

Теперь всё работает

Не особо понял что там написано, надо вчитываться.
Comment 3 Anton Agapov 2014-06-24 15:49:27 MSK
Согласно статье:
http://www.codeweavers.com/support/wiki/diag/brokenldt16

в свежих ядрах (из-за проблем с безопасностью) вычеркнута поддержка инициализации 16-битных адресных сегментов... Хотя это все еще требуется для многих приложений в Wine. Написано, как включить.

Для включения при старте системы, полагаю, нужно добавить в /etc/sysctl.conf соответствующую запись.
Comment 4 Konstantin Artyushkin 2014-06-25 17:27:52 MSK
(В ответ на comment #1)
> Ситуация стала ещё интересней.
> Судя по заявке https://rt.etersoft.ru/Ticket/Display.html?id=35595
> У человека
> 
> ДИСТРИБУТИВ:
> UBUNTU 12.04 64bit
> ===================
> ЯДРО СИСТЕМЫ:
> Linux server2 3.8.0-42-generic #62~precise1-Ubuntu SMP Wed Jun 4 22:04:18
> UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> 
> Такая же ошибка:
> 
> wine --admin
> First running... Using WINEPREFIX=/home/kvatraporto/.wine with WINE@Etersoft
> Network 2.1.3-eter8/5
> Using shared WINE tree in /var/lib/wine/default
> Device \'c:\' created as link for \'/var/lib/wine/default\' target.
> Creating default file tree...
> Copying prepared tree from \'/usr/share/wine/skel-copy\' and
> \'/usr/share/wine/skel\' ...
> Run /etc/wine/script.d/*.sh.pre scripts...
> Initialize registry and environments...
> Run /etc/wine/script.d/*.sh scripts...
> 7-Zip installing...
> FAR installing...
> MS XML Core Services 3.0 installing...
> /home/kvatraporto/.wine/dosdevices/c:/windows/temp
> MS XML Core Services 4.0 installing...
> /home/kvatraporto/.wine/dosdevices/c:/windows/temp
> Windows Scripting installing...
> modify_ldt: Недопустимый аргумент
> modify_ldt: Недопустимый аргумент
> modify_ldt: Недопустимый аргумент
> modify_ldt: Недопустимый аргумент
> modify_ldt: Недопустимый аргумент
> 
> Видимо не в ядре дело.

Данная ошибка не имеет отношения к 16-битной проблеме. Проверил в vbox, файла /proc/sys/abi/ldt16  нету. 
Видимо отдельную багу открывать надо.
Comment 5 Konstantin Artyushkin 2014-07-01 14:50:09 MSK
В ubuntu какая-то проблема с ядрами ниже 3.14 там не приложен патч для включения 16 битных адресных сегментов.
http://ubuntuforums.org/showthread.php?t=2228133&page=2

Он появляется аж в 3.14.6.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1328965
При том что в Альте ( проверял пока только в альте ) уже в 3.12 приложен патч. 

Проблемные дистрибутивы 12.04 (3.8.* - x64) и 14.04 (3.13.* - х64)

При этом есть сообщение, что можно сделать рабочим 3.11.0-24-generic 
http://askubuntu.com/questions/483058/wine-stopped-working-how-do-i-re-install-w-o-losing-data
Но файла /proc/sys/abi/ldt16 просто не существует и создать его не получается.
Comment 6 Konstantin Artyushkin 2014-10-15 15:57:49 MSK
Так получилось что данная бага делиться на две:

1) В ядрах 3.10.* - 3.16 отключена поддержка 32-битных приложений.
   Однако существует патч, который позволяет вернуть поддержку с помощью /proc/sys/abi/ldt16
   Этот патч в основных дистрибутивах бекпортирован с 3.16 на ядра ниже.

2) Ubuntu решило выделиться и бекпорт данного патча можно встретить только в 3.14.6. Ядра старше по возрасту и ниже по номеру не имеют /proc/sys/abi/ldt16. Данная вещь пока наблюдается только в ubuntu. Ядра из коробки в Ubuntu как раз попадают диапазон ядер без ldt16

Решение на первую багу можно найти здесь https://bugs.etersoft.ru/show_bug.cgi?id=10179

С номером 2 можно добавить описание ситуации на вики. Создавать ли отдельную багу?
Comment 7 Konstantin Artyushkin 2014-10-15 15:59:21 MSK
(В ответ на comment #6)

> Ядра из коробки в Ubuntu как раз попадают диапазон ядер без ldt16
> 

Ubuntu 14 имел ввиду
Comment 8 Konstantin Artyushkin 2015-01-21 12:21:53 MSK
Ситацая на данный момент:
В winediag добавлена проверка 

...
Check espfix64 issue (forbids 16-bit code on x86_64): Need fix (abi.ldt16 = 0)
...
Код последней ошибки, выявленной winediag: WE69


Закрываю
Comment 9 Konstantin Artyushkin 2015-01-21 12:22:14 MSK
Закрыл