English

Problem: When an ArcSDE service on Red Hat Linux runs for about 10 to 14 days, a few connections may start to fail with Network I/O and XDR request errors

Description

When an ArcSDE service on Red Hat Linux runs for about 10 to 14 days, a few connections may start to fail with Network I/O and XDR request errors. See the following errors below:

Standard output connection error:

Code:
Error: Network I/O error (-10).
Error: Could not create a connection on server linuxserver, for user mp.

The $SDEHOME/etc/giomgr_<sde_service>.log file:

Code:
Tue Jun 18 04:04:48 2013 - SDE Server Pid 27909 Registered, User: MP, Schema: mp, Machine: linuxserver.
Tue Jun 18 04:04:48 2013 - ERROR (-1): Could Not Send XDR Result.

Cause

When an ArcSDE service starts, it creates several files in the /tmp directory. These files include <version>, the version of ArcSDE in use (ArcSDE 10.x, 9.x, etc.) and <instance>, the name of the ArcSDE service instance:

SDE_<version>_<instance>_iomgr_shared_semaphore
sde_client_to_server_FIFO_<instance>_0
sde_client_to_server_FIFO_<instance>_1
sde_server_to_client_FIFO_<instance>_0
sde_server_to_client_FIFO_<instance>_1
s.<instance>.iomgr


On the Red Hat Linux systems, there is a script called tmpwatch that deletes files in the /tmp directory if they are not accessed after a certain amount of time. The default amount of time is set to 240 hours or 10 days.:
Code:
cat /etc/cron.daily/tmpwatch

flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix
-x /tmp/.font-unix -x /tmp/.ICE-unix
-x /tmp/.Test-unix
-X '/tmp/hsperfdata_*' 240 /tmp
/usr/sbin/tmpwatch "$flags" 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 720 "$d"
fi
done


By default, this script is set to run daily in a cron job at 4:02 am:

Code:
cat /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root runparts /etc/cron.monthly


The newly created files are out-of-sync, resulting in intermittent connection errors.

Solution or Workaround

Note:
tmpwatch has an exclude user option:

Code:
-U, --exclude-user=user
Don't remove files owned by user, which can be an user name or numeric user ID.



Using a visual editor or another editor, update the tmpwatch script to exclude any files owned by the ArcSDE user when cleaning up the /tmp directory. This is how the file looks like after adding the exclude user option:

Code:
cat /etc/cron.daily/tmpwatch

flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix
-x /tmp/.font-unix -x /tmp/.ICE-unix
-x /tmp/.Test-unix
-X '/tmp/hsperfdata_*' -U sde 240 /tmp
/usr/sbin/tmpwatch "$flags" 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 720 "$d"
fi
done


See the tmpwatch page for more information.

    Related Information