MiniVend Akopia Services

[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date ][Minivend by thread ]

Re: MiniVend Crash on Digital Unix





have you tried recompiling perl with threads properly enabled?


                                                                  
 (Embedded                                                        
 image moved   "Bill" <bill@webteam.net>                          
 to file:      08/04/99 10:46 PM                                  
 pic08190.pcx)                                                    
                                                                  



Please respond to minivend-users@minivend.com

To:   minivend-users@minivend.com
cc:    (bcc: Scott Schenkein/MIS/Circuit City)
Subject:  MiniVend Crash on Digital Unix




******    message to minivend-users from "Bill" <bill@webteam.net>     ******

Hi all,

I've been working on the Digital Unix (4.0D) crashing problem.  I'm running
MV3.12 with Perl 5.00503.  I've narrowed crash to the lines 890 to 934 in
Server.pm (shown below).  If forking is turned off for this section of code,
MV runs fine.  But when it forks, this is were it hangs.  When I run 'ps'
from the command line, there is only one 'minivend' process running along
with how ever many requests to the catalog and always one defunct process.

I'll continue working on this one and let everyone know what I find.

Bill Rothbauer

if(defined $no_fork) {
    $Vend::NoFork = {};
    $::Instance = {};
    connection();
    undef $Vend::NoFork;
    undef $::Instance;
}
elsif(! defined ($pid = fork) ) {
    #    logGlobal ("Can't fork: $!");
    logGlobal( errmsg('Server.pm:9', "Can't fork: %s", $! ) );
    die ("Can't fork: $!");
}
elsif (! $pid) {
    #fork again
    unless ($pid = fork) {

        $::Instance = {};
        eval

        touch_pid() if $Global::PIDcheck;
        &$Sig_inc;
        connection();
        };
        if ($@) {
            my $msg = $@;
            logGlobal( errmsg('Server.pm:10', "Runtime error: %s" , $msg) );
            logError( errmsg('Server.pm:11', "Runtime error: %s" , $msg) )
       }

       undef $::Instance;
       select(undef,undef,undef,0.050) until getppid == 1;
       if ($Global::PIDcheck) {
           unlink_pid() and &$Sig_dec;
       }
       else {
           &$Sig_dec;
       }
       exit(0);
    }
    exit(0);
}
close Vend::Server::MESSAGE;
last SPAWN if $no_fork;
wait;
}


-
To unsubscribe from the list, DO NOT REPLY to this message.  Instead, send
email with 'UNSUBSCRIBE minivend-users' in the body to Majordomo@minivend.com.
Archive of past messages: http://www.minivend.com/minivend/minivend-list

pic08190.pcx


Search for: Match: Format: Sort by: