Bug 212321

Summary: [PATCH][RHEL4U4] Backported udp_poll() function (Fix the problem that select() returns in RHEL4 though select() must not return essentially when kernel receives broken UDP packet(s))
Product: Red Hat Enterprise Linux 4 Reporter: Masaki MAENO <maeno.masaki>
Component: kernelAssignee: Neil Horman <nhorman>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: high    
Version: 4.4CC: ddomingo, jbaron, kajtzu, nhorman, tao
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: RHSA-2008-0665 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-07-24 19:12:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 391231, 430698    
Attachments:
Description Flags
kernel-2.6.9-42.EL-udp_poll.patch - backported udp_poll() for fixing select() problem none

Description Masaki MAENO 2006-10-26 09:48:51 UTC
Description of problem:
Essentially, when kernel receives broken UDP packet(s), select() function must 
not return.
But, select() returns in any RHEL4 (RHEL4U0 - RHEL4U4).

We made udp_poll() backport patch for not returning even if kernel receives 
broken UDP packet.
This patch is for kernel-2.6.9-42.0.3.EL (and kernel-2.6.9-42.EL).

It was no problem for us though had verified with our business system.

Please take it by the following update! (=> RHEL4U5)


Version-Release number of selected component (if applicable):
RHEL4U4: kernel-2.6.9-42.0.3.EL (and kernel-2.6.9-42.EL)


How reproducible:
When select() observes incoming UDP packet by server, clinent sends broken UDP 
packet.
Then, select() returns normally by positive value.

Therefore, recvfrom() (= the functions that acquire packet) freezes until 
kernel receives next normal packet.


Actual results:
select() returns normally when receives broken UDP packet(s)


Expected results:
select() doesn't return when receives broken UDP packet(s)


Additional info:
- It was in the broken IP telephone terminal that sent a broken packet. 
- man 2 select
- http://www.kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-
bkcvs.git;a=summary (but git is down now)

Comment 1 Masaki MAENO 2006-10-26 09:48:51 UTC
Created attachment 139448 [details]
kernel-2.6.9-42.EL-udp_poll.patch - backported udp_poll() for fixing select() problem

Comment 2 Neil Horman 2006-11-07 21:40:59 UTC
*** Bug 212325 has been marked as a duplicate of this bug. ***

Comment 3 Masaki MAENO 2006-12-07 12:29:41 UTC
Please take it by RHEL4U5. ;-)


Comment 4 Jason Baron 2007-02-09 21:23:48 UTC
*** Bug 212819 has been marked as a duplicate of this bug. ***

Comment 5 RHEL Program Management 2007-05-09 09:06:00 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.

Comment 6 RHEL Program Management 2007-09-07 19:39:11 UTC
This request was previously evaluated by Red Hat Product Management
for inclusion in the current Red Hat Enterprise Linux release, but
Red Hat was unable to resolve it in time.  This request will be
reviewed for a future Red Hat Enterprise Linux release.

Comment 7 Kaj J. Niemi 2007-09-08 08:53:32 UTC
Seriously, the patch is quite trivial. I have it running on about 300 servers with maybe 40% of them 
exhibiting this issue before patching.

Comment 8 Masaki MAENO 2007-09-10 07:21:36 UTC
I also think that the patch is very safe.
So, I strongly hope that you will take it to RHEL4U6 because I encountered the
problem several times (about 0.01% ERR-count/UDP-packet) for breakdown of NIC board.



Comment 17 Vivek Goyal 2008-02-27 21:44:25 UTC
Committed in 68.14.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/

Comment 20 Don Domingo 2008-05-14 01:55:36 UTC
added to RHEL4.7 release notes under "Kernel-Related Updates":



<quote>


The udp_poll() function is now implemented. This update reduces the likelihood
of false positive returns from the system call select().
</quote>



please advise if any revisions are in order. thanks!

Comment 21 Don Domingo 2008-06-02 23:15:49 UTC
Hi,

the RHEL4.7 release notes deadline is on June 17, 2008 (Tuesday). they will
undergo a final proofread before being dropped to translation, at which point no
further additions or revisions will be entertained.

a mockup of the RHEL4.7 release notes can be viewed here:
http://intranet.corp.redhat.com/ic/intranet/RHEL4u7relnotesmockup.html

please use the aforementioned link to verify if your bugzilla is already in the
release notes (if it needs to be). each item in the release notes contains a
link to its original bug; as such, you can search through the release notes by
bug number.

Cheers,
Don

Comment 24 errata-xmlrpc 2008-07-24 19:12:01 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2008-0665.html