php-tdengine
php-tdengine copied to clipboard
swoole5.0链接taosdata时,swoole日志打印出bug信息
swoole5.0 php8.0.8 安装了tdengine扩展后,根据提供的基本案例
use TDengine\Connection;
// 获取扩展版本号
var_dump(\TDengine\EXTENSION_VERSION);
// 设置客户端选项
\TDengine\setOptions([
\TDengine\TSDB_OPTION_LOCALE => 'en_US.UTF-8', // 区域
\TDengine\TSDB_OPTION_CHARSET => 'UTF-8', // 字符集
\TDengine\TSDB_OPTION_TIMEZONE => 'Asia/Shanghai', // 时区
\TDengine\TSDB_OPTION_CONFIGDIR => '/etc/taos', // 配置目录
\TDengine\TSDB_OPTION_SHELL_ACTIVITY_TIMER => 3, // shell 活动定时器
]);
// 获取客户端版本信息
var_dump(\TDengine\CLIENT_VERSION);
var_dump(\TDengine\getClientInfo());
// 以下值都是默认值,不改可以不传
$host = '127.0.0.1';
$port = 6030;
$user = 'root';
$pass = 'taosdata';
$db = null;
// 实例化
$connection = new Connection($host, $port, $user, $pass, $db);
// 连接
$connection->connect();
// 获取连接参数
$connection->getHost();
$connection->getPort();
$connection->getUser();
$connection->getPass();
$connection->getDb();
// 获取服务端信息
$connection->getServerInfo();
// 选择默认数据库
$connection->selectDb('db1');
// 关闭连接
$connection->close();
执行上面的步骤后,提示如下报错:
string(5) "1.0.5"
[2022-09-20 18:21:12 $17574.0] WARNING Server::check_worker_exit_status(): worker(pid=17741, id=0) abnormal exit, status=0, signal=11
A bug occurred in Swoole-v5.0.0, please report it.
The Swoole developers probably don't know about it,
and unless you report it, chances are it won't be fixed.
You can read How to report a bug doc before submitting any bug reports:
>> https://github.com/swoole/swoole-src/blob/master/.github/ISSUE.md
Please do not send bug reports in the mailing list or personal letters.
The issue page is also suitable to submit feature requests.
OS: Linux 4.15.0-122-generic #124-Ubuntu SMP Thu Oct 15 13:03:05 UTC 2020 x86_64
GCC_VERSION: 7.5.0
OPENSSL_VERSION: OpenSSL 1.1.1 11 Sep 2018
PHP_VERSION : 8.0.8
请问这是什么原因导致的啊?
已经在swoole提交issue了 https://github.com/swoole/swoole-src/issues/4833
TDengine 版本多少?
试试把这个代码保存为 test.php,并执行 php test.php:
<?php
use TDengine\Connection;
Co\run(function(){
// 获取扩展版本号
var_dump(\TDengine\EXTENSION_VERSION);
// 设置客户端选项
\TDengine\setOptions([
\TDengine\TSDB_OPTION_LOCALE => 'en_US.UTF-8', // 区域
\TDengine\TSDB_OPTION_CHARSET => 'UTF-8', // 字符集
\TDengine\TSDB_OPTION_TIMEZONE => 'Asia/Shanghai', // 时区
\TDengine\TSDB_OPTION_CONFIGDIR => '/etc/taos', // 配置目录
\TDengine\TSDB_OPTION_SHELL_ACTIVITY_TIMER => 3, // shell 活动定时器
]);
// 获取客户端版本信息
var_dump(\TDengine\CLIENT_VERSION);
var_dump(\TDengine\getClientInfo());
// 以下值都是默认值,不改可以不传
$host = '127.0.0.1';
$port = 6030;
$user = 'root';
$pass = 'taosdata';
$db = null;
// 实例化
$connection = new Connection($host, $port, $user, $pass, $db);
// 连接
$connection->connect();
// 获取连接参数
$connection->getHost();
$connection->getPort();
$connection->getUser();
$connection->getPass();
$connection->getDb();
// 获取服务端信息
$connection->getServerInfo();
// 选择默认数据库
$connection->selectDb('db1');
// 关闭连接
$connection->close();
});
还可以用 valgrind 运行后,把 leak.log 上传上来:
USE_ZEND_ALLOC=0 valgrind --leak-check=full --log-file=leak.log php test.php
请问这个能找到原因吗
感谢回复,执行命令:
USE_ZEND_ALLOC=0 valgrind --leak-check=full --log-file=leak.log /usr/local/php8.0/bin/php taosdata_test.php
leak.log文件
leak.log
目测是 TDengine 内存泄漏,试试新版 TDengine 是否还有问题