Clean your ipc segment keys (with ipcrm) or choose another rootname.
This probleme will be solve in a future version.
--
___________________________________________________________________________
O l i v i e r P o i t r e y
----- Original Message -----
From: "Alberto Canzi" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, July 05, 2001 4:51 PM
Subject: Problems with Apache::SharedMem
> Hi I've tried to use Apache::SharedMem to share memory between
> subsequent requests' handlers, but I got this error messages:
>
>
>
> ***********
>
> [Thu Jul 5 16:46:53 2001] [error] Apache::SharedMem object
> initialization: Unable to initialize root ipc shared memory segment:
> File exists at /usr/lib/perl5/site_perl/5.005/Apache/SharedMem.pm line
> 690
>
> Apache::SharedMem::_init_root('Apache::SharedMem=HASH(0x85b8794)')
> called at /usr/lib/perl5/site_perl/5.005/Apache/SharedMem.pm line 707
>
> Apache::SharedMem::_init_namespace('Apache::SharedMem=HASH(0x85b8794)')
> called at /usr/lib/perl5/site_perl/5.005/Apache/SharedMem.pm line 142
> Apache::SharedMem::new('Apache::SharedMem') called at
> /usr/local/apache.max//Apache/O4AuthTool.pm line 65
>
> Apache::O4AuthTool::setGVar('Apache::O4AuthTool=HASH(0x85499d8)',
> 'PIPPO', '/') called at
> /usr/local/apache.max//Apache/O4AuthletHandler.pm line 39
> Apache::O4AuthletHandler::handler('Apache=SCALAR(0x85b86ec)')
> called at /dev/null line 0
> eval {...} called at /dev/null line 0
>
> *************
>
> What does it mean "File Exists" ?? Which file ???
>
> The source code is :
>
> *****************
>
> sub getGVar {
> my($self,$varname) = @_;
>
> # my $share = new Apache::SharedMem(debug=>0, ipc_mode => '0777');
> my $share = new Apache::SharedMem();
>
>
> # ...in another process
> my $var;
> # die("can't get key: ", $self->error) unless($share->status eq
> SUCCESS);
>
> # $share->delete(key);
>
> # $share->clear if($share->size > $max_size);
>
> my $lock_timeout = 40; # seconds
> if($share->lock(LOCK_EX, $lock_timeout))
> {
> # $var = $share->get($varname, WAIT, 40);
> $var = $share->get("PIPPO", NOWAIT);
> my $st = $share->status;
> logga($self,"status = $st");
> if(!($share->status eq SUCCESS)){
> my $err= $share->error;
> logga($self,"FALLITA LA getGVar ($err)");
> $share->unlock;
> $share->release;
> return undef;
> }
> }else {
> logga($self,"fallita la lock...");
> }
> $share->unlock;
> $share->release;
> return $var;
> }
>
> sub setGVar {
> my($self,$varname, $varval) = @_;
>
> # my $share = new Apache::SharedMem( rootname => 'STRONZO', namespace
> => 'PD', debug=>1, ipc_mode => '0777');
> my $share = new Apache::SharedMem();
> my $ret = 0;
>
> # $share->set(key=>'some data');
>
> # ...in another process
> # my $var = $share->get(key, NOWAIT);
> # die("can't get key: ", $self->error) unless($share->status eq
> SUCCESS);
>
> # $share->delete(key);
>
> # $share->clear if($share->size > $max_size);
>
> my $lock_timeout = 40; # seconds
> if($share->lock(LOCK_EX, $lock_timeout))
> {
> # $share->set($varname => $varval);
> $share->set("PUPPO" => $varval);
> if($share->status eq FAILURE){
> my $err= $share->error;
> logga($self,"FALLITA LA setGVar $err");
> }
> if($share->status eq SUCCESS){
> my $err= $share->error;
> logga($self,"SUCCESSO LA setGVar $err");
> $ret = 1;
> }
> $share->unlock;
> }
> $share->release;
> return $ret;
> }
>
> *****************
>
> I get errors when I call setGVar().
> Could someone help me?
>
> Many Thanks,
> Alberto
>
> --
> Alberto Canzi
> OpenFor s.r.l.
> e-mail: [EMAIL PROTECTED]
>
>