diff --git a/server/modules/routing/readwritesplit/readwritesplit.c b/server/modules/routing/readwritesplit/readwritesplit.c index 65d9af518..d130d6321 100644 --- a/server/modules/routing/readwritesplit/readwritesplit.c +++ b/server/modules/routing/readwritesplit/readwritesplit.c @@ -307,8 +307,7 @@ static void *newSession(ROUTER *router_inst, SESSION *session) if (client_rses == NULL) { - ss_dassert(false); - goto return_rses; + return NULL; } #if defined(SS_DEBUG) client_rses->rses_chk_top = CHK_NUM_ROUTER_SES; @@ -348,7 +347,8 @@ static void *newSession(ROUTER *router_inst, SESSION *session) if (!have_enough_servers(&client_rses, min_nservers, router_nservers, router)) { - goto return_rses; + MXS_FREE(client_rses); + return NULL; } /** * Create backend reference objects for this session. @@ -359,9 +359,7 @@ static void *newSession(ROUTER *router_inst, SESSION *session) { /** log this */ MXS_FREE(client_rses); - MXS_FREE(backend_ref); - client_rses = NULL; - goto return_rses; + return NULL; } /** * Initialize backend references with BACKEND ptr. @@ -413,8 +411,7 @@ static void *newSession(ROUTER *router_inst, SESSION *session) { MXS_FREE(client_rses->rses_backend_ref); MXS_FREE(client_rses); - client_rses = NULL; - goto return_rses; + return NULL; } succp = select_connect_backend_servers(&master_ref, backend_ref, router_nservers, max_nslaves, max_slave_rlag, @@ -432,8 +429,7 @@ static void *newSession(ROUTER *router_inst, SESSION *session) { MXS_FREE(client_rses->rses_backend_ref); MXS_FREE(client_rses); - client_rses = NULL; - goto return_rses; + return NULL; } /** Copy backend pointers to router session. */ @@ -458,13 +454,6 @@ static void *newSession(ROUTER *router_inst, SESSION *session) router->connections = client_rses; spinlock_release(&router->lock); -return_rses: -#if defined(SS_DEBUG) - if (client_rses != NULL) - { - CHK_CLIENT_RSES(client_rses); - } -#endif return (void *)client_rses; } @@ -520,16 +509,8 @@ static void closeSession(ROUTER *instance, void *router_session) if (BREF_IS_IN_USE(bref)) { CHK_DCB(dcb); -#if defined(SS_DEBUG) - /** - * session must be moved to SESSION_STATE_STOPPING state before - * router session is closed. - */ - if (dcb->session != NULL) - { - ss_dassert(dcb->session->state == SESSION_STATE_STOPPING); - } -#endif + ss_dassert(dcb->session->state == SESSION_STATE_STOPPING); + /** Clean operation counter in bref and in SERVER */ if (BREF_IS_WAITING_RESULT(bref)) { @@ -764,7 +745,7 @@ static void clientReply(ROUTER *instance, void *router_session, GWBUF *writebuf, */ if (!rses_begin_locked_router_action(router_cli_ses)) { - print_error_packet(router_cli_ses, writebuf, backend_dcb); + gwbuf_free(writebuf); goto lock_failed; } /** Holding lock ensures that router session remains open */ @@ -1795,57 +1776,6 @@ static bool have_enough_servers(ROUTER_CLIENT_SES **p_rses, const int min_nsrv, return succp; } -#if defined(PREP_STMT_CACHING) -#define MAX_STMT_LEN 1024 - -static prep_stmt_t *prep_stmt_init(prep_stmt_type_t type, void *id) -{ - prep_stmt_t *pstmt; - - pstmt = (prep_stmt_t *)MXS_CALLOC(1, sizeof(prep_stmt_t)); - - if (pstmt != NULL) - { -#if defined(SS_DEBUG) - pstmt->pstmt_chk_top = CHK_NUM_PREP_STMT; - pstmt->pstmt_chk_tail = CHK_NUM_PREP_STMT; -#endif - pstmt->pstmt_state = PREP_STMT_ALLOC; - pstmt->pstmt_type = type; - - if (type == PREP_STMT_NAME) - { - pstmt->pstmt_id.name = strndup((char *)id, MAX_STMT_LEN); - } - else - { - pstmt->pstmt_id.seq = 0; - } - } - CHK_PREP_STMT(pstmt); - return pstmt; -} - -static void prep_stmt_done(prep_stmt_t *pstmt) -{ - CHK_PREP_STMT(pstmt); - - if (pstmt->pstmt_type == PREP_STMT_NAME) - { - MXS_FREE(pstmt->pstmt_id.name); - } - MXS_FREE(pstmt); -} - -static bool prep_stmt_drop(prep_stmt_t *pstmt) -{ - CHK_PREP_STMT(pstmt); - - pstmt->pstmt_state = PREP_STMT_DROPPED; - return true; -} -#endif /*< PREP_STMT_CACHING */ - /** * @brief Refresh the instance by the given parameter value. * @@ -1950,44 +1880,6 @@ static void refreshInstance(ROUTER_INSTANCE *router, } param = param->next; } - -#if defined(NOT_USED) /*< can't read monitor config parameters */ - if ((*router->servers)->backend_server->rlag == -2) - { - rlag_enabled = false; - } - else - { - rlag_enabled = true; - } - /** - * If replication lag detection is not enabled the measure can't be - * used in slave selection. - */ - if (!rlag_enabled) - { - if (rlag_limited) - { - MXS_WARNING("Configuration Failed, max_slave_replication_lag " - "is set to %d,\n\t\t but detect_replication_lag " - "is not enabled. Replication lag will not be checked.", - router->rwsplit_config.rw_max_slave_replication_lag); - } - - if (router->rwsplit_config.rw_slave_select_criteria == - LEAST_BEHIND_MASTER) - { - MXS_WARNING("Configuration Failed, router option " - "\n\t\t slave_selection_criteria=LEAST_BEHIND_MASTER " - "is specified, but detect_replication_lag " - "is not enabled.\n\t\t " - "slave_selection_criteria=%s will be used instead.", - STRCRITERIA(DEFAULT_CRITERIA)); - - router->rwsplit_config.rw_slave_select_criteria = DEFAULT_CRITERIA; - } - } -#endif /*< NOT_USED */ } /* diff --git a/server/modules/routing/readwritesplit/readwritesplit.h b/server/modules/routing/readwritesplit/readwritesplit.h index 50bedcf40..e300edf31 100644 --- a/server/modules/routing/readwritesplit/readwritesplit.h +++ b/server/modules/routing/readwritesplit/readwritesplit.h @@ -32,26 +32,6 @@ MXS_BEGIN_DECLS -#undef PREP_STMT_CACHING - -#if defined(PREP_STMT_CACHING) - -typedef enum prep_stmt_type -{ - PREP_STMT_NAME, - PREP_STMT_ID -} prep_stmt_type_t; - -typedef enum prep_stmt_state -{ - PREP_STMT_ALLOC, - PREP_STMT_SENT, - PREP_STMT_RECV, - PREP_STMT_DROPPED -} prep_stmt_state_t; - -#endif /*< PREP_STMT_CACHING */ - typedef enum bref_state { BREF_IN_USE = 0x01, diff --git a/server/modules/routing/readwritesplit/rwsplit_mysql.c b/server/modules/routing/readwritesplit/rwsplit_mysql.c index 6dcdd50d5..6f1b31410 100644 --- a/server/modules/routing/readwritesplit/rwsplit_mysql.c +++ b/server/modules/routing/readwritesplit/rwsplit_mysql.c @@ -366,66 +366,6 @@ void live_session_reply(GWBUF **querybuf, ROUTER_CLIENT_SES *rses) } } -/* - * Uses MySQL specific mechanisms - */ -/** - * @brief Write an error message to the log for session lock failure - * - * This happens when processing a client reply and the session cannot be - * locked. - * - * @param rses Router session - * @param buf Query buffer containing reply data - * @param dcb The backend DCB that sent the reply - */ -void print_error_packet(ROUTER_CLIENT_SES *rses, GWBUF *buf, DCB *dcb) -{ -#if defined(SS_DEBUG) - if (GWBUF_IS_TYPE_MYSQL(buf)) - { - while (gwbuf_length(buf) > 0) - { - /** - * This works with MySQL protocol only ! - * Protocol specific packet print functions would be nice. - */ - uint8_t *ptr = GWBUF_DATA(buf); - size_t len = MYSQL_GET_PACKET_LEN(ptr); - - if (MYSQL_GET_COMMAND(ptr) == 0xff) - { - SERVER *srv = NULL; - backend_ref_t *bref = rses->rses_backend_ref; - int i; - char *bufstr; - - for (i = 0; i < rses->rses_nbackends; i++) - { - if (bref[i].bref_dcb == dcb) - { - srv = bref[i].ref->server; - } - } - ss_dassert(srv != NULL); - char *str = (char *)&ptr[7]; - bufstr = strndup(str, len - 3); - - MXS_ERROR("Backend server %s:%d responded with " - "error : %s", - srv->name, srv->port, bufstr); - MXS_FREE(bufstr); - } - buf = gwbuf_consume(buf, len + 4); - } - } - else - { - gwbuf_free(buf); - } -#endif /*< SS_DEBUG */ -} - /* * Uses MySQL specific mechanisms */ diff --git a/server/modules/routing/readwritesplit/rwsplit_route_stmt.c b/server/modules/routing/readwritesplit/rwsplit_route_stmt.c index ae6e42e1f..4ab38b8ed 100644 --- a/server/modules/routing/readwritesplit/rwsplit_route_stmt.c +++ b/server/modules/routing/readwritesplit/rwsplit_route_stmt.c @@ -891,9 +891,6 @@ route_target_t get_route_target(ROUTER_CLIENT_SES *rses, hint = hint->next; } /*< while (hint != NULL) */ -#if defined(SS_EXTRA_DEBUG) - MXS_INFO("Selected target \"%s\"", STRTARGET(target)); -#endif return target; } @@ -1098,9 +1095,6 @@ bool handle_slave_is_target(ROUTER_INSTANCE *inst, ROUTER_CLIENT_SES *rses, */ if (rwsplit_get_dcb(target_dcb, rses, BE_SLAVE, NULL, rlag_max)) { -#if defined(SS_EXTRA_DEBUG) - MXS_INFO("Found DCB for slave."); -#endif atomic_add(&inst->stats.n_slave, 1); return true; }