| Bug #31574 | msql-proxy drops connections while using rw-splitting.lua | ||
|---|---|---|---|
| Submitted: | 12 Oct 2007 23:26 | Modified: | 9 Jan 2015 16:01 |
| Reporter: | Daniel Wharton | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Proxy: Core | Severity: | S1 (Critical) |
| Version: | 0.6.0 and 0.6.1 | OS: | Any |
| Assigned to: | Jan Kneschke | CPU Architecture: | Any |
| Tags: | mysql-proxy, rw-splitting, rw-splitting.lua | ||
[12 Oct 2007 23:26]
Daniel Wharton
[16 Oct 2007 5:37]
Daniel Wharton
I've narrowed this bug down to a specific mysql option. This occurs only when the password for the user you are authenticating with is created with old_passwords=ON on the master server.
You can easily reproduce it by following these steps:
--
on your master and slave DB servers (actually, creating a < mysql-4.1 compatible password on just the master server will do the trick):
mysql> set @@old_passwords=ON;
mysql> GRANT USAGE,SELECT ON *.* TO 'proxytest'@'%' IDENTIFIED BY 'proxytest';
--
launch mysql-proxy with approximately the following options:
export LUA_PATH="/usr/local/share/mysql-proxy/?.lua"
/usr/local/sbin/mysql-proxy \
--proxy-address=xx.xx.xx.xx:3306 \
--proxy-backend-addresses=aa.aa.aa.aa:3306 \
--proxy-read-only-backend-addresses=bb.bb.bb.bb:3306 \
--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua \
--pid-file=/var/run/mysql-proxy/mysql-proxy.pid \
--daemon \
> /var/log/mysql-proxy.log 2>&1
--
run a script like so against your mysql-proxy:
#!/bin/bash
#query count
qc=1
while mysql -u proxytest -h xx.xx.xx.xx -pproxytest -e "select * from user limit 1" mysql > /dev/null;
do
echo "$qc: PASSED"
qc=$[$qc+1]
sleep 1
done
echo "$qc: FAILED"
--
if you have the default rw-splitting.lua, it will fail on the 11th attempt; it works out to something like failure on 2n + 3 (where n=min_idle_connections).
--
quick fix:
execute the following on your master mysql server:
mysql> set @@old_passwords=OFF;
mysql> SET PASSWORD FOR 'proxytest'@'%' = PASSWORD('proxytest');
[16 Oct 2007 6:00]
Giuseppe Maxia
Thanks for an excellent bug report. Verified as described on Mac Os X and Linux.
[16 Oct 2007 16:02]
Jan Kneschke
... looks like in the case of connection reuse we mix up the packet-id: 11:36:07.056979 recv(11, "\1\0\0\1", 4, 0) = 4 11:36:07.057027 recv(11, "\376", 1, 0) = 1 11:36:07.057090 send(8, "\1\0\0\2\376", 5, 0) = 5 We are using COM_CHANGE_USER and havn't taken old-passwords into account.
[8 May 2008 21:38]
Tiago Cruz
Daniel, Your quick-fix solve this problem too: http://bugs.mysql.com/bug.php?id=30304 But I will need to to this in all users/ passwords that I have? I'm using SVN version, #369 Thanks
[8 May 2008 22:14]
Daniel Wharton
Tiago, You will have to modify any accounts which will be authenticated by mysql-proxy. Accounts that mysql-proxy does not utilize do not matter. If you have legacy applications that require the old-style password, you can always create a user just for mysql-proxy. daniel
[13 Aug 2008 3:56]
David Konsumer
I am still having this problem, after the password fix.
I start mysqll-proxy with this:
mysql-proxy --proxy-address=127.0.0.1:3306 --admin-address=127.0.0.1:4401 --proxy-backend-addresses=10.x.x.166:3306 --pid-file=/var/run/mysql-proxy.pid --daemon --proxy-read-only-backend-addresses=10.x.x.143:3306 --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua
It works fine if I leave out the "proxy-lua-script" but then it just proxies for the master (10.x.x.166)
I get timeouts, and eventually the system gets really slow.
in the term where I started it, I see this:
client default db: xxx
syncronizing
server default db:
client default db: xxx
syncronizing
server default db:
client default db: xxx
syncronizing
where xxx is the name of the database.
[20 Mar 2009 15:10]
Ed Rib
Same problem :
client default db: xxx
syncronizing
server default db:
client default db: xxx
syncronizing
Do you solve it ?
Thanks.
[26 Jan 2010 19:34]
Joe Bishop
Same problem mysql-proxy-0.7.2 I cannot turn off old_passwords. I need to scale with mysql-proxy... Any fix?
[17 Sep 2010 11:33]
Sveta Smirnova
Bug #56789 was marked as duplicate of this one.
