Bug #91534 Mysql-proxy does not support new format of text resultset
Submitted: 2 Jul 2018 23:56 Modified: 10 Jul 2018 19:16
Reporter: Andy Salnikov (OCA) Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Proxy: Core Severity:S3 (Non-critical)
Version:0.8.5 OS:Linux
Assigned to: MySQL Verification Team CPU Architecture:Any

[2 Jul 2018 23:56] Andy Salnikov
Description:
This is related to #91533.

We have a mysql-proxy 0.8.5 deployed as a middleware agent between mysql clients and mysql server. recently we have switched to mariadb-10.2.14 for backend server and we have discovered that some clients (e.g. JDBC and mysql-5.7) were failing after upgrade unable to run any queries. We believe that this problem is triggered by mysql-proxy not being able to handle new format of text resultset with OK packet instead of EOF packets (see CLIENT_DEPRECATE_EOF capability flag).

How to repeat:
Run e.g. mysql-5.7 client against mysql-proxy and mariadb-10.2.14 server (or native mysqld with support for CLIENT_DEPRECATE_EOF).

Suggested fix:
mysql-proxy should support new format test resultset packets.
[3 Jul 2018 17:51] MySQL Verification Team
Hi Andy,

can you repropduce this issue with proper mysql server ?

best regards
Bogdan
[5 Jul 2018 5:39] Andy Salnikov
Hi Bogdan,

I am able to reproduce the same problem with mysql5.7 server (installed from rh-mysql57-mysql-server RPM on CentOS7) and mysql5.7 client (from rh-mysql57-mysql). In 5.7 CLIENT_DEPRECATE_EOF is supported so client and server are able to negotiate the use of that capability but proxy does not support it, as a result client hangs on first SELECT (select @@version_comment limit 1).

mysql5.6 client works OK even with 5.7 server, it looks like 5.6 does not know about CLIENT_DEPRECATE_EOF and client does not set that capability so server sends old-style responses which works OK with proxy.

Let me know if you need more info on that.

Thanks,
Andy
[9 Jul 2018 12:04] MySQL Verification Team
Hi,

That is a 4 years old release that never went GA so it's expected it does not support formats introduced after the release. 

best regards
Bogdan
[9 Jul 2018 18:40] Andy Salnikov
Hi Bogdan,

I'm not sure how to read your response. I do know that mysql-proxy is old (antiquated) but do you mean that it is not supported any more and we should not file bugs or feature requests against it? Would you be willing to accept a patch if I manage to produce something that fixes the issue, or do you say there is no chance anyone is going to work on this?

Thanks,
Andy
[9 Jul 2018 18:57] MySQL Verification Team
Please read:
https://downloads.mysql.com/archives/proxy/

MySQL Proxy is not GA, and is not recommended for Production use.
We recommend MySQL Router for production use. Download MySQL Router ยป
[10 Jul 2018 19:16] Andy Salnikov
Sorry for being obtuse, I still can't figure out what your responses mean. 

Do you mean that mysql-proxy will never ever get any support and that you are not interested in making it compatible with the new protocol features? 

Will you refuse a patch that adds support for new protocol feature if I send you one?

MySQL Router is a nice thing but it is not a replacement for mysql-proxy as it does not support its features (query rewriting is the most important for us).

Thanks,
Andy
[11 Jul 2018 0:46] MySQL Verification Team
Hi Andy,

> Sorry for being obtuse, I still can't figure out what your responses mean. 

As you can see the status of the bug is "unsupported", so that basically answers your questions. As for "will ever" and similar we can't answer that. Maybe mysql-proxy will have it's new life tomorrow and become leading product on our portfolio but for now it's a product that never went GA and that has not bin updated for years.

> Will you refuse a patch that adds support for new protocol feature if I send you one?

mysql-proxy is released with it's source under gpl licence, feel free to apply patches to it.

kind regards
Bogdan