Page fault and then a hang. Any ideas?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
dk
Level 2
Level 2
Posts: 24
Joined: Wed May 18, 2011 3:10 pm

Page fault and then a hang. Any ideas?

Post by dk »

Hi everyone!

I need some help with a page fault that occurs in Phantasy Star Online: Blue Burst.

The annoying thing is that the page fault seems to cause the game to hang so the debug log is limited (I have to forcibly terminate the program with System Monitor).

Here's what I do have:

Code: Select all

fixme:imm:ImmDisableIME (0): stub
fixme:imm:ImeHandleNotify WM_IME_NOTIFY:IMN_SETCOMPOSITIONWINDOW
fixme:imm:NotifyIME IMC_SETCANDIDATEPOS
fixme:imm:ImeHandleNotify WM_IME_NOTIFY:IMN_SETCANDIDATEPOS
fixme:wininet:INET_QueryOption INTERNET_OPTION_PER_CONNECTION_OPTION stub
fixme:wininet:INET_QueryOption Unhandled dwOption 4
fixme:wininet:INET_QueryOption Unhandled dwOption 5
fixme:win:EnumDisplayDevicesW ((null),0,0xd6e2cc,0x00000000), stub!
fixme:d3d:swapchain_init Add OpenGL context recreation support to context_validate_onscreen_formats
fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.
fixme:wininet:CommitUrlCacheEntryInternal entry already in cache - don't know what to do!
fixme:d3d8:ValidatePixelShader (0xc69350 (nil) 1 0xd6e388): stub
wine: Unhandled page fault on read access to 0x00000004 at address 0x7bc472f0 (thread 0024), starting debugger...
err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0021, blocked by 0024, retrying (60 sec)
It doesn't tell me very much other than a page fault occurred and the start of the hang (RtlpWaitForCriticalSection?). I'd like to know what I can do to get more useful information out of this crash.

For reference the dll's the game imports are:

Code: Select all

advapi32.dll 
d3d8.dll 
dinput8.dll 
dsound.dll 
gdi32.dll 
imm32.dll 
kernel32.dll 
shell32.dll 
snmpapi.dll 
user32.dll 
winmm.dll 
ws2_32.dll 
wsock32.dll
The current theory is that the page fault is caused by Wine's Direct3D implementation. Specifically d3d8.dll based primarily on the fact that the game hangs at the same spot when run under VirtualBox (where most of the other dlls are all native). The rendering glitches that occur (when under Linux) when moving an open window across the window containing the hung game also seems to support that it's a graphics rendering issue.

The point where the game hangs is during a loading screen immediately after selecting a character to play. On a working Windows machine the loading screen usually takes about 7-8 seconds when afterwards you are presented with a ship/lobby selection menu. The background of that menu is actually the full 3D lobby level which your character will be taken to once a ship and lobby are selected. The loading between that menu and appearing in the lobby is less than a second so I'm pretty sure all of the assets (3D geometry, textures, sounds) are loaded during that long 7-8 second wait. The point at where the game crashes (and hangs) appears to be exactly at the point where the loading screen switches to the ship/lobby menu. There has been 3D that has worked in the game before but it's been limited (character models over a static background) The 3D background of the lobby is much more involved and similar to the levels later in the game. (lighting, effects, etc..)

That last paragraph was mainly to describe the context of when the error occurs for people that may not have tried the game before.

The server that the game connects to has been released as open source. That, in addition to the fact that the game had modest requirements (being released in 2004) makes this a great candidate to get running under Wine. The current page fault is a big problem that's preventing us from making progress so if you have any suggestions they would be greatly appreciated!

Thanks for reading!
dk
Level 2
Level 2
Posts: 24
Joined: Wed May 18, 2011 3:10 pm

Post by dk »

Sorry - my signature didn't get attached to the last post.

I'm using:
Ubuntu 11.04 64 bit (classic desktop, no effects)
Nvidia GeForce 8400M GS
Nvidia driver version: 270.41.06
dk
Level 2
Level 2
Posts: 24
Joined: Wed May 18, 2011 3:10 pm

Post by dk »

Just got a little more information by disabling sound in the game's option menu. This is running from the 1.3.21 build directory.

Code: Select all

fixme:win:EnumDisplayDevicesW ((null),0,0x33f410,0x00000000), stub!
fixme:imm:ImmDisableIME (0): stub
fixme:imm:ImeHandleNotify WM_IME_NOTIFY:IMN_SETCOMPOSITIONWINDOW
fixme:imm:NotifyIME IMC_SETCANDIDATEPOS
fixme:imm:ImeHandleNotify WM_IME_NOTIFY:IMN_SETCANDIDATEPOS
fixme:wininet:INET_QueryOption INTERNET_OPTION_PER_CONNECTION_OPTION stub
fixme:wininet:INET_QueryOption Unhandled dwOption 4
fixme:wininet:INET_QueryOption Unhandled dwOption 5
fixme:win:EnumDisplayDevicesW ((null),0,0xd6e2cc,0x00000000), stub!
fixme:d3d:swapchain_init Add OpenGL context recreation support to context_validate_onscreen_formats
fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.
fixme:d3d8:ValidatePixelShader (0xc68a40 (nil) 1 0xd6e388): stub
fixme:wininet:CommitUrlCacheEntryInternal entry already in cache - don't know what to do!
wine: Unhandled page fault on write access to 0x39c76371 at address 0x7bc4756c (thread 0029), starting debugger...
Unhandled exception: page fault on write access to 0x39c76371 in 32-bit code (0x7bc4756c).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7bc4756c ESP:00d6e118 EBP:00d6e170 EFLAGS:00010206(  R- --  I   - -P- )
 EAX:02162ca0 EBX:7bc9dff4 ECX:00010010 EDX:39c7636d
 ESI:001831c0 EDI:0000000a
Stack dump:
0x00d6e118:  00d6e154 7ddc96f0 7cd7f7c0 7cd7f820
0x00d6e128:  7b16fabd 7cd7f7c0 7bc44aa4 0211f710
0x00d6e138:  00010010 00000000 00000000 00110000
0x00d6e148:  00000150 00d6e160 7bc44c66 00110014
0x00d6e158:  02111d90 7bc9dff4 7bc474cd 7e471ff4
0x00d6e168:  02111d98 00000000 00d6e1c0 7e3d17c3
Backtrace:
=>0 0x7bc4756c RtlAllocateHeap+0xac(heap=0x110000, flags=0xa, size=0x10010) [/home/developer/source/wine-1.3.21/dlls/ntdll/../../include/wine/list.h:98] in ntdll (0x00d6e170)
  1 0x7e3d17c3 resource_init+0x1a2(resource=0x2111d98, device=0x144568, resource_type=WINED3DRTYPE_SURFACE, format=0x1413c8, multisample_type=WINED3DMULTISAMPLE_NONE, multisample_quality=0, usage=0x1, pool=WINED3DPOOL_DEFAULT, width=0x80, height=0x80, depth=0x1, size=0x10000, parent=0x2111d78, parent_ops=0x7e4a6dcc, resource_ops=0x7e46f350) [/home/developer/source/wine-1.3.21/dlls/wined3d/resource.c:113] in wined3d (0x00d6e1c0)
  2 0x7e423cbb wined3d_surface_create+0x48a(device=0x144568, width=0x80, height=0x80, format_id=WINED3DFMT_B8G8R8X8_UNORM, lockable=0, discard=0, level=0, usage=0x1, pool=WINED3DPOOL_DEFAULT, multisample_type=WINED3DMULTISAMPLE_NONE, multisample_quality=0, surface_type=SURFACE_OPENGL, parent=0x2111d78, parent_ops=0x7e4a6dcc, surface=0x2111d80) [/home/developer/source/wine-1.3.21/dlls/wined3d/surface.c:7406] in wined3d (0x00d6e230)
  3 0x7e49821f surface_init+0xbe(surface=0x2111d78, device=0x13c5e8, width=0x80, height=0x80, format=D3DFMT_X8R8G8B8, lockable=0, discard=0, level=0, usage=0x1, pool=D3DPOOL_DEFAULT, multisample_type=D3DMULTISAMPLE_NONE, multisample_quality=0) [/home/developer/source/wine-1.3.21/dlls/d3d8/surface.c:307] in d3d8 (0x00d6e290)
  4 0x7e493778 IDirect3DDevice8Impl_CreateSurface.clone+0xa7() in d3d8 (0x00d6e300)
  5 0x7e4943ac device_parent_create_surface+0x8b(device_parent=0x13c5ec, container_parent=0x2111c08, width=0x80, height=0x80, format=WINED3DFMT_B8G8R8X8_UNORM, usage=0x1, pool=WINED3DPOOL_DEFAULT, level=0, face=WINED3DCUBEMAP_FACE_POSITIVE_X, surface=0xd6e3f4) [/home/developer/source/wine-1.3.21/dlls/d3d8/device.c:2894] in d3d8 (0x00d6e380)
  6 0x7e42d8e8 wined3d_texture_create_2d+0x4c7(device=0x144568, width=0x80, height=0x80, level_count=0x1, usage=0x1, format_id=WINED3DFMT_B8G8R8X8_UNORM, pool=WINED3DPOOL_DEFAULT, parent=0x2111c08, parent_ops=0x7e4a6e4c, texture=0x2111c10) [/home/developer/source/wine-1.3.21/dlls/wined3d/texture.c:1052] in wined3d (0x00d6e410)
  7 0x7e499b15 texture_init+0x84(texture=0x2111c08, device=0x13c5e8, width=0x80, height=0x80, levels=0x1, usage=0x1, format=D3DFMT_X8R8G8B8, pool=D3DPOOL_DEFAULT) [/home/developer/source/wine-1.3.21/dlls/d3d8/texture.c:416] in d3d8 (0x00d6e460)
  8 0x7e491658 IDirect3DDevice8Impl_CreateTexture+0x87(iface=0x13c5e8, width=0x80, height=0x80, levels=0x1, usage=0x1, format=D3DFMT_X8R8G8B8, pool=D3DPOOL_DEFAULT, texture=0xaccf8c) [/home/developer/source/wine-1.3.21/dlls/d3d8/device.c:755] in d3d8 (0x00d6e4b0)
0x7bc4756c RtlAllocateHeap+0xac [/home/developer/source/wine-1.3.21/dlls/ntdll/../../include/wine/list.h:98] in ntdll: movl	%eax,0x4(%edx)
98	    elem->next->prev = elem->prev;
Modules:
Module	Address			Debug info	Name (89 modules)
PE	  400000-  b60000	Export          psobb
ELF	7a0de000-7b800000	Deferred        libnvidia-glcore.so.270.41.06
ELF	7b800000-7b99e000	Deferred        kernel32<elf>
  \-PE	7b810000-7b99e000	\               kernel32
ELF	7bc00000-7bcba000	Dwarf           ntdll<elf>
  \-PE	7bc10000-7bcba000	\               ntdll
ELF	7bf00000-7bf04000	Deferred        <wine-loader>
ELF	7dc98000-7dd66000	Deferred        libgl.so.1
ELF	7de1d000-7dec7000	Deferred        crypt32<elf>
  \-PE	7de30000-7dec7000	\               crypt32
ELF	7dec7000-7df05000	Deferred        rsaenh<elf>
  \-PE	7ded0000-7df05000	\               rsaenh
ELF	7df48000-7df7b000	Deferred        uxtheme<elf>
  \-PE	7df50000-7df7b000	\               uxtheme
ELF	7df7b000-7df81000	Deferred        libxfixes.so.3
ELF	7df81000-7df8b000	Deferred        libxcursor.so.1
ELF	7df8b000-7df9a000	Deferred        libxi.so.6
ELF	7df9a000-7df9e000	Deferred        libxcomposite.so.1
ELF	7df9e000-7dfa6000	Deferred        libxrandr.so.2
ELF	7dfa6000-7dfb0000	Deferred        libxrender.so.1
ELF	7dfb0000-7dfb6000	Deferred        libxxf86vm.so.1
ELF	7dfb6000-7dfba000	Deferred        libxinerama.so.1
ELF	7dfba000-7dfc0000	Deferred        libxdmcp.so.6
ELF	7dfc0000-7dfc4000	Deferred        libxau.so.6
ELF	7dfc4000-7dfdd000	Deferred        libxcb.so.1
ELF	7dfdd000-7dfe2000	Deferred        libuuid.so.1
ELF	7dfe2000-7e0fd000	Deferred        libx11.so.6
ELF	7e0fd000-7e10c000	Deferred        libxext.so.6
ELF	7e10c000-7e124000	Deferred        libice.so.6
ELF	7e124000-7e12c000	Deferred        libsm.so.6
ELF	7e151000-7e1f8000	Deferred        winex11<elf>
  \-PE	7e160000-7e1f8000	\               winex11
ELF	7e22c000-7e256000	Deferred        libexpat.so.1
ELF	7e256000-7e285000	Deferred        libfontconfig.so.1
ELF	7e285000-7e29a000	Deferred        libz.so.1
ELF	7e29a000-7e320000	Deferred        libfreetype.so.6
ELF	7e320000-7e322000	Deferred        libnvidia-tls.so.270.41.06
ELF	7e345000-7e477000	Dwarf           wined3d<elf>
  \-PE	7e350000-7e477000	\               wined3d
ELF	7e477000-7e4aa000	Dwarf           d3d8<elf>
  \-PE	7e480000-7e4aa000	\               d3d8
ELF	7e4aa000-7e4bf000	Deferred        libresolv.so.2
ELF	7e4cd000-7e4e4000	Deferred        snmpapi<elf>
  \-PE	7e4d0000-7e4e4000	\               snmpapi
ELF	7e4e4000-7e505000	Deferred        iphlpapi<elf>
  \-PE	7e4f0000-7e505000	\               iphlpapi
ELF	7e505000-7e520000	Deferred        wsock32<elf>
  \-PE	7e510000-7e520000	\               wsock32
ELF	7e520000-7e550000	Deferred        ws2_32<elf>
  \-PE	7e530000-7e550000	\               ws2_32
ELF	7e550000-7e644000	Deferred        comctl32<elf>
  \-PE	7e560000-7e644000	\               comctl32
ELF	7e644000-7e6a8000	Deferred        shlwapi<elf>
  \-PE	7e650000-7e6a8000	\               shlwapi
ELF	7e6a8000-7e8a3000	Deferred        shell32<elf>
  \-PE	7e6b0000-7e8a3000	\               shell32
ELF	7e8a3000-7e8c4000	Deferred        imm32<elf>
  \-PE	7e8b0000-7e8c4000	\               imm32
ELF	7e8c4000-7e95c000	Deferred        winmm<elf>
  \-PE	7e8d0000-7e95c000	\               winmm
ELF	7e95c000-7e9a4000	Deferred        dsound<elf>
  \-PE	7e960000-7e9a4000	\               dsound
ELF	7e9a4000-7ea16000	Deferred        rpcrt4<elf>
  \-PE	7e9b0000-7ea16000	\               rpcrt4
ELF	7ea16000-7eb18000	Deferred        ole32<elf>
  \-PE	7ea30000-7eb18000	\               ole32
ELF	7eb18000-7eb31000	Deferred        version<elf>
  \-PE	7eb20000-7eb31000	\               version
ELF	7eb31000-7ebc7000	Deferred        gdi32<elf>
  \-PE	7eb40000-7ebc7000	\               gdi32
ELF	7ebc7000-7ecfd000	Deferred        user32<elf>
  \-PE	7ebe0000-7ecfd000	\               user32
ELF	7ecfd000-7ed36000	Deferred        dinput<elf>
  \-PE	7ed00000-7ed36000	\               dinput
ELF	7ed36000-7ed92000	Deferred        advapi32<elf>
  \-PE	7ed40000-7ed92000	\               advapi32
ELF	7ed92000-7ed9e000	Deferred        libnss_files.so.2
ELF	7ed9e000-7edb5000	Deferred        libnsl.so.1
ELF	7efb5000-7efdb000	Deferred        libm.so.6
ELF	7efe5000-7f000000	Deferred        dinput8<elf>
  \-PE	7eff0000-7f000000	\               dinput8
ELF	f7443000-f744e000	Deferred        libnss_nis.so.2
ELF	f7450000-f7454000	Deferred        libdl.so.2
ELF	f7454000-f75b1000	Deferred        libc.so.6
ELF	f75b1000-f75ca000	Deferred        libpthread.so.0
ELF	f75e6000-f75ee000	Deferred        libnss_compat.so.2
ELF	f75ef000-f7730000	Dwarf           libwine.so.1
ELF	f7732000-f7750000	Deferred        ld-linux.so.2
ELF	f7750000-f7751000	Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
	0000001c    0
	00000014    0
	00000010    0
	0000000f    0
00000011 winedevice.exe
	00000018    0
	00000017    0
	00000013    0
	00000012    0
00000019 plugplay.exe
	0000001d    0
	0000001b    0
	0000001a    0
0000001e explorer.exe
	0000001f    0
00000025 (D) C:\Program Files\PHANTASY STAR ONLINE Blue Burst\PsoBB.exe
	0000002c    0
	00000029    0 <==
	00000026    0
Backtrace:
=>0 0x7bc4756c RtlAllocateHeap+0xac(heap=0x110000, flags=0xa, size=0x10010) [/home/developer/source/wine-1.3.21/dlls/ntdll/../../include/wine/list.h:98] in ntdll (0x00d6e170)
  1 0x7e3d17c3 resource_init+0x1a2(resource=0x2111d98, device=0x144568, resource_type=WINED3DRTYPE_SURFACE, format=0x1413c8, multisample_type=WINED3DMULTISAMPLE_NONE, multisample_quality=0, usage=0x1, pool=WINED3DPOOL_DEFAULT, width=0x80, height=0x80, depth=0x1, size=0x10000, parent=0x2111d78, parent_ops=0x7e4a6dcc, resource_ops=0x7e46f350) [/home/developer/source/wine-1.3.21/dlls/wined3d/resource.c:113] in wined3d (0x00d6e1c0)
  2 0x7e423cbb wined3d_surface_create+0x48a(device=0x144568, width=0x80, height=0x80, format_id=WINED3DFMT_B8G8R8X8_UNORM, lockable=0, discard=0, level=0, usage=0x1, pool=WINED3DPOOL_DEFAULT, multisample_type=WINED3DMULTISAMPLE_NONE, multisample_quality=0, surface_type=SURFACE_OPENGL, parent=0x2111d78, parent_ops=0x7e4a6dcc, surface=0x2111d80) [/home/developer/source/wine-1.3.21/dlls/wined3d/surface.c:7406] in wined3d (0x00d6e230)
  3 0x7e49821f surface_init+0xbe(surface=0x2111d78, device=0x13c5e8, width=0x80, height=0x80, format=D3DFMT_X8R8G8B8, lockable=0, discard=0, level=0, usage=0x1, pool=D3DPOOL_DEFAULT, multisample_type=D3DMULTISAMPLE_NONE, multisample_quality=0) [/home/developer/source/wine-1.3.21/dlls/d3d8/surface.c:307] in d3d8 (0x00d6e290)
  4 0x7e493778 IDirect3DDevice8Impl_CreateSurface.clone+0xa7() in d3d8 (0x00d6e300)
  5 0x7e4943ac device_parent_create_surface+0x8b(device_parent=0x13c5ec, container_parent=0x2111c08, width=0x80, height=0x80, format=WINED3DFMT_B8G8R8X8_UNORM, usage=0x1, pool=WINED3DPOOL_DEFAULT, level=0, face=WINED3DCUBEMAP_FACE_POSITIVE_X, surface=0xd6e3f4) [/home/developer/source/wine-1.3.21/dlls/d3d8/device.c:2894] in d3d8 (0x00d6e380)
  6 0x7e42d8e8 wined3d_texture_create_2d+0x4c7(device=0x144568, width=0x80, height=0x80, level_count=0x1, usage=0x1, format_id=WINED3DFMT_B8G8R8X8_UNORM, pool=WINED3DPOOL_DEFAULT, parent=0x2111c08, parent_ops=0x7e4a6e4c, texture=0x2111c10) [/home/developer/source/wine-1.3.21/dlls/wined3d/texture.c:1052] in wined3d (0x00d6e410)
  7 0x7e499b15 texture_init+0x84(texture=0x2111c08, device=0x13c5e8, width=0x80, height=0x80, levels=0x1, usage=0x1, format=D3DFMT_X8R8G8B8, pool=D3DPOOL_DEFAULT) [/home/developer/source/wine-1.3.21/dlls/d3d8/texture.c:416] in d3d8 (0x00d6e460)
  8 0x7e491658 IDirect3DDevice8Impl_CreateTexture+0x87(iface=0x13c5e8, width=0x80, height=0x80, levels=0x1, usage=0x1, format=D3DFMT_X8R8G8B8, pool=D3DPOOL_DEFAULT, texture=0xaccf8c) [/home/developer/source/wine-1.3.21/dlls/d3d8/device.c:755] in d3d8 (0x00d6e4b0)
Frédéric Delanoy

Page fault and then a hang. Any ideas?

Post by Frédéric Delanoy »

On Mon, May 30, 2011 at 06:44, dk <[email protected]> wrote:
Just got a little more information by disabling sound in the game's option menu. This is running from the 1.3.21 build directory.


Code:
fixme:win:EnumDisplayDevicesW ((null),0,0x33f410,0x00000000), stub!
fixme:imm:ImmDisableIME (0): stub
...
 8 0x7e491658 IDirect3DDevice8Impl_CreateTexture+0x87(iface=0x13c5e8, width=0x80, height=0x80, levels=0x1, usage=0x1, format=D3DFMT_X8R8G8B8, pool=D3DPOOL_DEFAULT, texture=0xaccf8c) [/home/developer/source/wine-1.3.21/dlls/d3d8/device.c:755] in d3d8 (0x00d6e4b0)
Avoid pasting long logs in mails; use pastebin or similar sites for this
Locked