Bug 1270

Summary: Crash при запуске 1Cv7 с выводом на дополнительный X сервер
Product: WINE@Etersoft Reporter: megov <megov>
Component: ОбщееAssignee: BUGS@Etersoft <bugs>
Status: CLOSED WONTFIX QA Contact:
Severity: major    
Priority: P5 CC: baraka, lav, megov
Version: 1.0.9   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 777    

Description megov 2008-03-04 12:20:20 MSK
При попытке запуска 1Cv7 с выводом на дополнительный
X сервер происходит краш Wine.
Проверяется следующим образом:

1. Запускаем Xnest :
 >Xnest :1 -ac -extension GLX

2. В отдельном терминале запускаем xterm c выводом на дополнительный дисплей
 >xterm -display :1
или 
 >DISPLAY=:1 xterm
Все нормально выводится в дополнительный X сервер

3. Пробуем запустить что нибудь под wine c выводом на Xnest
 >DISPLAY=:1 wine c:\\windows\\notepad.exe
получаем
 >Warning: there are some errors in winediag output. Run winediag command and check it.
 >X Error of failed request:  BadWindow (invalid Window parameter)
 > Major opcode of failed request:  1 (X_CreateWindow)
 > Resource id in failed request:  0x3a
 > Serial number of failed request:  13
 > Current serial number in output stream:  15

4. Пробуем запустить 1Сv7 под wine c выводом на Xnest
 >DISPLAY=:1 wine p:\\1Cv7\\bin\\1cv7.exe
получаем креш дамп:
--------------------------------------------
 Warning: there are some errors in winediag output. Run winediag command and check it.
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e752ee7 (thread 000f), starting debugger...
Unhandled exception: page fault on read access to 0x00000048 in 32-bit code (0x7e752ee7).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:7e752ee7 ESP:0034f990 EBP:0034f9f8 EFLAGS:00010246(   - 00      -RIZP1)
 EAX:00000000 EBX:7e7ccda4 ECX:00000000 EDX:00000000
 ESI:00000000 EDI:00000000
Stack dump:
0x0034f990:  00000000 00000000 00000000 004a1124
0x0034f9a0:  7ec03ac0 00000000 00000000 00000020
0x0034f9b0:  00000000 004a1124 004a1124 7ebfbd04
0x0034f9c0:  00000000 00004f4b 00000000 7ebba257
0x0034f9d0:  7ec03ac0 00000000 00000020 00000020
0x0034f9e0:  00000004 00010001 00000000 7ebfbd04
Backtrace:
=>1 0x7e752ee7 X11DRV_GetBitmapBits+0x187() in winex11 (0x0034f9f8)
  2 0x7eb93cb0 GetBitmapBits+0x1a0() in gdi32 (0x0034fa38)
  3 0x7ec59858 CreateIconFromResourceEx+0x808() in user32 (0x0034fac8)
  4 0x7ec59ca8 in user32 (+0x29ca8) (0x0034fb48)
  5 0x7ec5abed LoadImageW+0x2ed() in user32 (0x0034fbc8)
  6 0x7ec5b0ff LoadImageA+0x3f() in user32 (0x0034fcb8)
  7 0x7ec5b465 LoadCursorA+0x65() in user32 (0x0034fcf8)
  8 0x5f40ac40 in mfc42 (+0xac40) (0x0034fd48)
  9 0x7bc3f525 call_dll_entry_point+0x15() in ntdll (0x0034fd68)
  10 0x7bc40c5a in ntdll (+0x30c5a) (0x0034fde8)
  11 0x7bc4121d in ntdll (+0x3121d) (0x0034fe18)
  12 0x7bc41163 in ntdll (+0x31163) (0x0034fe48)
  13 0x7bc41163 in ntdll (+0x31163) (0x0034fe78)
  14 0x7bc41163 in ntdll (+0x31163) (0x0034fea8)
  15 0x7bc437ec LdrInitializeThunk+0x27c() in ntdll (0x0034ff08)
  16 0x7b86a31b in kernel32 (+0x4a31b) (0x0034ffe8)
  17 0xb7e12627 (0x00000000)
0x7e752ee7 X11DRV_GetBitmapBits+0x187 in winex11: call  *0x48(%edx)
Modules:
Module  Address                 Debug info      Name (61 modules)
ELF       101000-  1fd000       Deferred        libx11.so.6
ELF       1ff000-  315000       Deferred        libwine.so.1
ELF       24c000-  25c000       Deferred        libxext.so.6
ELF       277000-  303000       Deferred        libfreetype.so.6
ELF       305000-  326000       Deferred        libexpat.so.1
ELF       3c2000-  3f1000       Deferred        libfontconfig.so.1
PE        400000-  453000       Deferred        1cv7
PE        400000-  453000       Deferred        1cv7
ELF       4f8000-  4ff000       Deferred        libxrandr.so.2
ELF       588000-  591000       Deferred        libsm.so.6
ELF       593000-  5ad000       Deferred        libice.so.6
ELF       5e2000-  5ec000       Deferred        libxcursor.so.1
ELF       766000-  76b000       Deferred        libxfixes.so.3
ELF       907000-  90a000       Deferred        libxinerama.so.1
ELF       b08000-  b25000       Deferred        ld-linux.so.2
ELF       b27000-  c80000       Deferred        libc.so.6
ELF       c82000-  cab000       Deferred        libm.so.6
ELF       cad000-  cb2000       Deferred        libdl.so.2
ELF       cb4000-  ccd000       Deferred        libpthread.so.0
ELF       db1000-  dcd000       Deferred        libxcb.so.1
ELF       dcf000-  dd2000       Deferred        libxau.so.6
ELF       dd4000-  dd6000       Deferred        libxcb-xlib.so.0
ELF       dd8000-  dde000       Deferred        libxdmcp.so.6
ELF       de0000-  de5000       Deferred        libxxf86vm.so.1
PE      1f000000-1f013000       Deferred        type32
PE      1f100000-1f12c000       Deferred        dbeng32
PE      1f200000-1f22e000       Deferred        br32
PE      1f300000-1f399000       Deferred        frame
PE      20000000-202b1000       Deferred        bkend
PE      21000000-2102b000       Deferred        blang
PE      22000000-22150000       Deferred        seven
PE      23000000-2302d000       Deferred        txtedt
PE      5f300000-5f329000       Deferred        olepro32
PE      5f400000-5f4f2000       Export          mfc42
PE      65340000-653d2000       Deferred        oleaut32
PE      65f00000-65fc2000       Deferred        ole32
PE      78000000-78040000       Deferred        msvcrt
ELF     7b800000-7b941000       Export          kernel32<elf>
  \-PE  7b820000-7b941000       \               kernel32
ELF     7bc00000-7bccc000       Export          ntdll<elf>
  \-PE  7bc10000-7bccc000       \               ntdll
ELF     7bf00000-7bf03000       Deferred        <wine-loader>
ELF     7e59e000-7e5bd000       Deferred        imm32<elf>
  \-PE  7e5b0000-7e5bd000       \               imm32
ELF     7e733000-7e7d4000       Export          winex11<elf>
  \-PE  7e740000-7e7d4000       \               winex11
ELF     7e8cd000-7e92e000       Deferred        shlwapi<elf>
  \-PE  7e8e0000-7e92e000       \               shlwapi
ELF     7e92e000-7ea43000       Deferred        shell32<elf>
  \-PE  7e940000-7ea43000       \               shell32
ELF     7ea43000-7eb17000       Deferred        comctl32<elf>
  \-PE  7ea50000-7eb17000       \               comctl32
ELF     7eb17000-7eb6a000       Deferred        advapi32<elf>
  \-PE  7eb20000-7eb6a000       \               advapi32
ELF     7eb6a000-7ec14000       Export          gdi32<elf>
  \-PE  7eb80000-7ec14000       \               gdi32
ELF     7ec14000-7ed73000       Export          user32<elf>
  \-PE  7ec30000-7ed73000       \               user32
ELF     7ed73000-7ed77000       Deferred        koi8-r.so
ELF     7ed9e000-7edc0000       Deferred        libwine-etersoft.so.1
ELF     7edc0000-7edcc000       Deferred        libnss_files.so.2
Threads:
process  tid      prio (all id:s are in hex)
0000000e (D) P:\1Cv7\bin\1cv7.exe
        0000000f    0 <==
00000033 
        00000034    0
00000014 
        00000016    0
        00000015    0
00000012 
        00000017    0
        00000013    0
Backtrace:
=>1 0x7e752ee7 X11DRV_GetBitmapBits+0x187() in winex11 (0x0034f9f8)
  2 0x7eb93cb0 GetBitmapBits+0x1a0() in gdi32 (0x0034fa38)
  3 0x7ec59858 CreateIconFromResourceEx+0x808() in user32 (0x0034fac8)
  4 0x7ec59ca8 in user32 (+0x29ca8) (0x0034fb48)
  5 0x7ec5abed LoadImageW+0x2ed() in user32 (0x0034fbc8)
  6 0x7ec5b0ff LoadImageA+0x3f() in user32 (0x0034fcb8)
  7 0x7ec5b465 LoadCursorA+0x65() in user32 (0x0034fcf8)
  8 0x5f40ac40 in mfc42 (+0xac40) (0x0034fd48)
  9 0x7bc3f525 call_dll_entry_point+0x15() in ntdll (0x0034fd68)
  10 0x7bc40c5a in ntdll (+0x30c5a) (0x0034fde8)
  11 0x7bc4121d in ntdll (+0x3121d) (0x0034fe18)
  12 0x7bc41163 in ntdll (+0x31163) (0x0034fe48)
  13 0x7bc41163 in ntdll (+0x31163) (0x0034fe78)
  14 0x7bc41163 in ntdll (+0x31163) (0x0034fea8)
  15 0x7bc437ec LdrInitializeThunk+0x27c() in ntdll (0x0034ff08)
  16 0x7b86a31b in kernel32 (+0x4a31b) (0x0034ffe8)
  17 0xb7e12627 (0x00000000)
---------------------------------------------

5. Аналогичный креш наблюдается и если в качестве X сервера используется XMing под Win32. Собственно на нем он и появился.

6. При запуске c DISPLAY=:0 креша не происходит, т.е.
на локальном X сервере все нормально.

7. Также нормально работает на X терминалах с более старыми X/XNest
 >X Window System Version 1.3.0
 >Release Date: 19 April 2007
 >X Protocol Version 11, Revision 0, Release 1.3
 >Build Operating System: Fedora 8 Red Hat, Inc.
 >Current Operating System: Linux op1.kop.sgcenter 2.6.23.8 #7 SMP PREEMPT Sun  Feb 17 14:12:16 MSK 2008 i686
 >Build Date: 13 December 2007
 >Build ID: xorg-x11-server 1.3.0.0-37.fc8 

-----------------------------------------------------
Дополнительная информация:
 FC8 с последними апдейтами
----------------
$ uname -a
Linux 2.6.23.15-137.fc8 #1 SMP Sun Feb 10 17:48:34 EST 2008 i686 i686 i386 GNU/Linux
----------------
$ X --version
X Window System Version 1.3.0
Release Date: 19 April 2007
X Protocol Version 11, Revision 0, Release 1.3
Build Operating System: Fedora 8 Red Hat, Inc.
Current Operating System: Linux srv.kop.sgcenter 2.6.23.15-137.fc8 #1 SMP Sun Feb 10 17:48:34 EST 2008 i686
Build Date: 12 February 2008
Build ID: xorg-x11-server 1.3.0.0-42.fc8 
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present
----------------
$ xdpyinfo для дисплея XNest
name of display:    :1.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    10300000
X.Org version: 1.3.0
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  PointerRoot
number of extensions:    21
    BIG-REQUESTS
    DAMAGE
    DEC-XTRAP
    DOUBLE-BUFFER
    Extended-Visual-Information
    MIT-SCREEN-SAVER
    MIT-SUNDRY-NONSTANDARD
    RECORD
    SECURITY
    SHAPE
    SYNC
    TOG-CUP
    X-Resource
    XAccessControlExtension
    XC-APPGROUP
    XC-MISC
    XFIXES
    XFree86-Bigfont
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1
----------------
$winediag для дисплея с XNest

ОШИБКА: Проверка блокировки файла не удалась. Ваша система не способна установить блокировку по смещению выше 4Гб.
Программа проверки WINE@Etersoft. 22.12.07 (c) 2005, 2006, 2007 Etersoft
Проверяем libwine.so.1... ИМЕЕТСЯ. (версия 20071130)
Проверяем /usr/bin/winelog ... пакет WINE@Etersoft: УСТАНОВЛЕН
Проверяем libwine-etersoft.so.1... SQL ИМЕЕТСЯ (сборка 0x411)
-------
WINE@Etersoft 1.0 SQL (1.0.8), registration number is XXXX-XXXX.
Legality check is available on the page http://sales.etersoft.ru/product/.
-------
Проверяем libcups.so.2... ИМЕЕТСЯ.
Проверяем libfreetype.so.6...ИМЕЕТСЯ (версия 2.3.5)
Установлено соединение с Икс-сервером на :1.0
Расширение GLX отсутствует (3D будет отключено)
Используемая модель потоков (thread): pthread (NPTL)
Ядро: Linux, версия: 2.6.23.15-137.fc8
Максимальное число файловых дескрипторов в системе: 256000 (0 используется)
Максимально доступное количество открытых файлов для одного процесса: 15000
Число тиков таймера в секунду (CLK_TCK): 100
Нет ограничений виртуальной памяти
Ограничение по количеству открытых файлов: 15000 
Количество бит для смещения в файле: 64
Текущая локаль: ru_RU.UTF-8
Comment 1 megov 2008-03-04 12:25:11 MSK
(In reply to comment #0)
Драйвер - vesa
$cat /etc/X11/xorg.conf

# Xorg configuration created by system-config-display

Section "ServerLayout"
        Identifier     "single head configuration"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Module"
        Load  "vnc"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us,ru"
        Option      "XkbOptions" "grp:shifts_toggle,grp_led:scroll"
EndSection

Section "Device"

#       Driver      "radeon"
        Identifier  "Videocard0"
        Driver      "vesa"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        Option      "SecurityTypes" "None"
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Comment 2 Vitaly Lipatov 2008-04-10 10:04:56 MSD
Ядро wine умеет работать только с одним X-сервером, поэтому одновременное использование двух DISPLAY невозможно для одной .wine.
Используйте WINEPREFIX, чтобы указать разные .wine.