Bug 877789 - ypbind does not consider any network interfaces outside of ones reported by a running NetworkManager.
Summary: ypbind does not consider any network interfaces outside of ones reported by a...
Keywords:
Status: CLOSED DUPLICATE of bug 827267
Alias: None
Product: Fedora
Classification: Fedora
Component: ypbind
Version: 18
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Honza Horak
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-11-18 20:20 UTC by Eugene Kanter
Modified: 2012-11-19 16:15 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-11-19 12:16:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Eugene Kanter 2012-11-18 20:20:01 UTC
Description of problem:
ypbind refuses to function if NetworkManager is running with no connection configured despite the fact that there are other active network connections available.

Version-Release number of selected component (if applicable):

ypbind-1.36-7.fc18.x86_64

How reproducible:
always

Steps to Reproduce:
1. configure system to use NIS and verify its operation by observing
ypcat passwd
output.
2. get the name of current network interface as reported by ifconfig, for example p118p1 and its MAC address, for example 44:5f:f4:36:77:55
3. manually create /etc/sysconfig/network-scripts/ifcfg-p118p1 with the following contents. Be advised that upon saving the file NetworkManager will stop the device immediately.

DEVICE=p118p1
TYPE=Ethernet
HWADDR=44:5f:f4:36:77:55
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no

3. enable legacy network service:

chkconfig network on

4. reboot
  
Actual results:

ypcat passwd reports that ypbind is not bound.

Expected results:

ypcat passwd returns map content.

Additional info:

ypbind -d

explains that ypbind does not consider any network interfaces
outside of ones reported by a running NetworkManager.

Workarond:

systemctl disable NetworkManager.service

Comment 1 Honza Horak 2012-11-19 12:16:18 UTC
Unfortunately, this is how it is supposed to work at least in the current implementation. There is also a similar bug #827267:
https://bugzilla.redhat.com/show_bug.cgi?id=827267#c3

Basically, as soon as NetworkManager is running, ypbind will work only with connections controlled by NetworkManager, which means it will wait for DBus message in a "standby" mode until a new connection is ready. However, you can specify "-no-dbus" option to avoid that behaviour and forbid ypbind to wait on DBus. You can do it by creating a new file at /etc/systemd/system/ypbind.service with the following content:

[Service]
ExecStart=/usr/sbin/ypbind -n -no-dbus $OTHER_YPBIND_OPTS

And then reload systemd daemon:
# systemctl daemon-reload

Using "-no-dbus" option ypbind won't try retrieve info about connections and will rely on environment to have some connection ready (no matter what is used for connections management).

Since ypbind seems to work as expected, I'm closing this for now. If you think we can do more about that, feel free to re-open the bug.

Comment 2 Honza Horak 2012-11-19 13:39:31 UTC

*** This bug has been marked as a duplicate of bug 827267 ***

Comment 3 Honza Horak 2012-11-19 16:15:48 UTC
Hm, I've realized we cannot use .include directive + ExecStart with different arguments, because systemd reports an error, that ExecStart is defined twice. I've reported it as systemd bug #878088. Until this is fixed in systemd (if ever) you have two options:

1) copy the whole service file from /lib/systemd/system/ypbind.service to /etc/systemd/system/ypbind.service and add the argument -no-dbus there. However, this would re-define all further changes made in /lib/systemd/system/ypbind.service in the future.

2) add -no-dbus option to /etc/sysconfig/ypbind:
OTHER_YPBIND_OPTS="-no-dbus"


Note You need to log in before you can comment on or make changes to this bug.