Bug #54150 COM_(0x31) is not handled
Submitted: 1 Jun 2010 15:22 Modified: 7 Jun 2010 15:50
Reporter: Miguel Araújo Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Proxy: Core Severity:S4 (Feature request)
Version:0.8.0 OS:Any
Assigned to: MEM Agent Devs CPU Architecture:Any
Tags: COM_BINLOG_DUMP

[1 Jun 2010 15:22] Miguel Araújo
Description:
With mysql-proxy between a master and his slave, with the two respective backends in the configuration, and using a simple lua script to detect the COM_BINLOG_DUMP packet from the slave, and forward it to the master, I got the following error:

2010-06-01 15:44:06: (critical) network-mysqld-packet.c:661: COM_(0x31) is not handled

Lua Script:

function read_query(packet)
   if string.byte(packet) == proxy.COM_BINLOG_DUMP then
        print("Received the packet COM_BINLOG_DUMP")
        proxy.queries:append(2, packet)

        return proxy.PROXY_SEND_QUERY
   end

How to repeat:
Stop the slave, and start it again so that it repeats the sending of the packet COM_BINLOG_DUMP.
[3 Jun 2010 18:24] Enterprise Tools JIRA Robot
Diego Medina writes: 
I cannot reproduce this problem, I am starting the proxy like this:

$ ./bin/mysql-proxy  \
 --proxy-backend-addresses=:5132 \
--proxy-lua-script=/Users/wizard/delete.lua \
--log-level=debug \
--plugins=proxy

=================

mysql [localhost] {msandbox} (test) > show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: msandbox
                  Master_Port: 4040
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 3107212
               Relay_Log_File: mysql_sandbox5138-relay-bin.000005
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 3107212
              Relay_Log_Space: 563
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
1 row in set (0.00 sec)

I stop and start replication and do not see the error you reported. 

==============

diego:~ wizard$ ./Desktop/delete-afer-reading/mysql-proxy-0.8.0-osx10.5-x86/bin/mysql-proxy --versionmysql-proxy 0.8.0
  glib2: 2.16.6
  libevent: 1.4.13-stable
  lua: Lua 5.1.4
    LUA_PATH: /Users/wizard/Desktop/delete-afer-reading/mysql-proxy-0.8.0-osx10.5-x86/lib/mysql-proxy/lua/?.lua;
    LUA_CPATH: /Users/wizard/Desktop/delete-afer-reading/mysql-proxy-0.8.0-osx10.5-x86/lib/mysql-proxy/lua/?.so;
  == plugins ==
  admin: 0.7.0
  proxy: 0.7.0
[7 Jun 2010 14:36] Miguel Araújo
You are running master, slave and proxy in the same machine, right? In my configuration I have three machines. One being the master, other the slave and the other one is running mysql-proxy. 

I start the mysql-proxy like this:

mysql-proxy --admin-username=root --admin-password=root --admin-lua-script=/usr/local/lib/mysql-proxy/lua/admin.lua --proxy-lua-script=/root/mysqlr/mysql-proxy/repl.lua --proxy-backend-addresses 192.168.82.161:3306 --proxy-backend-addresses 192.168.82.162:3306

I guess that you can not reproduce the error because the COM_BINLOG_DUMP packet is not being forward by mysql-proxy.
[7 Jun 2010 15:46] Diego Medina
Hi Miguel,

are those --proxy-backend-addresses both slaves or one is a slave and one is a master?

Thanks
[7 Jun 2010 15:50] Miguel Araújo
Hi Diego.

One of the backends is the master, and the other one is the slave.