Re: __alloc_pages: 2-order allocation failed
On Fri, 29 Apr 2005 10:47:54 -0400
Mike Edwards <sauron-debian-sparc@psychology.rutgers.edu> wrote:
> Apr 29 08:45:34 psychology kernel: __alloc_pages: 2-order allocation failed (gfp=0x20/0)
> Apr 29 08:45:34 psychology kernel: __alloc_pages: task(spamc) pid(25917) caller(000000000046edc0)
> Apr 29 08:45:34 psychology kernel: DEBUG: __get_free_pages() order 2 failed called by 000000000046aaa8
...
> 000000000046a9c0 t kmem_cache_grow
> 000000000046ad00 T kmem_cache_alloc_batch
Does spamc use AF_UNIX sockets to communicate with other
processes? If so, someone should audit it to make sure it
checks properly for return values on write() calls.
If spamc uses non-blocking AF_UNIX sockets, -ENOBUFS can
happen under normal circumstances. If the sockets were
blocking then the kernel could sleep to swap out some pages
to free up some space and then the call could succeed.
A quick perusal of the spamc sources seems to indicate
that it does use non-blocking AF_UNIX sockets as the
transport to talk to the spamassasindaemon. I'm on
vacation so cannot investigate this more deeply.
Reply to: