Bug 1285091

Summary: xinetd attempts to bind to IPv6 sockets even on systems with IPv6 disabled
Product: Red Hat Enterprise Linux 6 Reporter: Karl Hastings <kasmith>
Component: xinetdAssignee: Jan Synacek <jsynacek>
Status: CLOSED ERRATA QA Contact: Robin Hack <rhack>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.7CC: psklenar, rhack
Target Milestone: rcKeywords: EasyFix, Patch
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-10 21:42:13 UTC Type: Bug
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: 1270825    
Attachments:
Description Flags
patch none

Description Karl Hastings 2015-11-24 21:15:28 UTC
Description of problem:
xinetd attempts to open sockets with PF_INET6 by default, even on systems with IPv6 module disabled ('options ipv6 disabled=1' in /etc/modprobe.d/*)

This causes xinetd to kill long running clients with xinetd is reloaded because xinetd appears to believe the config has changed for the service.

Version-Release number of selected component (if applicable):
xinetd-2.3.14-39.el6_4.x86_64

How reproducible:
100%

Steps to Reproduce:
1. enable telnet, or some other connection service in xinetd
2. disable IPv6 (blacklist the module, or options ipv6 disabled=1)
3. reboot
4. telnet (or connect to enabled service)
5. send SIGHUP (or 'service xinetd reload')


Actual results:
telnet connection is dropped because the telnet process receives SIGKILL

Expected results:
telnet connection stays up because telnet config didn't change

Additional info:
IPv6 by default was added in https://bugzilla.redhat.com/show_bug.cgi?id=195265

It looks like now if IPv6 is disabled xinetd gets confused thinking the running config doesn't match the defined service and will always send a SIGKILL (would send SIGTERM if the service were type = INTERNAL).  This is not desired behavior as the telnet (or whatever defined service) configuration has not changed.

Clarification was added to the man pages via: https://bugzilla.redhat.com/show_bug.cgi?id=1075152  but that misses the point.  The work-around would be to set 'flags = IPv4' to the service or 'bind = 0.0.0.0' to the main xinetd.conf   (as documented on our portal: https://access.redhat.com/solutions/706163 )  Maybe that should be added to the man page, as it is more relevant...

However customer feels that xinetd should handle this situation gracefully

Comment 4 Jan Synacek 2015-12-01 15:04:01 UTC
Created attachment 1100938 [details]
patch

Comment 15 errata-xmlrpc 2016-05-10 21:42:13 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0851.html