Bug 115287
Summary: | Log in takes approximately 5.5 minutes and system is not usable | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | John Frohlich <john_frohlich> |
Component: | kernel | Assignee: | Dave Jones <davej> |
Status: | CLOSED WONTFIX | QA Contact: | Brian Brock <bbrock> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 1 | CC: | barryn, john_frohlich, pfrields |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i686 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2004-12-07 06:13:33 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: |
Description
John Frohlich
2004-02-10 08:43:12 UTC
What's your /etc/sysconfig/network-scripts/ifcfg-eth0 look like? /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet What's your /etc/hosts look like? /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost What does /etc/sysconfig/network look like? /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomain In /sbin/dhclient-script (line #184) if [ -n "$new_host_name" ] && need_hostname; then hostname $new_host_name fi I found the call "hostname $new_host_name" corrupting the hostname after calling the function "need_hostname" in /etc/sysconfig/network-scripts/network-functions (line #193): need_hostname () { CHECK_HOSTNAME=`hostname` if [ "$CHECK_HOSTNAME" = "(none)" -o \ "$CHECK_HOSTNAME" = "localhost" -o \ "$CHECK_HOSTNAME" = "localhost.localdomain" ]; then return 0 else return 1 fi } Here is the output in /var/log/messages with the option set -x in /sbin/dhclient-script: + need_hostname ++ hostname + CHECK_HOSTNAME=localhost.localdomain + '[' localhost.localdomain = '(none)' -o localhost.localdomain = localhost -o localhost.localdomain = localhost.localdomain ']' + return 0 + hostname x1-6-00-10-a4-7d-cd-b3 What's your /etc/resolv.conf look like? more /etc/resolv.conf ; generated by /sbin/dhclient-script search comcast.net nameserver 204.127.199.8 nameserver 63.240.76.198 Presumably, 'host x1-6-00-10-a4-7d-cd-b3.comcast.net' does not return your IP address? What happens if you set the hostname to something other than localhost.localdomain in /etc/sysconfig/network, and add that to the end of the "127.0.0.1 ..." line in /etc/hosts? # host x1-6-00-10-a4-7d-cd-b3.comcast.net Host x1-6-00-10-a4-7d-cd-b3.comcast.net not found: 3(NXDOMAIN) 00:10:a4:7d:cd:b3 is my MAC address # more /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux 127.0.0.1 # /etc/init.d/network restart /etc/init.d/network: line 3: 127.0.0.1: command not found /etc/init.d/network: line 3: 127.0.0.1: command not found Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] /etc/init.d/network: line 3: 127.0.0.1: command not found Setting network parameters: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [FAILED] Restored /etc/sysconfig/network and # /etc/init.d/network restart failed again. The following commands started eth0 again: # hostname localhost.localdomain # cardctl eject # cardctl insert I missed the dots in /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux 127.0.0.1 ... # /etc/init.d/network restart /etc/init.d/network: line 3: 127.0.0.1: command not found /etc/init.d/network: line 3: 127.0.0.1: command not found Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] /etc/init.d/network: line 3: 127.0.0.1: command not found Setting network parameters: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] eth0 is up! Eek, sorry, i wasn't clear. In this case, you want: /etc/sysconfig/network to be: NETWORKING=yes HOSTNAME=linux and /etc/hosts to be: # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost linux This should alleviate the delay and the gnome warning. /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux /etc/hosts 127.0.0.1 localhost.localdomain localhost linux # /etc/init.d/network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Setting network parameters: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [FAILED] So, after this, just 'ifup eth0' fails as well? /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux /etc/hosts 127.0.0.1 localhost.localdomain localhost linux First test: # hostname linux # ifup eth0 Determining IP information for eth0... done. # hostname linux # ping yahoo.com <-- ok # mozilla <-- hangs and times out # hostname localhost.localdomain # ping yahoo.com <-- ok # mozilla <-- ok Second test: # hostname localhost.localdomain # ifup eth0 Determining IP information for eth0... done. # hostname x1-6-00-10-a4-7d-cd-b3 # ping yahoo.com <-- ok # mozilla <-- hangs and times out # hostname localhost.localdomain # ping yahoo.com <-- ok # mozilla <-- ok Hm, your best bet is probably to just hardcode need_hostname to return '1', and remove the HOSTNAME=linux hack. In /sbin/dhclient-script I hardcoded need_hostname to return '1'. This solved the slow Start up and Log in process, however eth0 is still down and Start service eth0 is reporting the error message: Bringing up interface eth0: xircom_cb device eth0 does not seem to be present, delaying initialization. [FAILED] I was looking at the trace from /sbin/dhclient-script again, to find where new_host_name is set to "x1-6-00-10-a4-7d-cd-b3", however it looks like new_host_name is a uninitialized variable pointing to an arbitrary string "x1-6-00-10-a4-7d-cd-b3". In /sbin/dhclient-script: if [ -n "$new_host_name" ] && need_hostname; then hostname $new_host_name fi + '[' -n x1-6-00-10-a4-7d-cd-b3 ']' + need_hostname ++ hostname + CHECK_HOSTNAME=localhost.localdomain + '[' localhost.localdomain = '(none)' -o localhost.localdomain = localhost -o localhost.localdomain = localhost.localdomain ']' + return 0 + hostname x1-6-00-10-a4-7d-cd-b3 The x1-.... is being returned by your ISP/cable modem. So, you need to run 'cardctl eject ; cardctl insert' for it to see the card? Yes 'cardctl eject ; cardctl insert' is needed as workaround. OK, so there are two problems here. 1) The hostname you're getting via DHCP is invalid; this is worked around by the editing of the need_hostname function. 2) Your card requires 'cardctl eject ; cardctl insert' to function, that's a kernel or PCMCIA bug. Assigning there. still a problem with fc3 ? fc1 - eol |