-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
WFMySQLConnection 出现崩溃 #1365
Comments
你好,感谢报bug。请问是最新的0.10.9代码吗? |
errmsg=Resource temporarily unavailable 这个问题,是你不同的mysql connection用了相同的id,就是构造函数里转的那个整数。不同的connection,id必须是不同的。 |
可是我只用了一个 WFMySQLConnection* _m_conn;对象,所有的sql请求都是通过它来发放的,只有_m_conn 这个对象connection 没有不同的mysql connection |
是的,我今天clone下来的最新的代码 |
如果你不是为了做事务,没有必要用mysql connection啊?你直接: WFMySQLTask *task = WFTaskFactory::create_mysql_task(...); mysql connection一般只用在事务的场合,需要把所有的请求固定在一个连接上发送,使用的时候不可以把connection上的两个任务并行启动,否则就有可能出现EAGAIN错误。你这种高并发的mysql请求,直接从一级工厂WFTaskFactory创建mysql任务就可以了。 |
我看一下这个崩溃可能的原因。 |
这真是个教训,空指针静态转换的结果,不一定还是空。修改:#1366 |
|
你直接用WFTaskFactory创建任务就可以了,不会受这个问题的影响。 |
崩溃堆栈如下:
在这个函数中,target->state = 0; 此时target地址为0xffffffffffffffef 无效值。
使用的sql 客户端为WFMySQLConnection new WFMySQLConnection(1);
后续采用 WFMySQLTask *mysql_task = _m_conn->create_query_task(sql,[func](WFMySQLTask *mysql_task)
{
nlohmann::json json = mysql_concat_json_res(mysql_task);
func(&json);
});
mysql_task->start(); 这个函数进行操作 ,在压测时出现崩溃,压力大概为每秒1000个请求。
另外task 在运行中出现errmsg=Resource temporarily unavailable 这个报错 是为什么。
The text was updated successfully, but these errors were encountered: