[ic] Clustering Interchange

Frank fmueller at adva.de
Wed Feb 25 13:27:31 EST 2004



Mike Heins wrote:

> Quoting Frank (fmueller at adva.de):
> 
>>Hi List,
>>
>>we are running IC 4.99 on a 4 server cluster. We found we have a problem 
>>of customers losing sessions when they accessed us via Proxy servers.
>>So we started working on having the sessions just on one server, but we 
>>can't get it to run properly.
>>
>>When trying to share the session directory via NFS, 2 IC servers work 
>>fine, the other 2 give us a new session id for each access or hang up. 
> 
> 
> The usual cause for this is bad time on the server -- if they are off
> by a large number of minutes they will give a new session ID as if
> the session is expired.
> 

Thanks for the hint Mike, but the servers are within 1 sec in sync.

We tested further along the NFS path and found the following:
The working servers wrote both a <sessionname> and a <sessionname>.lock
file on the NFS filesystem. The bad server did write the 
<sessionname>.lock, but not the <sessionname> file. On the browser, the 
HTML page got stuck. After cancelling the page loading on the browser, 
we got "Died in server spawn: Could not fcntl_lock file: No locks 
available".
To test file locking as such, we ran the following test script on the 
bad server, which seemed to work and gave no error whatsoever:

#!/usr/bin/perl

use Fcntl qw(:flock);
use Symbol;

my $fh = gensym;
open $fh, "+>>/mymountpoint/locktest" or die $!;

# start critical section
flock $fh, LOCK_EX;
seek $fh, 0, 0;
my @add_lines =
   (
    qq{blah\n},

   );

my @lines = (@add_lines, <$fh>);
seek $fh, 0, 0;
truncate $fh, 0;
print $fh @lines;
close $fh; # close unlocks the file
# end critical section

Frank



More information about the interchange-users mailing list