[ic] Re: Standard catalog Customer Entrance or Admin Interface = "Interchange not available"

New ICuser helpinghand at gmail.com
Fri Feb 29 08:52:58 EST 2008


Peter wrote:
> That message means that the link script (vlink) can't connect to the
> socket file for the active Interchange server.  Common reasons for this
> include:
>
> * Interchange server is not running.

I know the server is running; ps -ef | grep interch returns

interch  32063     1  0 17:21 ?        00:00:00 interchange
interch  32068 28937  0 17:21 ?        00:00:00 /var/www/cgi-bin/standard
root     32096 31677  0 17:23 pts/3    00:00:00 grep interch

while my browser is "spinning" attempting to get to the cgi-bin/standard
link, and

interch  32063     1  0 17:21 ?        00:00:00 interchange
root     32166 31677  0 17:39 pts/3    00:00:00 grep interch

after it gives up and returns the "no response" message

   "We're sorry, the Interchange server is unavailable...
    We are out of service or may be experiencing high system demand.
    Please try again soon."

Peter wrote:
> * vlink script has incorrect location for socket file.

By "vlink script" I assume you mean the vlink.pl file which actually
returns the "no response" message to the browser.

In /usr/local/interchange/src, I have:

-rwxr-xr-x  1 interch interch  7264 Feb 25 14:27 vlink
-rw-r--r--  1 interch interch 11025 Feb 24 02:09 vlink.c
-rw-r--r--  1 interch interch  3814 Feb 25 14:27 vlink.pl
-rwxr-xr-x  1 interch interch  7264 Feb 25 14:27
vlink._usr_local_interchange_etc_socket

In vlink.pl, I find:

my $LINK_FILE    = '/usr/local/interchange/etc/socket';
#my $LINK_FILE    = '~_~LINK_FILE~_~';
my $LINK_TIMEOUT = 30;

In /usr/local/interchange/etc, I have:

srw-rw-rw-  1 interch interch       0 Feb 28 17:21 socket

I don't know enough about "sockets" to know if the 0 size is a
problem here, or if this is just a "placeholder" for something,
and thus needs to occupy no space here.

Peter wrote:
> * vlink script does not have permission to connect to the socket file.

I've gone through and issued blanket "chown" commands for several
directories, as the installation and makecat was run under "root",
so root was the owner of most of these things previously.  I'm
assuming that since "interch" is the userid I'm running the server
with, that should be the owner of things which need to be accessed
as well.  This doesn't seem to have made any difference in the
symptom so far, but maybe I've missed something.

Peter wrote:
> Of all of these the third is probably the most common.  See:
> http://www.icdevgroup.org/interchange-doc-5.2.0/frames/icfaq_6.html
>
> For more info about this problem and possible solutions.

Thanks for the link.  It mentions some things you've already
suggested, and continues:

> If you are running Interchange on a single machine, it is probably one of:
>
>   1. Permissions problems
>   2. Interchange on NFS-mounted file system
>
> Check the error_log file for your HTTP server -- it will almost always
> tell you what the problem is, unless there is a simple permissions problem.

I look in /var/log/httpd/error_log, but there is nothing there that seems
related to Interchange - mostly half a dozen "File does not exist" messages
for bogus webpages or favicon.ico.

The link continues:
> Permissions are easy. If starting Interchange like this works:
>
>        interchange -r SocketPerms=666

It doesn't seem to work for me.  Interestingly, when I add this to my
start command, the Interchange error.log file responds with this alert:

 ALERT: /usr/local/interchange/etc/socket socket permissions are insecure;
 are you sure you want permissions 1232?

This isn't a hex/decimal conversion thing; x'666' =  1638, and 1232 = x'4D0'.
Not sure what's going on here, but it doesn't resolve the problem.

The link continues:
> If neither of those work, either the UID the program is owned by is wrong,
> or your HTTP server is interfering in some fashion.

As noted above, vlink is (now) owned by interch; if that's not correct,
I'm open to suggestions.

The link continues:
> If you are running Interchange on an NFS-mounted file system, it cannot run
> in server mode because UNIX-domain sockets don't work on NFS. You will need
> to change to static mode from server mode, or better yet, put Interchange on
> a file system that is directly mounted.

I'm not sure what an NFS-mounted file system is, but if it's something fancy,
I don't think I'm running one.  I just did a standard Fedora installation from
a single disk, on an old PC.  The hard drive had formerly been formatted for
NTFS, but I don't think that's related.

Curt Huage wrote:
> I have seen a similar problem which was resolved by adding this in
> interchange.cfg:
>
> AutoVariable Windows LockType
> SocketPerms 0666

When I do this, the "Alert" message in error.log warns me about it:

 ALERT: /usr/local/interchange/etc/socket socket permissions are insecure;
 are you sure you want permissions 666?

I don't see this message any place I can actually respond to it, so I assume
it doesn't require a "YES" from me to go ahead and run with those permissions.
It doesn't affect the symptom.

Curt Huage continued:
> I have also seen a similar problem when Interchange can find the cgi-bin,
> but your catalog can't. Check your variables.txt in CATROOT/products to be
> sure your cgi-bin path is correct.

I'm attempting to install and run the "standard" catalog, so I look in

/usr/local/interchange/standard/products/variable.txt

where I find the following entries with "CGI":

CGIWRAP __MVC_CGIWRAP__ Admin Control
CGI_DIR __MVC_CGIDIR__  Admin Control
CGI_URL __MVC_CGIURL__  Directories and Paths

I have no idea how or when these variables are resolved.  I also notice
that both /standard and /products are still owned by "root", so I'll change
that (to "interch" and try again after posting this.  Would it be easier to
start over, and install Interchange from the interch userid?  If so, can I
just install over the top of the existing installation, or will the existing
"root" ownership prevent that?  Sorry about the "newbie" questions, but I'm
really trying to learn.

Gert wrote:
> Are you using SElinux? If so, switch it off.

I don't know what SElinux is, or how to check if I'm using it.  As I say,
this is a vanilla Fedora 5 install, so if it's something that needs to be
explicitly requested, it's unlikely that I'm running it.

I appreciate everyone's help, and I've made an effort to work through
every suggestion, but the problem persists.  Maybe it's that zero-size
socket, and someone will know how to fix that, or the information I've
provided will suggest another cause of the problem.  If anyone can
suggest additional diagnostics (I know a bit of Perl, even though I'm
kind of clueless about some of these Linux things, and wouldn't mind
changing the vlink.pl program), or some additional reading on sockets
and how they're set up for Interchange, I'd be grateful.  Thanks again.


More information about the interchange-users mailing list