Bug 21791 - Mesa 7.4.2 Unable to delete texture in Mplayer/dccnitghtmare
Mesa 7.4.2 Unable to delete texture in Mplayer/dccnitghtmare
Status: RESOLVED FIXED
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/r300
git
x86-64 (AMD64) Linux (All)
: medium critical
Assigned To: Default DRI bug account
:
: 22313 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-05-18 05:28 UTC by Alexey Shildyakov
Modified: 2009-08-24 12:32 UTC (History)
0 users

See Also:


Attachments
Memory map for crash (57.79 KB, text/plain)
2009-05-18 05:28 UTC, Alexey Shildyakov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Shildyakov 2009-05-18 05:28:59 UTC
Created attachment 25961 [details]
Memory map for crash

Mplayer crash with the following error in the end playing or close app:

Mesa 7.4.2 implementation error: Unable to delete texture, no context
Please report at bugzilla.freedesktop.org
Mesa 7.4.2 implementation error: Unable to delete texture, no context
Please report at bugzilla.freedesktop.org
*** glibc detected *** /usr/bin/mplayer: double free or corruption (!prev): 0x000000000220bc40 ***
======= Backtrace: =========
/lib/libc.so.6[0x7f28405e8138]
/lib/libc.so.6(cfree+0x76)[0x7f28405e9c76]
/usr/lib64/dri/r300_dri.so(_mesa_delete_texture_object+0x59)[0x7f2839cc72d9]
/usr/lib64/dri/r300_dri.so[0x7f2839c75874]
/usr/lib64/dri/r300_dri.so(_mesa_free_context_data+0x18c)[0x7f2839c7641c]
/usr/lib64/dri/r300_dri.so(_mesa_destroy_context+0xe)[0x7f2839c7647e]
/usr/lib64/dri/r300_dri.so(radeonCleanupContext+0xc)[0x7f2839c4382c]
/usr/lib64/dri/r300_dri.so(r300DestroyContext+0x29f)[0x7f2839c4999f]
/usr/lib64/dri/r300_dri.so[0x7f2839c3e690]
//usr/lib64/opengl/xorg-x11/lib/libGL.so.1[0x7f2848b16a2f]
//usr/lib64/opengl/xorg-x11/lib/libGL.so.1[0x7f2848af3034]
/usr/bin/mplayer(releaseGlContext+0x53)[0x47ae93]
/usr/bin/mplayer[0x47de7c]
/usr/bin/mplayer(uninit_player+0x2c4)[0x4594f4]
/usr/bin/mplayer(exit_player_with_rc+0x2c)[0x45999c]
/usr/bin/mplayer(run_command+0xb9a)[0x46660a]
/usr/bin/mplayer(main+0x2040)[0x45bf70]
/lib/libc.so.6(__libc_start_main+0xe6)[0x7f28405935c6]
/usr/bin/mplayer[0x456ef9]

ATI Radeon x600 Pro - rv380

media-libs/mesa-7.4.2  USE="doc motif nptl xcb -debug -pic" VIDEO_CARDS="radeon -intel -mach64 -mga -none -r128 -radeonhd -s3virge -savage -sis (-sunffb) -tdfx -trident -via"

x11-base/xorg-server-1.5.3-r6  USE="hal ipv6 nptl sdl xorg (-3dfx) -debug -dmx -kdrive -minimal -tslib" INPUT_DEVICES="evdev keyboard mouse virtualbox -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957 -tslib -ur98 -vmmouse -void -wacom" VIDEO_CARDS="radeon vesa -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx (-geode) -glint -i128 (-i740) (-impact) (-imstt) -intel -mach64 -mga -neomagic (-newport) -nv -nvidia -r128 -radeonhd -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l (-vermilion) -via -virtualbox -vmware -voodoo (-xgi)

x11-drivers/xf86-video-ati-6.12.2

x11-base/xorg-x11-7.4

DRI enebled in Kernel.
Comment 1 Michel Dänzer 2009-05-18 10:09:32 UTC
I can't seem to reproduce this...

Can you run mplayer in gdb, set a breakpoint in _mesa_problem and attach the output of 'bt full' for each case the breakpoint gets hit?
Comment 2 Alexey Shildyakov 2009-05-19 10:11:09 UTC
I tried do it but it say:
break _mesa_problem
Function "_mesa_problem" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (_mesa_problem) pending

Can you describe me other functions?

I try to play video with Mplayer only. But it's ok.
I have this problem when playing in Smplayer in the following case:
1) when i forward to play in the end
2) when i close the video

I try to get a backtrace from Smpalyer.
I've got previous error, then type: bt all.


#0  0x00007f8929074cdb in write () from /lib/libpthread.so.0                                                          
No symbol table info available.                                                                                       
#1  0x00007f8929e9eb16 in qt_native_write (fd=20,                                                                     
    data=0x1ff8098 "quit\n1424 2\n switch_video 0\nvolume 40 1\nsub_select 0\nswitch_audio 1\nvolume 40 1\n\\��]\237��\a/�'?�\230G\036�\224�{�O��@\177� a(q]\027��b\217��S�G�H)1t\203B����$###,..Q(�\031\034\034$W\030�0��J�2/\204��P\030����\217�k��zx�\177\r\202`]�\\>k۶mo���˾��o~s�}�"..., len=<value optimized out>) at io/qprocess_unix.cpp:130              
        ret = 33426528                                                                                                
#2  0x00007f8929e6a0a7 in QProcessPrivate::_q_canWrite (this=0x1fe0c60) at io/qprocess.cpp:628                        
        written = <value optimized out>                                                                               
#3  0x00007f8929ea05d0 in QProcessPrivate::waitForFinished (this=0x1fe0c60, msecs=5000) at io/qprocess_unix.cpp:1184  
        fdread = {fds_bits = {2228224, 0 <repeats 15 times>}}                                                         
        fdwrite = {fds_bits = {1048576, 0 <repeats 15 times>}}                                                        
        timeout = <value optimized out>                                                                               
        ret = <value optimized out>                                                                                   
        stopWatch = {mds = 75845437}                                                                                  
#4  0x00007f8929e681db in QProcess::waitForFinished (this=0x1fe0ab0, msecs=5000) at io/qprocess.cpp:1318              
        d = (QProcessPrivate * const) 0x1fe0c60                                                                       
#5  0x000000000046b00e in Core::stopMplayer (this=0x1fe0270) at core.cpp:2100                                         
No locals.                                                                                                            
#6  0x000000000046b59d in ~Core (this=0x1fe0270) at core.cpp:219                                                      
No locals.                                                                                                            
#7  0x0000000000537a3a in ~BaseGui (this=0x1fdb880) at basegui.cpp:248
No locals.
#8  0x00000000005579cd in ~DefaultGui (this=0x1fdb880) at defaultgui.cpp:87
No locals.
#9  0x0000000000565c9f in ~SMPlayer (this=0x1fc0e20) at smplayer.cpp:65
No locals.
#10 0x0000000000568803 in main (argc=2, argv=<value optimized out>) at main.cpp:268
        a = {<QApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x59ed90,
        static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7f8929f49340 "QObject",
            data = 0x7f8929f493e0, extradata = 0x7f892a188300}}, d_ptr = 0x1efd4b0, static staticQtMetaObject = {
          d = {superdata = 0x0, stringdata = 0x7f8929f52be0 "Qt", data = 0x7f8929f55ac0, extradata = 0x0}}},
---Type <return> to continue, or q <return> to quit---
      static staticMetaObject = {d = {superdata = 0x82b9a0, stringdata = 0x7f8929f5a980 "QCoreApplication",
          data = 0x7f8929f5aa20, extradata = 0x0}}, static self = 0x7fff34a50120}, static staticMetaObject = {d = {
        superdata = 0x7f892a18f060, stringdata = 0x7f892c257660 "QApplication", data = 0x7f892c257860,
        extradata = 0x0}}}, <No data fields>}
        config_path = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 3299}, alloc = 0,
    size = 0, data = 0x82b7da, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0,
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 61}, alloc = 0, size = 0,
    data = 0x7f892a19081a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0,
    array = {0}}, d = 0x82b7c0, static codecForCStrings = 0x0}
        args = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 10642}, alloc = 0, begin = 0,
          end = 0, sharable = 1, array = {0x0}}, d = 0x1f038f0}, d = 0x1f038f0}}, <No data fields>}
        pos = <value optimized out>
        lock_file = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 3299}, alloc = 0,
    size = 0, data = 0x82b7da, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0,
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 61}, alloc = 0, size = 0,
    data = 0x7f892a19081a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0,
    array = {0}}, d = 0x1f4b760, static codecForCStrings = 0x0}
        smplayer = (class SMPlayer *) 0x1fc0e20
        c = SMPlayer::NoError
        r = 0
Comment 3 Michel Dänzer 2009-05-20 01:19:07 UTC
(In reply to comment #2)
> break _mesa_problem
> Function "_mesa_problem" not defined.
> Make breakpoint pending on future shared library load? (y or [n]) y
> Breakpoint 1 (_mesa_problem) pending

That's fine, the breakpoint should be resolved as soon as libGL is loaded.


> I try to play video with Mplayer only. But it's ok.

Maybe it doesn't use GL output, try running it with -vo gl or -vo gl2.


> I try to get a backtrace from Smpalyer.
> I've got previous error, then type: bt all.

The backtrace doesn't look related to the problem reported here. Maybe it's from a different thread, a different problem, or simply from a signal that gets handled by smplayer.
Comment 4 Alexey Shildyakov 2009-05-20 07:39:05 UTC
sorry. yes, of course it run without Gl.
with GL:

Breakpoint 1, _mesa_problem (ctx=0x0, fmtString=0x7f7f0e03cde0 "Unable to delete texture, no context")
    at main/imports.c:1024                                                                            
1024    main/imports.c: No such file or directory.                                                    
        in main/imports.c                                                                             
(gdb) bt full                                                                                         
#0  _mesa_problem (ctx=0x0, fmtString=0x7f7f0e03cde0 "Unable to delete texture, no context") at main/imports.c:1024
        args = {{gp_offset = 645688192, fp_offset = 32767, overflow_arg_area = 0x7f7f143d3c9a, reg_save_area = 0x0}}
        str = '\0' <repeats 1504 times>, "BENCHMARKn: disp: 188 (23.13 fps)  drop: 0 (0%)  total: 188 (23.13 fps)\n", '\0' <repeats 2000 times>, "$c:\001\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000pb:\001\000\000\000\000�K=\024\177\177\000\000�i\000\000\000\000\000\000)\202E", '\0' <repeats 13 times>, "�6�\024\177\177\000\000\000\000\000\000 ", '\0' <repeats 19 times>, "\002", '\0' <repeats 15 times>, "\020\000\000\000\000\000\000\000�~\026\025\177"...                                                                                                        
#1  0x00007f7f0df09af0 in _mesa_reference_texobj (ptr=0x1500f08, tex=0x0) at main/texobj.c:319                        
        ctx = <value optimized out>                                                                                   
        __PRETTY_FUNCTION__ = "_mesa_reference_texobj"                                                                
#2  0x00007f7f0de9aa2e in r300DestroyTexObj (rmesa=0x14ffb30, t=0x1c55180) at r300_texmem.c:76                        
        i = 0                                                                                                         
        __FUNCTION__ = "r300DestroyTexObj"                                                                            
#3  0x00007f7f0de80383 in driDestroyTextureObject (t=0x1c55180) at ../common/texmem.c:343                             
        heap = (driTexHeap *) 0x1594960
#4  0x00007f7f0de803f8 in driDestroyTextureHeap (heap=0x1594960) at ../common/texmem.c:770
        t = (driTextureObject *) 0x0
        temp = (driTextureObject *) 0x15722a0
#5  0x00007f7f0de8c96b in r300DestroyContext (driContextPriv=<value optimized out>) at r300_context.c:529
        i = 1
        ctx = <value optimized out>
        r300 = (r300ContextPtr) 0x14ffb30
        current = <value optimized out>
        __PRETTY_FUNCTION__ = "r300DestroyContext"
        __FUNCTION__ = "r300DestroyContext"
#6  0x00007f7f0de81690 in driDestroyContext (pcp=0x14ff370) at ../common/dri_util.c:531
No locals.
#7  0x00007f7f1d3aea2f in driDestroyContext (context=0x1448010, psc=0x7f7f0e03cde0, dpy=0x0) at dri_glx.c:444
No locals.
#8  0x00007f7f1d38b034 in DestroyContext (dpy=0x139d940, gc=0x14ff990) at glxcmds.c:528
        xid = 52428809
        opcode = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        imported = 0 '\0'
#9  0x000000000047ae93 in releaseGlContext (vinfo=0xe92fc0, context=0xe92fc8) at libvo/gl_common.c:1660
No locals.
#10 0x000000000047de7c in uninit () at libvo/vo_gl.c:971
No locals.
#11 0x00000000004594f4 in uninit_player (mask=3659) at mplayer.c:624
No locals.
#12 0x000000000045cdc4 in main (argc=20525232, argv=<value optimized out>) at mplayer.c:3930
        mem_ptr = <value optimized out>
        opt_exit = <value optimized out>
        i = <value optimized out>
        gui_no_filename = <value optimized out>
        last_heartbeat = 0
Comment 5 tony 2009-05-20 17:16:24 UTC
I'm getting a similar issue with the DNT game...

(gdb) run dccnitghtmare
Starting program: /home/lich/dntinstall/bin/dccnitghtmare dccnitghtmare bt full
[Thread debugging using libthread_db enabled]
[New Thread 0x7f8cf3521720 (LWP 16306)]
[New Thread 0x7f8cdcd7e950 (LWP 16307)]
[New Thread 0x7f8cdc57d950 (LWP 16308)]
Warning: No GL_ARB_point_sprite extension found!
DNT will be in worse quality =^( 
Warning: No GL_EXT_framebuffer_object found!
DNT will be in worse quality =^( 
Warning: No GL_ARB_*_shader extension found!
DNT will be in worse quality =^( 
*********************************WARN_ONCE*********************************
File r300_state.c function r500SetupRSUnit line 1907
Don't know how to satisfy InputsRead=0x00000008
***************************************************************************
[Thread 0x7f8cdc57d950 (LWP 16308) exited]
[Thread 0x7f8cdcd7e950 (LWP 16307) exited]
Mesa 7.4.2 implementation error: Unable to delete texture, no context
Please report at bugzilla.freedesktop.org
Comment 6 Michel Dänzer 2009-05-22 02:55:23 UTC
Does this still happen with current upstream Git mesa_7_4_branch? There have been further texture object reference counting fixes.
Comment 7 Alexey Shildyakov 2009-05-22 07:07:36 UTC
I have mesa-7.4.2. This a SVN version, isn't it?
I don't know when i can download svn. I'm using Gentoo...
Comment 8 Sasha Medvedev 2009-05-22 12:46:48 UTC
I suppose you can use mesa-9999 ebuild from X11 overlay.
Comment 9 Alexey Shildyakov 2009-05-22 14:30:15 UTC
with mesa-7.5_rc2 from SVN it works fine.
Comment 10 Michel Dänzer 2009-05-22 14:41:36 UTC
(In reply to comment #9)
> with mesa-7.5_rc2 from SVN it works fine.

That's from the Git branch mesa_7_5_branch, which has a lot of changes from mesa_7_4_branch. Someone should check the latter.
Comment 11 Alexey Shildyakov 2009-05-22 14:52:03 UTC
I don't know what is "mesa_7_4_branch".
In x11 overlay i have only this packages:
-mesa-7.5_rc2
-mesa-9999
In offical packages tree i have only this:
-....
-media-libs/mesa-7.4.1-r2
-media-libs/mesa-7.4.2
Where i can find mesa_7_4_branch?
Comment 12 Alexey Shildyakov 2009-06-16 12:09:08 UTC
*** Bug 22313 has been marked as a duplicate of this bug. ***
Comment 13 Alexey Shildyakov 2009-06-16 12:19:25 UTC
Ok. I have this error again. And again in Mplayer.
media-libs/mesa-7.4.2
x11-base/xorg-x11-7.4
x11-base/xorg-server-1.6.1.901-r3

Symptoms are old. In fullscreen mode X freezes. In windowed mode Mplayer crash when closing.
Backtrace for this crash:


#0  0x00007f0f39c05645 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64             
        pid = <value optimized out>                                                                                   
        selftid = <value optimized out>                                                                               
#1  0x00007f0f39c06b63 in abort () at abort.c:88                                                                      
        act = {__sigaction_handler = {sa_handler = 0x7fff4994d490, sa_sigaction = 0x7fff4994d490}, sa_mask = {        
    __val = {140734427878688, 25769803776, 140734427878752, 140734427889476, 16, 139703371121904, 3,                  
      140734427878746, 6, 139703371121908, 2, 140734427878734, 2, 139703371113173, 1, 139703371121904}},              
  sa_flags = 3, sa_restorer = 0x7fff4994d554}                                                                         
        sigs = {__val = {32, 0 <repeats 15 times>}}                                                                   
#2  0x00007f0f39c41ac8 in __libc_message (do_abort=2, fmt=0x7f0f39cf5d98 "*** glibc detected *** %s: %s: 0x%s ***\n") 
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:170                                                                    
        ap = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff4994deb0, reg_save_area = 0x7fff4994ddc0}}   
        ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fff4994deb0,                               
    reg_save_area = 0x7fff4994ddc0}}                                                                                  
        fd = 6                                                                                                        
        on_2 = <value optimized out>                                                                                  
        list = <value optimized out>                                                                                  
        nlist = <value optimized out>                                                                                 
        cp = <value optimized out>                                                                                    
        written = 6                                                                                                   
#3  0x00007f0f39c47258 in malloc_printerr (action=2, str=0x7f0f39cf5f60 "double free or corruption (!prev)",          
    ptr=<value optimized out>) at malloc.c:6196                                                                       
        buf = "00000000028e4570"                                                                                      
        cp = <value optimized out>                                                                                    
#4  0x00007f0f39c4bd0c in __libc_free (mem=<value optimized out>) at malloc.c:3716                                    
        ar_ptr = (mstate) 0x7f0f39f29e60                                                                              
        p = (mchunkptr) 0x6                                                                                           
#5  0x00007f0f33c1f2d9 in _mesa_delete_texture_object (ctx=0x25ca930, texObj=0x25843e0) at main/texobj.c:200          
        i = 0                                                                                                         
        face = 0                                                                                                      
#6  0x00007f0f33bcd874 in free_shared_state (ctx=0x25ca930, ss=0x2583760) at main/context.c:762                       
No locals.                                                                                                            
#7  0x00007f0f33bce41c in _mesa_free_context_data (ctx=0x25ca930) at main/context.c:1329                              
        __PRETTY_FUNCTION__ = "_mesa_free_context_data"                                                               
---Type <return> to continue, or q <return> to quit---                                                                
#8  0x00007f0f33bce47e in _mesa_destroy_context (ctx=0x25ca930) at main/context.c:1353                                
No locals.                                                                                                            
#9  0x00007f0f33b9b82c in radeonCleanupContext (radeon=0x257e6b0) at radeon_context.c:199                             
No locals.                                                                                                            
#10 0x00007f0f33ba199f in r300DestroyContext (driContextPriv=<value optimized out>) at r300_context.c:536             
        ctx = <value optimized out>                                                                                   
        r300 = (r300ContextPtr) 0x257e6b0                                                                             
        current = (radeonContextPtr) 0x257e6b8                                                                        
        __PRETTY_FUNCTION__ = "r300DestroyContext"
        __FUNCTION__ = "r300DestroyContext"
#11 0x00007f0f33b96690 in driDestroyContext (pcp=0x257deb0) at ../common/dri_util.c:531
No locals.
#12 0x00007f0f40532a2f in driDestroyContext (context=0x257cc60, psc=0x3576, dpy=0x6) at dri_glx.c:444
No locals.
#13 0x00007f0f4050f034 in DestroyContext (dpy=0x240ace0, gc=0x257e510) at glxcmds.c:528
        xid = 54525961
        opcode = <value optimized out>
        imported = 0 '\0'
#14 0x0000000000474f63 in releaseGlContext (vinfo=0xe28940, context=0xe28948) at libvo/gl_common.c:1655
No locals.
#15 0x0000000000477f7c in uninit () at libvo/vo_gl.c:971
No locals.
#16 0x000000000045bfb4 in uninit_player (mask=3787) at mplayer.c:624
No locals.
#17 0x000000000045c39c in exit_player_with_rc (how=EXIT_QUIT, rc=0) at mplayer.c:685
No locals.
#18 0x0000000000456cd1 in run_command (mpctx=0xe06c60, cmd=0x3192ed0) at command.c:2510
        sh_audio = (sh_audio_t * const) 0x23e6210
        sh_video = (sh_video_t * const) 0x23e06b0
        brk_cmd = <value optimized out>
#19 0x000000000045e800 in main (argc=37619376, argv=<value optimized out>) at mplayer.c:3825
        cmd = (mp_cmd_t *) 0x3192ed0
        brk_cmd = 0
        aq_sleep_time = 0.0329410098
---Type <return> to continue, or q <return> to quit---
        time_frame = -8.09915364e-05
        frame_time_remaining = <value optimized out>
        blit_frame = 1
        mem_ptr = <value optimized out>
        opt_exit = <value optimized out>
        i = 0
        last_heartbeat = 0


I set a breakpoint in _mesa_problem. This breakpoint not accessable I think.
Comment 14 Michel Dänzer 2009-06-17 00:42:23 UTC
(In reply to comment #13)
> media-libs/mesa-7.4.2

Sigh. Will someone please try upstream Git mesa_7_4_branch, as I requested almost a month ago?
Comment 15 Alexey Shildyakov 2009-06-22 08:04:21 UTC
With current mesa_7_4_branch this error isn't be.
Comment 16 Alexey Shildyakov 2009-06-22 08:17:11 UTC
*** Bug 22313 has been marked as a duplicate of this bug. ***
Comment 17 Jerome Glisse 2009-07-07 07:02:49 UTC
Bug is fixed right ? So i am closing the bug, please reopen if you experience same issue again with newer version of mesa.
Comment 18 ajax at nwnk dot net 2009-08-24 12:32:14 UTC
Mass version move, cvs -> git