<div dir="ltr">Hello,<div><br></div><div>I'm using MySQL (Percona) and Galera with HAProxy and have previously run into the same issues you describe.</div><div><br></div><div>The first thing to mention is "SELECT ... FOR UPDATE" queries do not work well with multi-master environments. This was discovered during discussion at the OpenStack Atlanta Summit. A recent write-up about it can be found <a href="http://www.percona.com/blog/2014/09/11/openstack-users-shed-light-on-percona-xtradb-cluster-deadlock-issues/">here</a>.</div><div><br></div><div>To resolve this issue, you'll need to configure HAProxy to only send writes to one MySQL server. I do this by having all but one MySQL node configured as a "backup".</div><div><br></div><div>For the "gone away" errors, I have been able to resolve this by removing any sort of timeout option from the MySQL nodes in HAProxy.</div><div><br></div><div>Here's what my MySQL config looks like in HAProxy:</div><div><br></div><div><div>listen mysql-3306</div><div>  bind <a href="http://192.168.1.1:3306">192.168.1.1:3306</a></div><div>  mode  tcp</div><div>  balance  leastconn</div><div>  option  httpchk</div><div>  server mysql-1 <a href="http://192.168.1.2:3306">192.168.1.2:3306</a>  check port 9200 inter 12000 rise 3 fall 3</div><div>  server mysql-2 <a href="http://192.168.1.3:3306">192.168.1.3:3306</a>  check port 9200 inter 12000 rise 3 fall 3 backup</div></div><div><br></div><div>Note that port 9200 is configured with <a href="https://github.com/olafz/percona-clustercheck">this script</a> to check the cluster status.</div><div><br></div><div>Hope that helps,</div><div>Joe</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 18, 2014 at 10:29 AM, Sławek Kapłoński <span dir="ltr"><<a href="mailto:slawek@kaplonski.pl" target="_blank">slawek@kaplonski.pl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
Is anyone here using openstack with mysql galera and haproxy? Have You got any<br>
problems with that?<br>
I was today installed such ha infra for database (two mysql servers in galera<br>
cluster and haproxy on controller and neutron node, this haproxy is connecting<br>
to one of galera servers with round robin algorithm). Generally all is working<br>
fine but I have few problems:<br>
1. I have a lot of messages like:<br>
WARNING neutron.openstack.common.db.sqlalchemy.session [-] Got mysql server<br>
has gone away: (2006, 'MySQL server has gone away')<br>
2. I have (most on neutron) many errors like:<br>
OperationalError: (OperationalError) (2013, 'Lost connection to MySQL server<br>
during query') 'UPDATE ml2_port_bindings SET vif_type=%s, driver=%s,<br>
segment=%s WHERE ml2_port_bindings.port_id =<br>
3. Also errors:<br>
StaleDataError: UPDATE statement on table 'ports' expected to update 1 row(s);<br>
0 were matched.<br>
4. and errors:<br>
DBDeadlock: (OperationalError) (1213, 'Deadlock found when trying to get lock;<br>
try restarting transaction') 'UPDATE ipavailabilityranges SET first_ip=%s WHERE<br>
ipavailabilityranges.allocation_pool_id =<br>
<br>
Sql queries in examples are "accidental" and same problem is with other<br>
queries also (like deleting ports).<br>
Strange think is that those problems are not happend when I have one mysql<br>
server and all was connecting to that one server. Do You have maybe same<br>
problems? Do You know what can be a reason and solution for it?<br>
<br>
---<br>
Best regards<br>
<span class="HOEnZb"><font color="#888888">Sławek Kapłoński<br>
<a href="mailto:slawek@kaplonski.pl">slawek@kaplonski.pl</a></font></span><br>_______________________________________________<br>
OpenStack-operators mailing list<br>
<a href="mailto:OpenStack-operators@lists.openstack.org">OpenStack-operators@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators</a><br>
<br></blockquote></div><br></div>