Bug 27316 - Server abort for FreeCursorBits
Summary: Server abort for FreeCursorBits
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-25 11:18 UTC by Raúl
Modified: 2010-03-26 02:01 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Crashing Xorg log (119.47 KB, text/plain)
2010-03-25 11:18 UTC, Raúl
no flags Details

Description Raúl 2010-03-25 11:18:36 UTC
Created attachment 34443 [details]
Crashing Xorg log

Hello:

I'm on Debian testing + some sid componentes (mainly graphics related):

radeon driver 6.12.6 (UMS)
xserver 1.7.5.902
Linux 2.6.32
drm 2.4.18
KDE 4.3.4
mesa 7.7

This is a random crash I had. First yakuake crashed and when I was about to have the bracktrace from DrKonqui (app backtrace helper) the whole desktop crashed, I'd say xserver crashed, according to this backtrace from the core dump:

#0  0x00007f237415df45 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64                                              
#1  0x00007f2374160d80 in *__GI_abort () at abort.c:88                                                                                                       
#2  0x00007f237419354d in __libc_message (do_abort=2,                                                                                                        
    fmt=0x7fff9b38a170 "0 00:00 0 \n7f2376066000-7f2376076000 rw-s 000a0000 00:0e 1682", ' ' <repeats 23 times>, "/dev/mem\n7f2376076000-7f2376086000 rw-s fe9f0000 00:00 4947", ' ' <repeats 23 times>, "/sys/devices/pci0000:00/0000:00:01"...)
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:173                                                                                                                                                                                               
#3  0x00007f237419cd16 in malloc_printerr (action=3, str=0x7f23742477e0 "munmap_chunk(): invalid pointer", ptr=<value optimized out>) at malloc.c:6239                                                                                           
#4  0x000000000042d12a in FreeCursorBits (bits=0x5134b30) at ../../dix/cursor.c:87                                                                                                                                                               
#5  0x000000000042dd62 in FreeCursor (value=<value optimized out>, cid=<value optimized out>) at ../../dix/cursor.c:132                                                                                                                          
#6  0x0000000000437a53 in FreeClientResources (client=<value optimized out>) at ../../dix/resource.c:806                                                                                                                                         
#7  0x000000000042ede0 in CloseDownClient (client=0x35fea10) at ../../dix/dispatch.c:3631                                                                                                                                                        
#8  0x00000000004344b8 in Dispatch () at ../../dix/dispatch.c:450                                                                                                                                                                                
#9  0x0000000000425b9a in main (argc=8, argv=0x7d4fe8, envp=<value optimized out>) at ../../dix/main.c:285                                                                                                                                       
(gdb) frame 4                                                                                                                                                                                                                                    
#4  0x000000000042d12a in FreeCursorBits (bits=0x5134b30) at ../../dix/cursor.c:87                                                                                                                                                               
87      ../../dix/cursor.c: No existe el fichero o el directorio.                                                                                                                                                                                
        in ../../dix/cursor.c                                                                                              

This line is:

79: static void
FreeCursorBits(CursorBitsPtr bits)
{
    if (--bits->refcnt > 0)
        return;
    xfree(bits->source);
    xfree(bits->mask);
#ifdef ARGB_CURSOR
87:    xfree(bits->argb);
#endif
    dixFreePrivates(bits->devPrivates);
90:    bits->devPrivates = NULL;

I'm attaching the xorg log.

I hope you can find the origin of this problem.

Regards,
Comment 1 Michel Dänzer 2010-03-25 11:43:08 UTC
This should be fixed by commit 67a8c659f25218904bae64aac6e98e326c90330b ('hw/xfree86: move reference counting out of the UseHWCursor[ARGB] functions'), which I just cherry-picked to the server-1.7-nominations branch as 2ad8aae749fe08f139e3046e923da8233b9a7cd5. If you can confirm that, please resolve this report as fixed.
Comment 2 Raúl 2010-03-25 14:23:57 UTC
Thanks for answering.

I'm sorry if this question is too noob, but what xserver version should be or is fixing this? I'm not familiarized with git branches structure. If the version is not released yet I can wait for it to be released.

Alternatively, you are likely sure that the commit you pointed fixes it, and you can mark this bug as fixed. I would reopen if I find it again.

Regards,
Comment 3 Michel Dänzer 2010-03-26 02:01:42 UTC
(In reply to comment #2)
> I'm sorry if this question is too noob, but what xserver version should be or
> is fixing this? I'm not familiarized with git branches structure. If the
> version is not released yet I can wait for it to be released.

It's only in 1.7.99.902 (1.8 RC2) and will be in 1.8 and possibly in 1.7.7 (if there will be one).

> Alternatively, you are likely sure that the commit you pointed fixes it, and
> you can mark this bug as fixed. I would reopen if I find it again.

Sounds good.


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.