Overview
========
There are times, especially when a Network Server is being set up, modified or configured, that the Common Desktop Environment (CDE) can get hung, or will slow down to the point where it is unusable.
Indications of this include:
- taking a very long time to log in or log off,
- applications not responding or not launching from the main panel,
- and dterm or smit sessions not starting.
Errors Caused by Changes to TCP/IP
----------------------------------
Most of these symptoms are caused by changes, or errors in TCP/IP networking software, setup, or configuration. CDE is an X based application, and is particularly sensitive to changes or errors in the networking environment, including loss of network connection, an invalid or duplicate host name, setting up TCP/IP with the wrong network address, subnet mask, default router address, or incorrect DNS server. Any of these can keep CDE from starting, or, if the changes are made while CDE is running, can immediately "stall" the entire application.
These problems can be most easily avoided by making sure that all TCP/IP setup is correctly and permanently configured before starting CDE for the first time. Install_assist has numerous options for system configuration, including network configuration. It is best to take the time and do all system configuration up front. If you have started using the system, choose "Command Line" or "Fail Safe" (a simple motif interface) login options rather than the default, which will launch CDE, until the system has reached it's final configuration and is stable. Remember, system configuration through smitty is always available in any environment.
If problems occur, the solution is to quit out of CDE, stop all networking services, correct the problem, and then restart networking, and finally CDE. If CDE is totally hung, it may still be possible to login over a serial terminal or through AppleTalk services. The following paragraphs describe various solutions, in increasing order of complexity.
Host Name Has Changed
=====================
The simplest error to fix is that the host name has changed since the parent process of CDE (dtlogin) was started. The X variable, DISPLAY, will therefore be out of sync. Logging out of CDE, or killing the parent dtlogin, then restarting CDE, should be sufficient. (Lines starting with '#' are the actual commands to enter.)
Step 1
------
# ps -ef |grep dtlogin
root 2990 1 0 Apr 02 - 0.00 /usr/dt/bin/dtlogin -daemon
root 3516 2990 0 Apr 02 - 0.00 dtlogin <:0> -daemon
Step 2
------
# kill 2990
(Note that the dtlogin session killed is the one whose parent ID is '1', or init. Do not use a kill -9!)
Step 3
------
Repeat step 1 above, but grep for 'dtsession' instead of 'dtlogin'; kill it as in step 2, substituting the appropriate Process ID. (The process ID is the next numeric field following the name of the process owner.)
Then restart dtlogin and CDE:
# /etc/rc.dt
Solving More Serious Problems
=============================
Step 1
------
Stop CDE, the parent dtlogin, and any remaining dtsessions as described above.
Step 2
------
# stopsrc -g nfs
(Stops nfs. Also stop other TCP/IP applications.)
Step 3
------
# ifconfig en0 down
(Brings down network interface.)
Step 4
------
# rmdev -l en0 -d
(Removes the network interface.)
If the entire CDE environment is potentially corrupted, you may need to do the following two steps. Otherwise, got to step 7.
Step 5
------
# mv /etc/dt /etc/dt.hold
(Removes all custom CDE components.)
Step 6
------
# mkdir /etc/dt
Step 7
------
At this point, using smit, completely reconfigure the networking interface and TCP/IP from the beginning. When you are done make sure that /etc/hosts and /etc/resolv.conf hold the correct information, and have no duplicate entries.
Step 8
------
Restart the system. This starts all networking daemons and X applications correctly. Before rebooting, you may also briefly test CDE by running /etc/rc.dt. (It is possible to just continue working after starting CDE, but the restart gives the best possible opportunity to start all networking services correctly.)