DOH! ata_alloc_composite failed!

Mike Jakubik mikej at rogers.com
Sat May 13 19:20:59 PDT 2006


Rostislav Krasny wrote:
> Hi,
>
>   
>> May 13 03:01:29 ns1 kernel: DOH! ata_alloc_composite failed!
>> May 13 03:01:29 ns1 last message repeated 2 times
>>     
>
> I'm not a FreeBSD developer but after looking at the source code I can
> say that that kernel message goes from src/sys/dev/ata/ata-raid.c
> because ata_alloc_composite() returns NULL in one of two or in both
> locations in that file. That ata_alloc_composite() is actually a macro,
> defined in src/sys/dev/ata/ata-all.h so:
>
> #define ata_alloc_composite() uma_zalloc(ata_composite_zone, M_NOWAIT | M_ZERO)
>
> ata_composite_zone is a global variable, that is initialized by ata_init()
> in src/sys/dev/ata/ata-all.c with a value returned by uma_zcreate().
>
> The uma_zalloc() is a wrapper of uma_zalloc_arg() and the uma_zcreate() is
> a wrapper of uma_zalloc_internal().
>
> I'm not familiar with UMA and looking on the code deeper just complicate
> things. Try to rebuild the kernel with "options WITNESS". That could
> help the kernel to produce more informative error/warning messages
> about your problem.
>
> You can also uncomment following #define's in src/sys/vm/uma_core.c
>
> /* I should really use ktr.. */
> /*
> #define UMA_DEBUG 1
> #define UMA_DEBUG_ALLOC 1
> #define UMA_DEBUG_ALLOC_1 1
> */
>
> rebuild the kernel and get more debug messages on the console. But that
> will most likely make your machine working very slow. So try it at your
> own risk and only if "options WITNESS" didn't help to get informative
> enough logs.
>
> After all send your logs to FreeBSD developers.
>   

Thanks for the info. I will try putting WITNESS in the kernel. This box 
has been running 6.1-RC fine for about 2 weeks. Hopefully i can catch 
this again. I just hope nothing blows up, as it is a production server, 
doing radius authentication for a medium sized ISP.



More information about the freebsd-stable mailing list