I just noticed these messages in my security log on one of my production servers, running 6.1. Can anyone shed some light as to what is going on here? This is a dual core opteron system, on a tyan mb, with a nvidia chipset. The filesystem is on the nvidia raid1 controller. FreeBSD 6.1-RELEASE #0: Tue May 9 23:55:03 EDT 2006 root@xxx:/usr/obj/usr/src/sys/SONIC_NS1 ACPI APIC Table: <Nvidia AWRDACPI> Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Dual Core AMD Opteron(tm) Processor 170 (2009.27-MHz K8-class CPU) atapci1: <nVidia nForce CK804 SATA300 controller> port 0x9f0-0x9f7,0xbf0-0xbf3,0x970-0x977,0xb70-0xb73,0xd400-0xd40f mem 0xfebfc000-0xfebfcfff irq 21 at device 7.0 on pci0 ad4: 114473MB <Seagate ST3120813AS 3.AAD> at ata2-master SATA300 ad6: 114473MB <Seagate ST3120813AS 3.AAD> at ata3-master SATA300 ar0: 114473MB <nVidia MediaShield RAID1> status: READY ar0: disk0 READY (master) using ad4 at ata2-master ar0: disk1 READY (mirror) using ad6 at ata3-master --- May 13 03:01:29 ns1 kernel: DOH! ata_alloc_composite failed! May 13 03:01:29 ns1 last message repeated 2 times
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.