Merge branch '2.3' into 2.4

This commit is contained in:
Markus Mäkelä
2019-07-10 08:14:56 +03:00
10 changed files with 89 additions and 17 deletions

View File

@ -958,6 +958,8 @@ static void dcb_log_write_failure(DCB* dcb, GWBUF* queue, int eno)
*/
int dcb_drain_writeq(DCB* dcb)
{
mxb_assert(dcb->owner == RoutingWorker::get_current());
if (dcb->ssl_read_want_write)
{
/** The SSL library needs to write more data */

View File

@ -644,6 +644,13 @@ uint32_t QueryClassifier::ps_id_internal_get(GWBUF* pBuffer)
// All COM_STMT type statements store the ID in the same place
uint32_t external_id = mysql_extract_ps_id(pBuffer);
if (external_id == 0xffffffff)
{
// "Direct execution" that refers to the latest prepared statement
external_id = m_prev_ps_id;
}
auto it = m_ps_handles.find(external_id);
if (it != m_ps_handles.end())
@ -663,6 +670,7 @@ uint32_t QueryClassifier::ps_id_internal_get(GWBUF* pBuffer)
void QueryClassifier::ps_store_response(uint32_t internal_id, GWBUF* buffer)
{
auto external_id = qc_mysql_extract_ps_id(buffer);
m_prev_ps_id = external_id;
m_ps_handles[external_id] = internal_id;
if (auto param_count = qc_extract_ps_param_count(buffer))

View File

@ -1091,8 +1091,10 @@ bool Service::refresh_users()
MXS_CONFIG* config = config_get_global_options();
/* Check if refresh rate limit has been exceeded */
if (now < m_rate_limits[self].last + config->users_refresh_time)
/* Check if refresh rate limit has been exceeded. Also check whether we are in the middle of starting up.
* If so, allow repeated reloading of users. */
if (now > maxscale_started() + config->users_refresh_time
&& now < m_rate_limits[self].last + config->users_refresh_time)
{
if (!m_rate_limits[self].warned)
{