Skip to content

The context stopped responding, potentially due to a fatal error or calling exit #77

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
parsibox opened this issue Apr 21, 2025 · 0 comments

Comments

@parsibox
Copy link

hi i get error at end of consept return
i use php82 on centos 7 64 bit

error:

Sleeping for 3 seconds...
13:54:18 :  ssss
13:54:19 :  ssss
13:54:20 :  ssss
13:54:21 : Child 68061cd1d3ecd status: Data sent from child.
Sleeping for 2 seconds...
13:54:21 :  ssss
13:54:22 :  ssss
13:54:23 : 68061cd1d3ecd Failed to start process The context stopped responding, potentially due to a fatal error or calling exit#0 /var/www/html/cron/Amphp/send.php(86): Amp\Parallel\Context\Internal\AbstractContext->receive()
#1 /var/www/html/php8/vendor/amphp/amp/src/functions.php(33): {closure}()
#2 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(430): Amp\{closure}()
#3 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(567): Revolt\EventLoop\Internal\AbstractDriver->invokeMicrotasks()
#4 [internal function]: Revolt\EventLoop\Internal\AbstractDriver->Revolt\EventLoop\Internal\{closure}()
#5 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/DriverSuspension.php(64): Fiber->resume()
#6 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(430): Revolt\EventLoop\Internal\DriverSuspension::Revolt\EventLoop\Internal\{closure}()
#7 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(621): Revolt\EventLoop\Internal\AbstractDriver->invokeMicrotasks()
#8 [internal function]: Revolt\EventLoop\Internal\AbstractDriver->Revolt\EventLoop\Internal\{closure}()
#9 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(502): Fiber->resume()
#10 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(558): Revolt\EventLoop\Internal\AbstractDriver->invokeCallbacks()
#11 [internal function]: Revolt\EventLoop\Internal\AbstractDriver->Revolt\EventLoop\Internal\{closure}()
#12 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(96): Fiber->start()
#13 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php(116): Revolt\EventLoop\Internal\AbstractDriver->Revolt\EventLoop\Internal\{closure}()
#14 /var/www/html/php8/vendor/revolt/event-loop/src/EventLoop.php(406): Revolt\EventLoop\Internal\AbstractDriver->run()
#15 /var/www/html/cron/Amphp/send.php(108): Revolt\EventLoop::run()
#16 {main}
sh: line 1: 90490 Killed                  ( '/opt/remi/php82/root/usr/bin/php' '-dhtml_errors=0' '-ddisplay_errors=0' '-dlog_errors=1' '/var/www/html/php8/vendor/amphp/parallel/src/Context/Internal/process-runner.php' 'unix:///tmp/amp-parallel-ipc-349827f13e06dcb4505b.sock' '64' '5' '/var/www/html/cron/Amphp/child/sms_send_select.php' ) 0<&3 3>&- 3> /dev/null

 php82 -v
PHP 8.2.20 (cli) (built: Jun  4 2024 13:22:51) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies

<?php

ignore_user_abort(true);
@set_time_limit(0);
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('memory_limit', '-1');
@session_write_close();
gc_enable();

define('base_dir_include', '../../');


require base_dir_include . 'php8/vendor/autoload.php';


use Revolt\EventLoop;
use function Amp\async;
use function Amp\Future\await;
use Amp\Process\Process;
use function Amp\delay;


function PrintLog($obj)
{
    if (is_string($obj)) {
        print date('H:i:s') . ' : ' . $obj . PHP_EOL;
    } else {
        print date('H:i:s') . ' : ' . var_export($obj, true) . PHP_EOL;
    }
}
$my_operator=11;
$number_send_info = 12
$number_send_info['provider']='mci';
$halghe_i=0;
$my_note_arr[0]=array('سلام');
$my_sender_number_arr[0]=array('1040');
$my_number_arr[0]=array('+989111677411');
$my_flash_arr[0]=array(0);
$my_id_arr[0]=array(1);
$sumOfLong=1;
$pm_pid = uniqid();
$args = array(
    'pm_pid' => $pm_pid
, 'my_note_arr' => $my_note_arr[$halghe_i]
, 'my_sender_number_arr' => $my_sender_number_arr[$halghe_i]
, 'my_number_arr' => $my_number_arr[$halghe_i]
, 'number_send_info' => $number_send_info
, 'my_flash_arr' => $my_flash_arr[$halghe_i]
, 'my_id_arr' => $my_id_arr[$halghe_i]
, 'sumOfLong' => $sumOfLong
    // , 'my_long_arr' => $my_long_arr[$halghe_i]

);

++$halghe_i;
EventLoop::repeat(1, function () use ($atomicRate) {
    PrintLog(' ssss');
});
$fu=Amp\async(function () use ($args , $pm_pid) {
    try {
        PrintLog('add ' . $pm_pid);

        //  $contextFactory = new Amp\Parallel\Context\ProcessContextFactory();
        //   $context = $contextFactory->start(__DIR__ . '/../child/sms_send_select.php');


       $context = Amp\Parallel\Context\contextFactory()->start(__DIR__ . '/child/sms_send_select.php');
        $context->send($args);

        while (!$context->isClosed()) {
            $message = $context->receive(); // Receive message from child
            PrintLog("Child " . $pm_pid . " status: {$message}");

            if ($message == 'finished') {
                break;
            } elseif ($message == 'updating_db') {
                break;
            }
        }

        $returnValue = $context->join();
        PrintLog($pm_pid . " processes exited with " . $returnValue);
        unset($context);

    } catch (Amp\Parallel\Context\ContextException $e) {
        
        PrintLog($pm_pid . " Failed to start process " . $e->getMessage(). $e->getTraceAsString());
    }
});

PrintLog("before run loop");
try{
    Revolt\EventLoop::run();
} catch (Throwable $e) {
    PrintLog("Unhandled exception in EventLoop: " . $e->getMessage());
    PrintLog("File: " . $e->getFile() . ' on line ' . $e->getLine());
    PrintLog("Trace: " . $e->getTraceAsString());
}

?>

sms_send_select.php:

<?php

// The function returned by this script is run by context.php in a separate process or thread.
// $argc and $argv are available in this process as any other cli PHP script.

use Amp\Sync\Channel;

return function (Channel $channel): int {
    printf("Received the following from parent: %s\n", var_export($channel->receive() , true ));

    print "Sleeping for 3 seconds...\n";
    sleep(3); // Blocking call in process.

    $channel->send("Data sent from child.");

    print "Sleeping for 2 seconds...\n";
    sleep(2); // Blocking call in process.
    
    return 42;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant