imiphp / imi

imi 是一款支持长连接微服务分布式的 PHP 开发框架,它可以运行在 PHP-FPM、Swoole、Workerman、RoadRunner 等多种容器环境下。它支持 HttpApi、WebSocket、TCP、UDP、MQTT 服务的开发。特别适合互联网微服务、即时通讯聊天im、物联网等场景!QQ群:17916227
https://www.imiphp.com
Other
1.16k stars 170 forks source link

Swoole容器下启动框架时出现ErrorException: Swoole\Coroutine\System::waitSignal(): Unable to wait signal, async signal listener has been registered #704

Open Eno-CN opened 3 weeks ago

Eno-CN commented 3 weeks ago
[2024-06-14 12:51:56.477945] system INFO service-payment Server start  
[2024-06-14 12:51:56.517170] system INFO service-payment Manager start. pid: 25846  
[2024-06-14 12:51:57.755538] system INFO service-payment Process start [QueueConsumer]. pid: 25890, UnixSocket: /tmp/imi.process.d45677c85671b8912035abd52ee2653d.1201.sock  
[2024-06-14 12:51:57.804900] system INFO service-payment Process start [hotUpdate]. pid: 25891, UnixSocket: /tmp/imi.process.d45677c85671b8912035abd52ee2653d.844.sock  
[2024-06-14 12:51:57.827960] system INFO service-payment Process start [CronProcess]. pid: 25889, UnixSocket: /tmp/imi.process.d45677c85671b8912035abd52ee2653d.1198.sock  
[2024-06-14 12:51:58.335479] system INFO service-payment Process [hotUpdate] start  
[2024-06-14 12:51:58.339777] system ERROR service-payment ErrorException: Swoole\Coroutine\System::waitSignal(): Unable to wait signal, async signal listener has been registered in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/Signal.php:38
Stack trace:
#0 [internal function]: Imi\Log\ErrorLog->onError(2, 'Swoole\\Coroutin...', '/mnt/hgfs/Works...', 38)
#1 /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/Signal.php(38): Swoole\Coroutine\System::waitSignal(15)
#2 /*****/payment-service/vendor/imiphp/imi/src/functions.php(57): Imi\Swoole\Process\Signal::Imi\Swoole\Process\{closure}()
#3 /*****/payment-service/vendor/imiphp/imi-swoole/src/functions.php(22): {closure}()
#4 [internal function]: {closure}()
#5 {main}  
[2024-06-14 12:51:58.494432] system ERROR service-payment Error: unable to create Imi\Swoole\Process\Process with async-io threads in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/Pool.php:286
Stack trace:
#0 /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/Pool.php(286): Swoole\Process->__construct(Object(Closure))
#1 /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/Pool.php(160): Imi\Swoole\Process\Pool->startWorker(0)
#2 /*****/payment-service/vendor/imiphp/imi-queue/src/Process/SwooleQueueConsumerProcess.php(101): Imi\Swoole\Process\Pool->start()
#3 /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php(199): Imi\Queue\Process\SwooleQueueConsumerProcess->run(5)
#4 /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php(238): Imi\Swoole\Process\ProcessManager::Imi\Swoole\Process\{closure}()
#5 [internal function]: Imi\Swoole\Process\ProcessManager::Imi\Swoole\Process\{closure}(Object(Imi\Swoole\Process\Process))
#6 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Base.php(142): Swoole\Server->start()
#7 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Cli/Server.php(111): Imi\Swoole\Server\Base->start()
#8 /*****/payment-service/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Cli\Server->Imi\Swoole\Server\Cli\{closure}(Object(Imi\Event\EventParam))
#9 /*****/payment-service/vendor/imiphp/imi/src/Event/Event.php(66): Imi\Event\Event->__trigger('IMI.SWOOLE.MAIN...', Array, NULL, 'Imi\\Event\\Event...')
#10 /*****/payment-service/vendor/imiphp/imi-swoole/bootstrap.php(78): Imi\Event\Event::trigger('IMI.SWOOLE.MAIN...')
#11 /*****/payment-service/vendor/imiphp/imi-swoole/bin/imi-swoole(3): Imi\Swoole\{closure}()
#12 /*****/payment-service/vendor/bin/imi-swoole(119): include('/mnt/hgfs/Works...')
#13 {main}  
[2024-06-14 12:51:58.554380] system INFO service-payment Process stop [QueueConsumer]. pid: 25890  
PHP Fatal error:  Uncaught Swoole\ExitException: swoole exit in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php:242
Stack trace:
#0 [internal function]: Imi\Swoole\Process\ProcessManager::Imi\Swoole\Process\{closure}(Object(Imi\Swoole\Process\Process))
#1 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Base.php(142): Swoole\Server->start()
#2 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Cli/Server.php(111): Imi\Swoole\Server\Base->start()
#3 /*****/payment-service/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Cli\Server->Imi\Swoole\Server\Cli\{closure}(Object(Imi\Event\EventParam))
#4 /*****/payment-service/vendor/imiphp/imi/src/Event/Event.php(66): Imi\Event\Event->__trigger('IMI.SWOOLE.MAIN...', Array, NULL, 'Imi\\Event\\Event...')
#5 /*****/payment-service/vendor/imiphp/imi-swoole/bootstrap.php(78): Imi\Event\Event::trigger('IMI.SWOOLE.MAIN...')
#6 /*****/payment-service/vendor/imiphp/imi-swoole/bin/imi-swoole(3): Imi\Swoole\{closure}()
#7 /*****/payment-service/vendor/bin/imi-swoole(119): include('/mnt/hgfs/Works...')
#8 {main}
  thrown in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php on line 242

Fatal error: Uncaught Swoole\ExitException: swoole exit in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php:242
Stack trace:
#0 [internal function]: Imi\Swoole\Process\ProcessManager::Imi\Swoole\Process\{closure}(Object(Imi\Swoole\Process\Process))
#1 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Base.php(142): Swoole\Server->start()
#2 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Cli/Server.php(111): Imi\Swoole\Server\Base->start()
#3 /*****/payment-service/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Cli\Server->Imi\Swoole\Server\Cli\{closure}(Object(Imi\Event\EventParam))
#4 /*****/payment-service/vendor/imiphp/imi/src/Event/Event.php(66): Imi\Event\Event->__trigger('IMI.SWOOLE.MAIN...', Array, NULL, 'Imi\\Event\\Event...')
#5 /*****/payment-service/vendor/imiphp/imi-swoole/bootstrap.php(78): Imi\Event\Event::trigger('IMI.SWOOLE.MAIN...')
#6 /*****/payment-service/vendor/imiphp/imi-swoole/bin/imi-swoole(3): Imi\Swoole\{closure}()
#7 /*****/payment-service/vendor/bin/imi-swoole(119): include('/mnt/hgfs/Works...')
#8 {main}
  thrown in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php on line 242
[2024-06-14 12:51:58.556464] system ERROR service-payment Uncaught Swoole\ExitException: swoole exit in /*****/payment-service/vendor/imiphp/imi-swoole/src/Process/ProcessManager.php:242
Stack trace:
#0 [internal function]: Imi\Swoole\Process\ProcessManager::Imi\Swoole\Process\{closure}(Object(Imi\Swoole\Process\Process))
#1 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Base.php(142): Swoole\Server->start()
#2 /*****/payment-service/vendor/imiphp/imi-swoole/src/Server/Cli/Server.php(111): Imi\Swoole\Server\Base->start()
#3 /*****/payment-service/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Cli\Server->Imi\Swoole\Server\Cli\{closure}(Object(Imi\Event\EventParam))
#4 /*****/payment-service/vendor/imiphp/imi/src/Event/Event.php(66): Imi\Event\Event->__trigger('IMI.SWOOLE.MAIN...', Array, NULL, 'Imi\\Event\\Event...')
#5 /*****/payment-service/vendor/imiphp/imi-swoole/bootstrap.php(78): Imi\Event\Event::trigger('IMI.SWOOLE.MAIN...')
#6 /*****/payment-service/vendor/imiphp/imi-swoole/bin/imi-swoole(3): Imi\Swoole\{closure}()
#7 /*****/payment-service/vendor/bin/imi-swoole(119): include('/mnt/hgfs/Works...')
#8 {main}
  thrown  
App Inited
[2024-06-14 12:51:59.839880] system INFO service-payment Process start [QueueConsumer]. pid: 25940, UnixSocket: /tmp/imi.process.d45677c85671b8912035abd52ee2653d.1201.sock  
[2024-06-14 12:52:00.534634] system INFO service-payment Worker start #0. pid: 25876  
[2024-06-14 12:52:00.524341] system INFO service-payment Worker start #1. pid: 25888  
[2024-06-14 12:52:00.539895] system INFO service-payment Worker start #2. pid: 25874  
PHP 8.3.7 (cli) (built: May 16 2024 16:27:58) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies

swoole

Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 5.1.3
Built => Jun 14 2024 13:32:06
coroutine => enabled with boost asm context
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
sockets => enabled
openssl => OpenSSL 3.3.0 9 Apr 2024
dtls => enabled
http2 => enabled
json => enabled
curl-native => enabled
pcre => enabled
c-ares => 1.18.1
zlib => 1.2.11
brotli => E16777225/D16777225
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
mysqlnd => enabled
async_redis => enabled

Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_fiber_mock => Off => Off
swoole.enable_preemptive_scheduler => On => On
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.unixsock_buffer_size => 8388608 => 8388608
imiphp/imi                         2.1.63  imi 是一款支持长连接微服务分布式的 PHP 开发框架,可在 PHP-FPM、Swoole、Workerman 和 RoadRunner 等多种容器环境下运行。它支持 HttpApi、WebSocket...
imiphp/imi-phar                    2.1.13  imi phar component
imiphp/imi-queue                   2.1.22  imi 框架的队列组件,使用 Redis 作为持久化
imiphp/imi-swoole                  2.1.50  imi swoole component
Eno-CN commented 3 weeks ago

粗略测试了下 PHP8.2没问题

Yurunsoft commented 2 weeks ago

同样的 Swoole 5.1.3,在 PHP 8.2 就没问题是吗

Eno-CN commented 2 weeks ago

同样的 Swoole 5.1.3,在 PHP 8.2 就没问题是吗

是的