debugging page allocation failure

Chris Burroughs <[email protected]>
Newsgroups gmane.linux.keepalived.devel
Message-ID <[email protected]>
I have a two keepalived + haproxy pairs that are experiencing memory 
problems.  Other systems, including those running haproxy without 
keepalived do no experience the same problems.  The failover 
keepalived/haproxy pair is also unaffected.  The problem takes two forms:

  * Memory used grows over time.  Memory used by individual userspace 
applications do now account for this growth. http://imgur.com/PToSG0m
  * Every few weeks the primary will fail.  When this happens many 'page 
allocation failure' failures occur, with some 'BUG: soft lockup' 
springled in.  This lasts for a few minutes during which I can not ssh 
into the box.  The allocation failures are associated with a variety of 
processes including snmpd and sh.

I'm posting here because the problem only seems to occur on boxes where 
I am running keepalived.  However, I'm unsure if it is a keepalived 
'bug', the kernel, or something else.  Pointers in the right direction 
would be appreciated.


Versions:
  * Centos6
  * keepalived: 1.2.13
  * kernel: 2.6.32-504.1.3.el6.x86_64

This isn't the latest kernel at this moment, but we have upgraded the 
kernel and keepalived in the past without success.

Example:
snmpd: page allocation failure. order:0, mode:0x20
Pid: 1556, comm: snmpd Not tainted 2.6.32-504.1.3.el6.x86_64 #1
Call Trace:
  <IRQ>  [<ffffffff8113438a>] ? __alloc_pages_nodemask+0x74a/0x8d0
  [<ffffffff81497098>] ? ip_local_deliver+0x98/0xa0
  [<ffffffff8116c69a>] ? alloc_pages_current+0xaa/0x110
  [<ffffffffa018a063>] ? igb_alloc_rx_buffers+0xe3/0x1b0 [igb]
  [<ffffffff814606b0>] ? napi_skb_finish+0x50/0x70
  [<ffffffffa018cb36>] ? igb_poll+0x726/0x1010 [igb]
  [<ffffffffa018cf56>] ? igb_poll+0xb46/0x1010 [igb]
  [<ffffffff814b59e0>] ? tcp_delack_timer+0x0/0x270
  [<ffffffff814b3b19>] ? tcp_send_ack+0xd9/0x120
  [<ffffffff814620a3>] ? net_rx_action+0x103/0x2f0
  [<ffffffff8107d8b1>] ? __do_softirq+0xc1/0x1e0
  [<ffffffff810eaa90>] ? handle_IRQ_event+0x60/0x170
  [<ffffffff8107d90f>] ? __do_softirq+0x11f/0x1e0
  [<ffffffff8100c30c>] ? call_softirq+0x1c/0x30
  [<ffffffff8100fc15>] ? do_softirq+0x65/0xa0
  [<ffffffff8107d765>] ? irq_exit+0x85/0x90
  [<ffffffff81533b65>] ? do_IRQ+0x75/0xf0
  [<ffffffff8100b9d3>] ? ret_from_intr+0x0/0x11
  <EOI>  [<ffffffff8152ce8e>] ? _spin_lock+0x1e/0x30
  [<ffffffff8128c1e5>] ? _atomic_dec_and_lock+0x55/0x80
  [<ffffffff811a995a>] ? dput+0x9a/0x150
  [<ffffffff8118f969>] ? __fput+0x189/0x210
  [<ffffffff8118fa15>] ? fput+0x25/0x30
  [<ffffffff8118ac6d>] ? filp_close+0x5d/0x90
  [<ffffffff8118ad45>] ? sys_close+0xa5/0x100
  [<ffffffff8100b072>] ? system_call_fastpath+0x16/0x1b
snmpd: page allocation failure. order:0, mode:0x20
Pid: 1556, comm: snmpd Not tainted 2.6.32-504.1.3.el6.x86_64 #1
Call Trace:
  <IRQ>  [<ffffffff8113438a>] ? __alloc_pages_nodemask+0x74a/0x8d0
  [<ffffffffa0192076>] ? igb_xmit_frame+0x56/0xc0 [igb]
  [<ffffffff81173332>] ? kmem_getpages+0x62/0x170
  [<ffffffff81173f4a>] ? fallback_alloc+0x1ba/0x270
  [<ffffffff8117399f>] ? cache_grow+0x2cf/0x320
  [<ffffffff81173cc9>] ? ____cache_alloc_node+0x99/0x160
sh: page allocation failure. order:0, mode:0x20
Pid: 30722, comm: sh Not tainted 2.6.32-504.1.3.el6.x86_64 #1
Call Trace:

BUG: soft lockup - CPU#2 stuck for 67s! [haproxy:2047]

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.