ENOBUFS in nfq under heavy load

Stanisław Pitucha viraptor at gmail.com
Tue Jul 17 17:46:16 CEST 2007

After running nf_queue app under heavy load I get ENOBUFS error. Ok -
maybe not that heavy - around 100 concurrent voip calls - lots of
small udp packets. Nfq socket suddenly hangs. recv() from nfnl_fd()
socket returns -1, errno=ENOBUFS and when I try to destroy the queue
it stops:
stacktrace with gdb breaking...

#0  0xb7f38410 in __kernel_vsyscall ()
#1  0x4d23d0e1 in recvmsg () from /lib/libc.so.6
#2  0xb7f3185b in nfnl_talk (nfnlh=0x8061080, n=0xbfc9b5ec, peer=0,
groups=0, answer=0x0, junk=0, jarg=0x0)
    at ../../libnfnetlink-0.0.25/src/libnfnetlink.c:659
#3  0xb7f35055 in __build_send_cfg_msg (h=0x80611c0, command=<value
optimized out>, queuenum=<value optimized out>, pf=0)
    at ../../libnetfilter_queue-0.0.13/src/libnetfilter_queue.c:112
#4  0xb7f3511f in nfq_destroy_queue (qh=0x80611f8) at
#5  0x08049293 in main () at main.cc:287

Any idea how to avoid / fix it? Is the problem on my side?
My bufsize is 65535 for reading from nfq socket.


More information about the netfilter-devel mailing list