Hi.
proxysql version: 2.0.7-1
os: Centos7.5
proxysql log occur (every N minutes):
2019-10-07 07:54:58 MySQL_Thread.cpp:4292:process_all_sessions(): [WARNING] Closing unhealthy client connection 172.16.16.190:33300
2019-10-07 07:54:58 MySQL_Thread.cpp:4292:process_all_sessions(): [WARNING] Closing unhealthy client connection 172.16.16.190:33302
2019-10-07 07:54:58 MySQL_Thread.cpp:4292:process_all_sessions(): [WARNING] Closing unhealthy client connection 172.16.16.190:33298
It's unhealthy ? why ? thanks
online waiting,thanks.
What reason produces excuse me, can you affect industry to use?
I have some issue. Is it normal or not?

wireshark:

Please tell me that proxysql processes such signals separately ?
I have some issue. Is it normal or not?
It should be the client's behavior, and proxysql handles it. It doesn't seem to have any impact on business.
I have some issue. Is it normal or not?
The author added print,😂

In short, if the client disconnects in a not graceful way, proxysql will generate a warning.
This can be useful in identifying patterns, for example if the issue is mostly from an application and not from another.
hi
I executed a simple go script to update it according to the primary key, about 5000000 rows of data, about a few minutes or so, proxysql would be labeled as an unhealthy connection, and then kill. It‘s no problem connecting to mysql and maxsclae.proxysql and mysql Wait_timeout is set for 7200 seconds, I can't turn off reuse, is it incompatible with go? all proxysql version.thanks
From your screenshot in https://github.com/sysown/proxysql/issues/2293#issuecomment-539368832 , it seems your client is closing the connection sending a FIN , thus ProxySQL correctly labels it as unhealthy
hi.
can I comment follow content, then remake it ? I don't want proxysql to delete unhealthy connections,otherwise go programs will have many invalid connections, etc.
if (sess->healthy==0) {
char _buf[1024];
if (sess->client_myds)
proxy_warning("Closing unhealthy client connection %s:%d\n",sess->client_myds->addr.addr,sess->client_myds->addr.port);
sprintf(_buf,"%s:%d:%s()", __FILE__, __LINE__, __func__);
GloMyLogger->log_audit_entry(PROXYSQL_MYSQL_AUTH_CLOSE, sess, NULL, _buf);
// unregister_session(n);
// n--;
// delete sess;
} else {
no you can't . Your client is the one closing the connection, not proxysql
Thank you for your answer. The problem is that my project can't be solved. I have a terrible headache. I can't run off the regular tasks online. And there are a lot of invalid connections, which should be the mechanism of go. I like proxysql very much. How can I not let proxysql handle such connections? Because it is no problem to connect directly to MySQL runner, go developers think so.
Please forgive me for my poor English. I'm sorry.
no you can't . Your client is the one closing the connection, not proxysql
A New Problem, help me, thanks.
proxysql show processlist:

MySQL:

Mysql show Command: Sleep
Just a guess. It's multiplexing? https://www.percona.com/blog/2019/09/27/multiplexing-mux-in-proxysql/
proxysql is justing keeping the connection?
This problem is solved:
go program add:
db.SetConnMaxLifetime(60 * time.Second)

I also have the same problem, but the client is doing TCP_HALF_OPEN health check. I hope that the proxysql log can add a filter rule, such as not recording the specified IP address segment or adding a log level, otherwise the log information is too large.
ProxySQL 2.0.8 introduces a new variable mysql-log_unhealthy_connections to suppress messages related to unhealty clients connections being closed.
Closing
This problem is solved:
go program add:db.SetConnMaxLifetime(60 * time.Second)
Hey Can you please explain how to add db.SetConnMaxLifetime(60 * time.Second) this ?? Can we set it from proxysql's configmap?
```2020-10-21 10:42:24 MySQL_Thread.cpp:4281:process_all_sessions(): [WARNING] Closing unhealthy client connection 10.xxx.xxx.xx:59126
2020-10-21 10:42:27 MySQL_Thread.cpp:4281:process_all_sessions(): [WARNING] Closing unhealthy client connection 10.xxx.xxx.xx:58312
I got these logs, due to keepalived check port, disable by _set log_unhealthy_connections=0_
TCP_CHECK {
connect_port 6033
connect_timeout 1
}
```
Most helpful comment
ProxySQL 2.0.8 introduces a new variable
mysql-log_unhealthy_connectionsto suppress messages related to unhealty clients connections being closed.Closing