Bug 99461
Summary: | recvfrom SYSCALL infinite loop/deadlock chewing 100% CPU [was __libc_recv (fd=fd@entry=300, buf=buf@entry=0x7f6042880600, n=n@entry=5, flags=-1, flags@entry=258) at ../sysdeps/unix/sysv/linux/x86_64/recv.c:33] | ||
---|---|---|---|
Product: | Networking | Reporter: | Dan Searle (dan) |
Component: | Other | Assignee: | Stephen Hemminger (stephen) |
Status: | NEW --- | ||
Severity: | high | CC: | hannes, sd, szg00000 |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 3.13.0 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Dan Searle
2015-06-05 12:39:38 UTC
We track this here: https://bugzilla.redhat.com/show_bug.cgi?id=1205258 Thanks! Is there any way to work around this issue? I guess we could try to rework the user space code so that it does not call recv() with both MSG_WAITALL and MSG_PEEK, not ideal but waiting for a fix in the kernel might not be an option as it's effecting our business. I have worked around the issue in user space for now by not using MSG_WAITALL (while still using MSG_PEEK) with an outer loop around recv() with a sleep() and a counter to retry the recv() call a set number of times before timing out. Is there anyone working on a fix for this bug? Is there any way a fix can be expedited? This bug is now fixed in the net tree: https://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit/?id=dfbafc995304ebb9a9b03f65083e6e9cea143b20 Many thanks! |