walkor / walkor/workerman

Get status unserialize error

Open
#889 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
11.6k
Forks
2.2k
Avg merge
11h 30m
Merged PRs (30d)
3

Description

I get status in interval from worker. At file Worker.php in method formatStatusData have code

```
$info = \file($statistics_file, \FILE_IGNORE_NEW_LINES);
if (!$info) {
return '';
}
$status_str = '';
$current_total_request = array();
$worker_info = \unserialize($info[0]);
\ksort($worker_info, SORT_NUMERIC);
```

But some time situation like this

array of $info is:

```
Log file
(
[0] => --------------------------------------------------------------------- WORKERMAN CONNECTION STATUS --------------------------------------------------------------------------------
[1] => PID Worker CID Trans Protocol ipv4 ipv6 Recv-Q Send-Q Bytes-R Bytes-W Status Local Address Foreign Address
[2] => 20788 6.01M websocket://0.0.0.0:8090 none 2 0 3 219
[3] => 20788 none 2 tcp Redis 1 0 0B 0B 1.5KB 1.7KB ESTABLISHED 127.0.0.1:60376 127.0.0.1:6379
[4] => 20788 none 3 tcp WsProtocol 1 0 0B 0B 22.7KB 110.1KB ESTABLISHED 127.0.0.1:57902 127.0.0.1:8081
)
```

And i get error :

```
TypeError: ksort(): Argument #1 ($array) must be of type array, bool given in /var/www/html/vendor/workerman/workerman/Worker.php:1068
Stack trace:
#0 /var/www/html/vendor/workerman/workerman/Worker.php(1068): ksort()
#1 /var/www/html/vendor/workerman/workerman/Worker.php(969): Workerman\Worker::formatStatusData()
#2 /var/www/html/vendor/workerman/workerman/Worker.php(552): Workerman\Worker::parseCommand()
#3 /var/www/html/app/server/model/CommandModel.php(68): Workerman\Worker::runAll()
#4 /var/www/html/core/Cli.php(47): Fantasy\App\server\model\CommandModel::status()
```

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.