diff --git a/Documentation/Release-Notes/MaxScale-2.3.6-Release-Notes.md b/Documentation/Release-Notes/MaxScale-2.3.6-Release-Notes.md index c2e248278..29ae50b32 100644 --- a/Documentation/Release-Notes/MaxScale-2.3.6-Release-Notes.md +++ b/Documentation/Release-Notes/MaxScale-2.3.6-Release-Notes.md @@ -1,4 +1,4 @@ -# MariaDB MaxScale 2.3.6 Release Notes +# MariaDB MaxScale 2.3.6 Release Notes -- 2019-04-23 Release 2.3.6 is a GA release. diff --git a/VERSION23.cmake b/VERSION23.cmake index 643875ab7..3bceeb242 100644 --- a/VERSION23.cmake +++ b/VERSION23.cmake @@ -5,7 +5,7 @@ set(MAXSCALE_VERSION_MAJOR "2" CACHE STRING "Major version") set(MAXSCALE_VERSION_MINOR "3" CACHE STRING "Minor version") -set(MAXSCALE_VERSION_PATCH "6" CACHE STRING "Patch version") +set(MAXSCALE_VERSION_PATCH "7" CACHE STRING "Patch version") # This should only be incremented if a package is rebuilt set(MAXSCALE_BUILD_NUMBER 1 CACHE STRING "Release number") diff --git a/maxscale-system-test/cnf/maxscale.cnf.template.mysqlmon_multimaster_serverid b/maxscale-system-test/cnf/maxscale.cnf.template.mysqlmon_multimaster_serverid index 749147a54..a85c925f8 100644 --- a/maxscale-system-test/cnf/maxscale.cnf.template.mysqlmon_multimaster_serverid +++ b/maxscale-system-test/cnf/maxscale.cnf.template.mysqlmon_multimaster_serverid @@ -10,6 +10,7 @@ user=maxskysql password= skysql detect_stale_master=0 monitor_interval=1000 +assume_unique_hostnames=false [RW Split Router] type=service @@ -18,6 +19,7 @@ servers=server1, server2, server3, server4 user=maxskysql password=skysql slave_selection_criteria=LEAST_ROUTER_CONNECTIONS +max_slave_replication_lag=1 [Read Connection Router Slave] type=service diff --git a/server/core/dcb.cc b/server/core/dcb.cc index 3b72d4748..c18ba056b 100644 --- a/server/core/dcb.cc +++ b/server/core/dcb.cc @@ -565,6 +565,7 @@ int dcb_read(DCB* dcb, GWBUF** head, int maxbytes) { + mxb_assert(dcb->poll.owner == RoutingWorker::get_current()); int nsingleread = 0; int nreadtotal = 0; @@ -904,6 +905,7 @@ static int dcb_log_errors_SSL(DCB* dcb, int ret) */ int dcb_write(DCB* dcb, GWBUF* queue) { + mxb_assert(dcb->poll.owner == RoutingWorker::get_current()); dcb->writeqlen += gwbuf_length(queue); // The following guarantees that queue is not NULL if (!dcb_write_parameter_check(dcb, queue)) @@ -3301,6 +3303,7 @@ public: RoutingWorker& rworker = static_cast(worker); if (dcb_is_still_valid(m_dcb, rworker.id()) && m_dcb->m_uid == m_uid) { + mxb_assert(m_dcb->poll.owner == RoutingWorker::get_current()); m_dcb->fakeq = m_buffer; dcb_handler(m_dcb, m_ev); } @@ -3321,6 +3324,7 @@ static void poll_add_event_to_dcb(DCB* dcb, GWBUF* buf, uint32_t ev) { if (dcb == this_thread.current_dcb) { + mxb_assert(dcb->poll.owner == RoutingWorker::get_current()); // If the fake event is added to the current DCB, we arrange for // it to be handled immediately in dcb_handler() when the handling // of the current events are done... diff --git a/server/modules/protocol/MySQL/mariadb_client.cc b/server/modules/protocol/MySQL/mariadb_client.cc index 5a52ecbde..9f9f1a1e6 100644 --- a/server/modules/protocol/MySQL/mariadb_client.cc +++ b/server/modules/protocol/MySQL/mariadb_client.cc @@ -32,6 +32,8 @@ LocalClient::LocalClient(MYSQL_session* session, MySQLProtocol* proto, int fd) , m_self_destruct(false) { MXB_POLL_DATA::handler = LocalClient::poll_handler; + m_protocol.owner_dcb = nullptr; + m_protocol.stored_query = nullptr; } LocalClient::~LocalClient()