Bug 35942

Summary: Crash in World of Warcraft
Product: Mesa Reporter: Chris Rankin <rankincj>
Component: Drivers/Gallium/r300Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Wine stacktrace from WoW crash

Description Chris Rankin 2011-04-04 01:16:52 UTC
World of Warcraft is crashing again, after a few minutes fishing in Dalaran's fountain.

After reverting as far back as:

commit 381d32af74e305041b5e75930a32795db94e0e15
Author: Tom Stellard <tstellar@gmail.com>
Date:   Sat Apr 2 23:14:12 2011 -0700

   Revert "r300/compiler: Remove obsolete compiler passes"

   This reverts commit 9f013a8233197d4a0482661cb37cfeac1a61b804.

   These passes are still need for non-GLSL paths like g3dvl and ARB
   programs.

I was able to fish in Dalaran's fountain for several hours, although the crash was still present when I'd only reverted as far back as:

commit 437c748bf5072d2bded77a00c74c51cdb8b510e5

In between these two commits is c35572352e3e92683988ee8d151b47f4190d62f9, which I have not tested.
Comment 1 Marek Olšák 2011-04-04 08:04:33 UTC
If you just revert 437c748bf5072d2bded77a00c74c51cdb8b510e5, does it fix the bug?
Comment 2 Chris Rankin 2011-04-04 11:12:29 UTC
Created attachment 45236 [details]
Wine stacktrace from WoW crash
Comment 3 Chris Rankin 2011-04-04 11:40:29 UTC
I've just experienced the exact same crash with this commit as HEAD:

commit c35572352e3e92683988ee8d151b47f4190d62f9
Author: Marek Olšák <maraeo@gmail.com>
Date:   Sun Apr 3 17:32:47 2011 +0200

    r300g: remove the redundant reference counter in radeon_bo
    
    We already have pb_buffer::reference::count.
Comment 4 Chris Rankin 2011-04-04 14:00:28 UTC
(In reply to comment #1)
> If you just revert 437c748bf5072d2bded77a00c74c51cdb8b510e5, does it fix the
> bug?

No, the first bad commit seems to be c35572352e3e92683988ee8d151b47f4190d62f9.
Comment 5 Chris Rankin 2011-04-04 16:36:33 UTC
I have finally captured the actual error when WoW crashes:

wine: Unhandled page fault on write access to 0x00000809 at address 0x7d9610bb (thread 000b), starting debugger...
Unhandled exception: page fault on write access to 0x00000809 in 32-bit code (0x7d9610bb).

...

Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:7d9610bb ESP:0033f368 EBP:0033f3c0 EFLAGS:00010206(  R- --  I   - -P- )
 EAX:00000809 EBX:7dc70618 ECX:0000000a EDX:7d05db9c
 ESI:7d0c4f68 EDI:71e26c30
Stack dump:
0x0033f368:  7d05e778 00000001 0033f648 000040f7
0x0033f378:  7d0c4f60 00000000 00000000 00000200
0x0033f388:  7d0c4f60 7cf920b8 0033f3b0 00004063
0x0033f398:  7d0c4f68 00000201 71e26c30 0000000b
0x0033f3a8:  7d05ce30 00000001 0033f648 7dc70618
0x0033f3b8:  7d05ce30 7d05e8fc 0033f410 7d978b66
Backtrace:
=>0 0x7d9610bb radeon_drm_cs_add_reloc+0x7b(rcs=0x7d0c4f60, buf=0x71e26c30, rd=R300_DOMAIN_GTT, wd=0) [/home/chris/Programs/mesa/src/gallium/winsys/radeon/drm/../../../../../src/gallium/auxiliary/util/u_atomic.h:103] in r300_dri.so (0x0033f3c0)
  1 0x7d978b66 r300_emit_buffer_validate+0x215(r300=0x7d05ce30, do_validate_vertex_buffers=2, index_buffer=0x7d032b48) [/home/chris/Programs/mesa/src/gallium/drivers/r300/r300_emit.c:1214] in r300_dri.so (0x0033f410)
...

and the rest is as before.
Comment 6 Marek Olšák 2011-04-08 12:40:52 UTC
Should be fixed with aac4bae98651c928ce298aecf158b0aa1a7fabce. Reopen if you still have any issues.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.