Merge branch '2.3' into 2.4
This commit is contained in:
@ -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 */
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user