CUBRID Engine
latest
|
#include "config.h"
#include <filesystem>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/uio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include "porting.h"
#include "error_manager.h"
#include "connection_globals.h"
#include "filesys.hpp"
#include "filesys_temp.hpp"
#include "memory_alloc.h"
#include "environment_variable.h"
#include "system_parameter.h"
#include "critical_section.h"
#include "log_manager.h"
#include "object_representation.h"
#include "connection_error.h"
#include "log_impl.h"
#include "session.h"
#include "tcp.h"
#include "connection_sr.h"
#include "server_support.h"
#include "thread_manager.hpp"
Go to the source code of this file.
Classes | |
struct | css_wait_queue_entry |
struct | queue_search_arg |
struct | wait_queue_search_arg |
Macros | |
#define | TRACE(string, arg) |
#define | NUM_NORMAL_CLIENTS (prm_get_integer_value(PRM_ID_CSS_MAX_CLIENTS)) |
#define | RMUTEX_NAME_CONN_ENTRY "CONN_ENTRY" |
#define | CSS_CONN_IDX(conn_arg) ((conn_arg) - css_Conn_array) |
#define | CSS_FREE_CONN_MSG "Free count = %d, head = %d" |
#define | CSS_FREE_CONN_ARGS css_Num_free_conn, CSS_CONN_IDX (css_Free_conn_anchor) |
#define | CSS_ACTIVE_CONN_MSG "Active count = %d, head = %d" |
#define | CSS_ACTIVE_CONN_ARGS css_Num_active_conn, CSS_CONN_IDX (css_Active_conn_anchor) |
Typedefs | |
typedef struct css_wait_queue_entry | CSS_WAIT_QUEUE_ENTRY |
typedef struct queue_search_arg | CSS_QUEUE_SEARCH_ARG |
typedef struct wait_queue_search_arg | CSS_WAIT_QUEUE_SEARCH_ARG |
Variables | |
static const int | CSS_MAX_CLIENT_ID = INT_MAX - 1 |
static int | css_Client_id = 0 |
static pthread_mutex_t | css_Client_id_lock = PTHREAD_MUTEX_INITIALIZER |
static pthread_mutex_t | css_Conn_rule_lock = PTHREAD_MUTEX_INITIALIZER |
static CSS_CONN_ENTRY * | css_Free_conn_anchor = NULL |
static int | css_Num_free_conn = 0 |
static int | css_Num_max_conn = 101 |
CSS_CONN_ENTRY * | css_Conn_array = NULL |
CSS_CONN_ENTRY * | css_Active_conn_anchor = NULL |
static int | css_Num_active_conn = 0 |
SYNC_RWLOCK | css_Rwlock_active_conn_anchor |
SYNC_RWLOCK | css_Rwlock_free_conn_anchor |
static LAST_ACCESS_STATUS * | css_Access_status_anchor = NULL |
int | css_Num_access_user = 0 |
css_error_code(* | css_Connect_handler )(CSS_CONN_ENTRY *) = NULL |
CSS_THREAD_FN | css_Request_handler = NULL |
CSS_THREAD_FN | css_Connection_error_handler = NULL |
#define CSS_ACTIVE_CONN_ARGS css_Num_active_conn, CSS_CONN_IDX (css_Active_conn_anchor) |
Definition at line 158 of file connection_sr.c.
Referenced by css_free_conn(), and css_insert_into_active_conn_list().
#define CSS_ACTIVE_CONN_MSG "Active count = %d, head = %d" |
Definition at line 157 of file connection_sr.c.
Referenced by css_free_conn(), and css_insert_into_active_conn_list().
#define CSS_CONN_IDX | ( | conn_arg | ) | ((conn_arg) - css_Conn_array) |
Definition at line 152 of file connection_sr.c.
Referenced by css_dealloc_conn(), css_free_conn(), css_insert_into_active_conn_list(), and css_make_conn().
#define CSS_FREE_CONN_ARGS css_Num_free_conn, CSS_CONN_IDX (css_Free_conn_anchor) |
Definition at line 155 of file connection_sr.c.
Referenced by css_dealloc_conn(), and css_make_conn().
#define CSS_FREE_CONN_MSG "Free count = %d, head = %d" |
Definition at line 154 of file connection_sr.c.
Referenced by css_dealloc_conn(), and css_make_conn().
#define NUM_NORMAL_CLIENTS (prm_get_integer_value(PRM_ID_CSS_MAX_CLIENTS)) |
Definition at line 120 of file connection_sr.c.
#define RMUTEX_NAME_CONN_ENTRY "CONN_ENTRY" |
Definition at line 122 of file connection_sr.c.
Referenced by css_init_conn_list().
#define TRACE | ( | string, | |
arg | |||
) |
Definition at line 92 of file connection_sr.c.
Referenced by css_connect_to_master_server().
typedef struct queue_search_arg CSS_QUEUE_SEARCH_ARG |
typedef struct css_wait_queue_entry CSS_WAIT_QUEUE_ENTRY |
typedef struct wait_queue_search_arg CSS_WAIT_QUEUE_SEARCH_ARG |
|
static |
Definition at line 2613 of file connection_sr.c.
References assert, css_find_and_remove_wait_queue_entry(), css_free_wait_queue_entry(), free_and_init, NO_ERROR, NULL, rmutex_lock, rmutex_unlock, and css_wait_queue_entry::thrd_entry.
Referenced by css_return_queued_data_timeout().
|
static |
Definition at line 1418 of file connection_sr.c.
References ABORT_TYPE, css_net_send(), packet_header::db_error, css_conn_entry::db_error, DEFAULT_HEADER_DATA, packet_header::flags, htonl(), htons(), css_conn_entry::invalidate_snapshot, NET_HEADER_FLAG_INVALIDATE_SNAPSHOT, packet_header::request_id, packet_header::transaction_id, and packet_header::type.
Referenced by css_send_abort_request().
|
static |
Definition at line 1909 of file connection_sr.c.
References CANT_ALLOC_BUFFER, css_add_list(), css_make_queue_entry(), css_retire_queue_entry(), NO_ERROR, NO_ERRORS, NULL, and p.
Referenced by css_process_abort_packet(), css_queue_command_packet(), css_queue_data_packet(), css_queue_error_packet(), and css_queue_user_data_buffer().
|
static |
Definition at line 2074 of file connection_sr.c.
References css_add_list(), css_make_wait_queue_entry(), css_retire_wait_queue_entry(), NO_ERROR, NULL, and p.
Referenced by css_return_queued_data_timeout().
|
static |
Definition at line 1768 of file connection_sr.c.
References assert, if(), NULL, and p.
Referenced by css_queue_command_packet().
|
static |
Definition at line 1624 of file connection_sr.c.
References assert, css_queue_entry::next, NULL, and p.
Referenced by css_make_queue_entry().
|
static |
Definition at line 1695 of file connection_sr.c.
References assert, css_wait_queue_entry::next, NULL, and p.
Referenced by css_make_wait_queue_entry().
|
static |
Definition at line 1046 of file connection_sr.c.
References css_send_magic(), css_send_request(), css_tcp_client_open(), css_conn_entry::fd, IS_INVALID_SOCKET, NO_ERRORS, and NULL.
Referenced by css_connect_to_master_server().
CSS_CONN_ENTRY* css_connect_to_master_server | ( | int | master_port_id, |
const char * | server_name, | ||
int | name_length | ||
) |
Definition at line 1079 of file connection_sr.c.
References ARG_FILE_LINE, css_common_connect(), css_free_conn(), css_make_conn(), css_net_send(), css_open_server_connection_socket(), css_readn(), css_send_data(), css_Server_inhibit_connection_socket, css_Server_use_new_connection_protocol, css_Service_id, css_tcp_listen_server_datagram(), css_tcp_setup_server_datagram(), CUB_MAXHOSTNAMELEN, ER_ERROR_SEVERITY, er_set(), er_set_with_oserror(), ERR_CSS_APPLYLOG_ALREADY_EXISTS, ERR_CSS_COPYLOG_ALREADY_EXISTS, ERR_CSS_ERROR_DURING_SERVER_CONNECT, ERR_CSS_SERVER_ALREADY_EXISTS, css_conn_entry::fd, GET_REAL_MASTER_CONN_NAME, GETHOSTNAME, htonl(), IS_MASTER_CONN_NAME_HA_APPLYLOG, IS_MASTER_CONN_NAME_HA_COPYLOG, IS_MASTER_CONN_NAME_HA_SERVER, NO_ERRORS, ntohl(), NULL, SERVER_ALREADY_EXISTS, SERVER_REQUEST, SERVER_REQUEST_ACCEPTED, SERVER_REQUEST_ACCEPTED_NEW, SERVER_REQUEST_NEW, and TRACE.
Referenced by hb_connect_to_master().
|
static |
Definition at line 651 of file connection_sr.c.
References assert, CSS_CONN_IDX, css_Free_conn_anchor, CSS_FREE_CONN_ARGS, CSS_FREE_CONN_MSG, CSS_LOG_STACK, css_Num_free_conn, css_Num_max_conn, END_EXCLUSIVE_ACCESS_FREE_CONN_ANCHOR, css_conn_entry::next, and START_EXCLUSIVE_ACCESS_FREE_CONN_ANCHOR.
Referenced by css_final_conn_list(), and css_free_conn().
void css_dealloc_conn_rmutex | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 640 of file connection_sr.c.
References rmutex_finalize.
Referenced by css_refuse_connection_request().
void css_decrement_num_conn | ( | BOOT_CLIENT_TYPE | client_type | ) |
Definition at line 843 of file connection_sr.c.
References css_Conn_rule_lock, css_Conn_rules, css_Conn_rules_size, css_decrement_num_conn_internal(), DB_CLIENT_TYPE_UNKNOWN, i, pthread_mutex_lock, and pthread_mutex_unlock.
Referenced by css_free_conn().
|
static |
Definition at line 756 of file connection_sr.c.
References assert, CR_NORMAL_FIRST, CR_NORMAL_ONLY, CR_RESERVED_FIRST, css_Conn_rules, css_Conn_rules_size, CSS_CR_NORMAL_ONLY_IDX, i, css_conn_rule_info::max_num_conn, css_conn_rule_info::num_curr_conn, and css_conn_rule_info::rule.
Referenced by css_decrement_num_conn().
void css_final_conn_list | ( | void | ) |
Definition at line 525 of file connection_sr.c.
References assert, css_dealloc_conn(), css_Num_active_conn, css_Num_max_conn, CSS_RWLOCK_ACTIVE_CONN_ANCHOR, CSS_RWLOCK_FREE_CONN_ANCHOR, css_shutdown_conn(), free_and_init, i, css_wait_queue_entry::next, css_conn_entry::next, NULL, rmutex_finalize, and rwlock_finalize.
Referenced by boot_restart_server(), and net_server_start().
|
static |
Definition at line 1986 of file connection_sr.c.
References css_find_queue_entry_by_key(), css_traverse_list(), queue_search_arg::entry_ptr, css_wait_queue_entry::key, queue_search_arg::key, NULL, and queue_search_arg::remove_entry.
Referenced by css_process_abort_packet(), css_queue_data_packet(), css_remove_unexpected_packets(), css_return_queued_data_timeout(), and css_return_queued_error().
|
static |
Definition at line 2129 of file connection_sr.c.
References css_traverse_list(), wait_queue_search_arg::entry_ptr, find_wait_queue_entry_by_key(), css_wait_queue_entry::key, wait_queue_search_arg::key, NULL, and wait_queue_search_arg::remove_entry.
Referenced by clear_wait_queue_entry_and_free_buffer(), and css_queue_data_packet().
CSS_CONN_ENTRY* css_find_conn_by_tran_index | ( | int | tran_index | ) |
Definition at line 1210 of file connection_sr.c.
References END_SHARED_ACCESS_ACTIVE_CONN_ANCHOR, css_wait_queue_entry::next, css_conn_entry::next, NULL, and START_SHARED_ACCESS_ACTIVE_CONN_ANCHOR.
Referenced by log_abort_all_active_transaction().
CSS_CONN_ENTRY* css_find_conn_from_fd | ( | SOCKET | fd | ) |
Definition at line 1240 of file connection_sr.c.
References END_SHARED_ACCESS_ACTIVE_CONN_ANCHOR, css_conn_entry::fd, css_wait_queue_entry::next, css_conn_entry::next, NULL, p, and START_SHARED_ACCESS_ACTIVE_CONN_ANCHOR.
|
static |
Definition at line 1966 of file connection_sr.c.
References css_find_queue_entry_by_key(), css_traverse_list(), queue_search_arg::entry_ptr, css_wait_queue_entry::key, queue_search_arg::key, NULL, and queue_search_arg::remove_entry.
Referenced by css_is_request_aborted(), css_is_valid_request_id(), and css_process_abort_packet().
|
static |
Definition at line 1938 of file connection_sr.c.
References queue_search_arg::entry_ptr, queue_search_arg::key, css_queue_entry::key, p, queue_search_arg::remove_entry, TRAV_CONT, TRAV_STOP, and TRAV_STOP_DELETE.
Referenced by css_find_and_remove_queue_entry(), and css_find_queue_entry().
void css_free_conn | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 873 of file connection_sr.c.
References assert, CSS_ACTIVE_CONN_ARGS, CSS_ACTIVE_CONN_MSG, css_close_conn(), CSS_CONN_IDX, css_dealloc_conn(), css_decrement_num_conn(), CSS_LOG_STACK, css_Num_active_conn, css_Num_max_conn, css_shutdown_conn(), END_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR, css_wait_queue_entry::next, css_conn_entry::next, NULL, p, and START_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR.
Referenced by css_connect_to_master_server().
|
static |
Definition at line 1812 of file connection_sr.c.
References assert, NULL, and p.
Referenced by css_shutdown_conn().
|
static |
Definition at line 1881 of file connection_sr.c.
References css_queue_entry::buffer, css_retire_queue_entry(), free_and_init, and NULL.
Referenced by css_process_abort_packet(), css_queue_data_packet(), css_remove_and_free_queue_entry(), css_remove_unexpected_packets(), css_return_queued_data_timeout(), css_return_queued_error(), and css_return_queued_request().
|
static |
Definition at line 1670 of file connection_sr.c.
References assert, css_queue_entry::next, NULL, and p.
Referenced by css_shutdown_conn().
void css_free_user_access_status | ( | void | ) |
Definition at line 3082 of file connection_sr.c.
References CSECT_ACCESS_STATUS, csect_enter, csect_exit, css_Access_status_anchor, css_Num_access_user, free_and_init, INF_WAIT, last_access_status::next, and NULL.
Referenced by net_server_start().
|
static |
Definition at line 2043 of file connection_sr.c.
References assert, css_retire_wait_queue_entry(), NULL, css_wait_queue_entry::thrd_entry, THREAD_CSS_QUEUE_RESUMED, THREAD_CSS_QUEUE_SUSPENDED, thread_lock_entry(), thread_unlock_entry(), and thread_wakeup_already_had_mutex().
Referenced by clear_wait_queue_entry_and_free_buffer(), css_queue_data_packet(), and css_remove_and_free_wait_queue_entry().
|
static |
Definition at line 1741 of file connection_sr.c.
References assert, css_wait_queue_entry::next, NULL, and p.
Referenced by css_shutdown_conn().
|
static |
Definition at line 226 of file connection_sr.c.
References ARG_FILE_LINE, css_Client_id, css_Client_id_lock, CSS_MAX_CLIENT_ID, css_Num_max_conn, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, ER_FAILED, er_set_with_oserror(), i, pthread_mutex_lock, pthread_mutex_unlock, and rv.
Referenced by css_initialize_conn().
int css_get_num_free_conn | ( | void | ) |
Definition at line 674 of file connection_sr.c.
References css_Num_free_conn.
unsigned short css_get_request_id | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 1367 of file connection_sr.c.
References ARG_FILE_LINE, assert, css_is_valid_request_id(), er_set(), ER_WARNING_SEVERITY, ERR_CSS_REQUEST_ID_FAILURE, NO_ERROR, NULL, css_conn_entry::request_id, rmutex_lock, and rmutex_unlock.
int css_get_session_ids_for_active_connections | ( | SESSION_ID ** | session_ids, |
int * | count | ||
) |
Definition at line 1270 of file connection_sr.c.
References ARG_FILE_LINE, assert, css_Num_active_conn, END_SHARED_ACCESS_ACTIVE_CONN_ANCHOR, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), free_and_init, i, css_wait_queue_entry::next, css_conn_entry::next, NO_ERROR, NULL, css_conn_entry::session_id, and START_SHARED_ACCESS_ACTIVE_CONN_ANCHOR.
Referenced by session_check_timeout().
void css_get_user_access_status | ( | int | num_user, |
LAST_ACCESS_STATUS ** | access_status_array | ||
) |
Definition at line 3060 of file connection_sr.c.
References CSECT_ACCESS_STATUS, csect_enter_as_reader, csect_exit, i, INF_WAIT, last_access_status::next, and NULL.
Referenced by css_user_access_status_start_scan().
int css_increment_num_conn | ( | BOOT_CLIENT_TYPE | client_type | ) |
Definition at line 817 of file connection_sr.c.
References css_Conn_rule_lock, css_Conn_rules, css_Conn_rules_size, css_increment_num_conn_internal(), error(), i, NO_ERROR, pthread_mutex_lock, and pthread_mutex_unlock.
Referenced by server_ping_with_handshake().
|
static |
Definition at line 687 of file connection_sr.c.
References assert, CR_NORMAL_FIRST, CR_NORMAL_ONLY, CR_RESERVED_FIRST, css_Conn_rules, CSS_CR_NORMAL_ONLY_IDX, ER_CSS_CLIENTS_EXCEEDED, error(), css_conn_rule_info::max_num_conn, NO_ERROR, css_conn_rule_info::num_curr_conn, and css_conn_rule_info::rule.
Referenced by css_increment_num_conn().
int css_init_conn_list | ( | void | ) |
Definition at line 428 of file connection_sr.c.
References ARG_FILE_LINE, ASSERT_ERROR, css_get_max_conn(), css_init_conn_rules(), css_initialize_conn(), css_Num_free_conn, css_Num_max_conn, CSS_RWLOCK_ACTIVE_CONN_ANCHOR, CSS_RWLOCK_ACTIVE_CONN_ANCHOR_NAME, CSS_RWLOCK_FREE_CONN_ANCHOR, CSS_RWLOCK_FREE_CONN_ANCHOR_NAME, ER_CSS_CONN_INIT, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), er_set_with_oserror(), err, error(), free_and_init, i, css_conn_entry::next, NO_ERROR, NULL, NUM_MASTER_CHANNEL, rmutex_initialize, RMUTEX_NAME_CONN_ENTRY, rwlock_finalize, and rwlock_initialize.
Referenced by boot_restart_server().
int css_initialize_conn | ( | CSS_CONN_ENTRY * | conn, |
SOCKET | fd | ||
) |
Definition at line 279 of file connection_sr.c.
References css_conn_entry::abort_queue, css_conn_entry::buffer_queue, css_conn_entry::client_id, CONN_OPEN, css_get_next_client_id(), css_initialize_list(), css_conn_entry::data_queue, DB_CLIENT_TYPE_UNKNOWN, DB_EMPTY_SESSION, css_conn_entry::db_error, ER_CSS_CONN_INIT, err, css_conn_entry::error_queue, css_conn_entry::fd, css_conn_entry::in_transaction, css_conn_entry::invalidate_snapshot, NO_ERROR, NULL, NULL_TRAN_INDEX, css_conn_entry::request_id, css_conn_entry::request_queue, css_conn_entry::reset_on_commit, css_conn_entry::session_id, css_conn_entry::status, and THREAD_STOP_WORKERS_EXCEPT_LOGWR.
Referenced by css_init_conn_list(), and css_make_conn().
void css_insert_into_active_conn_list | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 614 of file connection_sr.c.
References assert, css_Active_conn_anchor, CSS_ACTIVE_CONN_ARGS, CSS_ACTIVE_CONN_MSG, CSS_CONN_IDX, CSS_LOG_STACK, css_Num_active_conn, css_Num_max_conn, END_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR, css_conn_entry::next, and START_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR.
Referenced by css_init(), and css_internal_connection_handler().
|
static |
Definition at line 2534 of file connection_sr.c.
References css_conn_entry::abort_queue, css_find_queue_entry(), NULL, and p.
Referenced by css_queue_command_packet(), css_queue_data_packet(), css_queue_error_packet(), and css_queue_user_data_buffer().
|
static |
Definition at line 2879 of file connection_sr.c.
References css_conn_entry::abort_queue, css_find_queue_entry(), css_conn_entry::data_queue, css_conn_entry::error_queue, NULL, and css_conn_entry::request_queue.
Referenced by css_get_request_id().
CSS_CONN_ENTRY* css_make_conn | ( | SOCKET | fd | ) |
Definition at line 574 of file connection_sr.c.
References ARG_FILE_LINE, assert, css_Conn_anchor, CSS_CONN_IDX, css_Free_conn_anchor, CSS_FREE_CONN_ARGS, CSS_FREE_CONN_MSG, css_initialize_conn(), CSS_LOG_STACK, css_Num_free_conn, END_EXCLUSIVE_ACCESS_FREE_CONN_ANCHOR, ER_CSS_CONN_INIT, ER_ERROR_SEVERITY, er_set_with_oserror(), css_conn_entry::next, NO_ERROR, NULL, and START_EXCLUSIVE_ACCESS_FREE_CONN_ANCHOR.
Referenced by css_connect_to_master_server().
|
static |
Definition at line 1608 of file connection_sr.c.
Referenced by css_return_eid_from_conn().
|
static |
Definition at line 1844 of file connection_sr.c.
References css_wait_queue_entry::buffer, css_queue_entry::buffer, css_claim_queue_entry(), css_queue_entry::db_error, css_queue_entry::invalidate_snapshot, css_wait_queue_entry::key, css_queue_entry::key, NULL, p, css_wait_queue_entry::rc, css_queue_entry::rc, css_wait_queue_entry::size, css_queue_entry::size, and css_queue_entry::transaction_id.
Referenced by css_add_queue_entry().
|
static |
Definition at line 2009 of file connection_sr.c.
References css_wait_queue_entry::buffer, css_claim_wait_queue_entry(), css_wait_queue_entry::key, NULL, p, css_wait_queue_entry::rc, css_wait_queue_entry::size, css_wait_queue_entry::thrd_entry, and thread_get_thread_entry_info().
Referenced by css_add_wait_queue_entry().
void css_print_conn_entry_info | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 928 of file connection_sr.c.
References css_conn_entry::client_id, css_conn_entry::fd, css_conn_entry::next, and css_conn_entry::request_id.
Referenced by css_print_conn_list(), and css_print_free_conn_list().
void css_print_conn_list | ( | void | ) |
Definition at line 941 of file connection_sr.c.
References assert, css_Num_active_conn, css_print_conn_entry_info(), END_SHARED_ACCESS_ACTIVE_CONN_ANCHOR, i, css_wait_queue_entry::next, css_conn_entry::next, NULL, and START_SHARED_ACCESS_ACTIVE_CONN_ANCHOR.
void css_print_free_conn_list | ( | void | ) |
Definition at line 969 of file connection_sr.c.
References assert, css_Num_free_conn, css_print_conn_entry_info(), END_SHARED_ACCESS_FREE_CONN_ANCHOR, i, css_wait_queue_entry::next, css_conn_entry::next, NULL, and START_SHARED_ACCESS_FREE_CONN_ANCHOR.
|
static |
Definition at line 2267 of file connection_sr.c.
References css_conn_entry::abort_queue, css_add_queue_entry(), css_find_and_remove_queue_entry(), css_find_queue_entry(), css_free_queue_entry(), css_conn_entry::data_queue, css_conn_entry::db_error, css_conn_entry::invalidate_snapshot, NO_ERRORS, NULL, and css_conn_entry::request_queue.
Referenced by css_queue_packet().
|
static |
Definition at line 2249 of file connection_sr.c.
References CONN_CLOSED, css_shutdown_socket(), css_conn_entry::fd, INVALID_SOCKET, IS_INVALID_SOCKET, and css_conn_entry::status.
Referenced by css_queue_packet().
|
static |
Definition at line 2470 of file connection_sr.c.
References assert, packet_header::buffer_size, CANT_ALLOC_BUFFER, css_add_queue_entry(), css_claim_net_header_entry(), css_is_request_aborted(), css_queue_packet(), css_read_header(), css_retire_net_header_entry(), css_conn_entry::db_error, DEFAULT_HEADER_DATA, css_conn_entry::invalidate_snapshot, NO_ERRORS, ntohl(), NULL, p, css_wait_queue_entry::rc, packet_header::request_id, css_conn_entry::request_queue, and packet_header::type.
Referenced by css_queue_packet().
|
static |
Definition at line 2299 of file connection_sr.c.
References css_wait_queue_entry::buffer, css_queue_entry::buffer, css_conn_entry::buffer_queue, packet_header::buffer_size, CANT_ALLOC_BUFFER, css_add_queue_entry(), css_find_and_remove_queue_entry(), css_find_and_remove_wait_queue_entry(), css_free_queue_entry(), css_free_wait_queue_entry(), css_is_request_aborted(), css_net_recv(), css_read_remaining_bytes(), css_conn_entry::data_queue, css_conn_entry::db_error, css_conn_entry::fd, free_and_init, css_conn_entry::invalidate_snapshot, NO_ERRORS, ntohl(), NULL, css_wait_queue_entry::rc, RECORD_TRUNCATED, css_wait_queue_entry::size, css_queue_entry::size, and css_wait_queue_entry::thrd_entry.
Referenced by css_queue_packet().
|
static |
Definition at line 2425 of file connection_sr.c.
References css_wait_queue_entry::buffer, packet_header::buffer_size, CANT_ALLOC_BUFFER, css_add_queue_entry(), css_is_request_aborted(), css_net_recv(), css_read_remaining_bytes(), css_conn_entry::db_error, css_conn_entry::error_queue, css_conn_entry::fd, free_and_init, css_conn_entry::invalidate_snapshot, NO_ERRORS, ntohl(), NULL, css_wait_queue_entry::rc, RECORD_TRUNCATED, and css_wait_queue_entry::size.
Referenced by css_queue_packet().
|
static |
Definition at line 2153 of file connection_sr.c.
References ABORT_TYPE, assert, CLOSE_TYPE, COMMAND_TYPE, CONNECTION_CLOSED, css_process_abort_packet(), css_process_close_packet(), css_queue_command_packet(), css_queue_data_packet(), css_queue_error_packet(), DATA_TYPE, packet_header::db_error, css_conn_entry::db_error, ERROR_TYPE, packet_header::flags, css_conn_entry::invalidate_snapshot, NET_HEADER_FLAG_INVALIDATE_SNAPSHOT, css_wait_queue_entry::next, NO_ERROR, NO_ERRORS, ntohl(), ntohs(), NULL, p, css_wait_queue_entry::rc, rmutex_lock, rmutex_unlock, THREAD_CSECT_WRITER_SUSPENDED, THREAD_CSS_QUEUE_RESUMED, THREAD_CSS_QUEUE_SUSPENDED, thread_lock_entry(), thread_unlock_entry(), thread_wakeup_already_had_mutex(), packet_header::transaction_id, and WRONG_PACKET_TYPE.
Referenced by css_queue_command_packet(), and css_read_and_queue().
int css_queue_user_data_buffer | ( | CSS_CONN_ENTRY * | conn, |
unsigned short | request_id, | ||
int | size, | ||
char * | buffer | ||
) |
Definition at line 2927 of file connection_sr.c.
References assert, css_conn_entry::buffer_queue, css_add_queue_entry(), css_is_request_aborted(), css_queue_packet(), css_conn_entry::db_error, css_conn_entry::invalidate_snapshot, NO_ERROR, NO_ERRORS, NULL, css_wait_queue_entry::rc, rmutex_lock, and rmutex_unlock.
int css_read_and_queue | ( | CSS_CONN_ENTRY * | conn, |
int * | type | ||
) |
Definition at line 1531 of file connection_sr.c.
References CONN_OPEN, CONNECTION_CLOSED, css_queue_packet(), css_read_header(), DEFAULT_HEADER_DATA, ERROR_ON_READ, NO_ERRORS, ntohl(), css_wait_queue_entry::rc, packet_header::request_id, css_conn_entry::status, and packet_header::type.
Referenced by css_connection_handler_thread().
int css_read_header | ( | CSS_CONN_ENTRY * | conn, |
const NET_HEADER * | local_header | ||
) |
Definition at line 1478 of file connection_sr.c.
References CLOSE_TYPE, CONNECTION_CLOSED, css_net_read_header(), packet_header::db_error, css_conn_entry::db_error, css_conn_entry::fd, packet_header::flags, css_conn_entry::invalidate_snapshot, NET_HEADER_FLAG_INVALIDATE_SNAPSHOT, NO_ERRORS, ntohl(), ntohs(), css_wait_queue_entry::rc, RECORD_TRUNCATED, packet_header::transaction_id, and packet_header::type.
Referenced by css_queue_command_packet(), and css_read_and_queue().
int css_receive_data | ( | CSS_CONN_ENTRY * | conn, |
unsigned short | req_id, | ||
char ** | buffer, | ||
int * | buffer_size, | ||
int | timeout | ||
) |
Definition at line 1571 of file connection_sr.c.
References ABORT_TYPE, assert, begin(), packet_header::buffer_size, CANT_ALLOC_BUFFER, CONN_OPEN, CONNECTION_CLOSED, css_net_read_header(), css_net_recv(), css_queue_unexpected_data_packet(), css_queue_unexpected_packet(), css_read_remaining_bytes(), css_return_data_buffer(), css_return_queued_data(), css_return_queued_data_timeout(), DATA_TYPE, packet_header::db_error, css_conn_entry::db_error, DEFAULT_HEADER_DATA, css_conn_entry::fd, free_and_init, NO_DATA_AVAILABLE, NO_ERRORS, ntohl(), NULL, rc, css_wait_queue_entry::rc, RECORD_TRUNCATED, packet_header::request_id, SERVER_ABORTED, css_conn_entry::status, TRACE, packet_header::transaction_id, and packet_header::type.
int css_receive_request | ( | CSS_CONN_ENTRY * | conn, |
unsigned short * | rid, | ||
int * | request, | ||
int * | buffer_size | ||
) |
Definition at line 1519 of file connection_sr.c.
References css_read_one_request(), css_return_queued_request(), rc, TRACE, and WRONG_PACKET_TYPE.
void css_register_handler_routines | ( | css_error_code(*)(CSS_CONN_ENTRY *conn) | connect_handler, |
CSS_THREAD_FN | request_handler, | ||
CSS_THREAD_FN | connection_error_handler | ||
) |
Definition at line 1022 of file connection_sr.c.
References css_Connect_handler, css_Connection_error_handler, and css_Request_handler.
Referenced by css_initialize_server_interfaces().
void css_remove_all_unexpected_packets | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 2978 of file connection_sr.c.
References css_conn_entry::abort_queue, assert, css_queue_remove_header(), css_remove_and_free_queue_entry(), css_remove_and_free_wait_queue_entry(), css_traverse_list(), css_conn_entry::data_queue, css_conn_entry::error_queue, NO_ERROR, NULL, css_conn_entry::request_queue, rmutex_lock, and rmutex_unlock.
Referenced by css_shutdown_conn().
|
static |
Definition at line 2953 of file connection_sr.c.
References css_free_queue_entry(), and TRAV_CONT_DELETE.
Referenced by css_remove_all_unexpected_packets().
|
static |
Definition at line 2966 of file connection_sr.c.
References css_free_wait_queue_entry(), and TRAV_CONT_DELETE.
Referenced by css_remove_all_unexpected_packets().
|
static |
Definition at line 2911 of file connection_sr.c.
References css_find_and_remove_queue_entry(), css_free_queue_entry(), css_conn_entry::data_queue, css_conn_entry::error_queue, and css_conn_entry::request_queue.
Referenced by css_send_abort_request().
|
static |
Definition at line 1795 of file connection_sr.c.
Referenced by css_queue_command_packet(), and css_return_queued_request().
|
static |
Definition at line 1653 of file connection_sr.c.
References assert, css_queue_entry::next, and NULL.
Referenced by css_add_queue_entry(), and css_free_queue_entry().
|
static |
Definition at line 1724 of file connection_sr.c.
References assert, css_wait_queue_entry::next, and NULL.
Referenced by css_add_wait_queue_entry(), and css_free_wait_queue_entry().
unsigned int css_return_eid_from_conn | ( | CSS_CONN_ENTRY * | conn, |
unsigned short | rid | ||
) |
Definition at line 1596 of file connection_sr.c.
References css_make_eid().
int css_return_queued_data | ( | CSS_CONN_ENTRY * | conn, |
unsigned short | rid, | ||
char ** | buffer, | ||
int * | bufsize, | ||
int * | rc | ||
) |
Definition at line 2832 of file connection_sr.c.
References css_return_queued_data_timeout().
|
static |
Definition at line 2656 of file connection_sr.c.
References assert, css_queue_entry::buffer, css_conn_entry::buffer_queue, CANT_ALLOC_BUFFER, clear_wait_queue_entry_and_free_buffer(), CONN_OPEN, CONNECTION_CLOSED, css_add_wait_queue_entry(), css_find_and_remove_queue_entry(), css_free_queue_entry(), css_conn_entry::data_queue, css_queue_entry::db_error, css_conn_entry::db_error, ER_CSS_PTHREAD_COND_TIMEDOUT, css_queue_entry::invalidate_snapshot, css_conn_entry::invalidate_snapshot, NO_DATA_AVAILABLE, NO_ERROR, NO_ERRORS, NULL, css_wait_queue_entry::rc, css_queue_entry::rc, rmutex_lock, rmutex_unlock, css_queue_entry::size, css_conn_entry::status, THREAD_CSS_QUEUE_RESUMED, THREAD_CSS_QUEUE_SUSPENDED, thread_get_thread_entry_info(), thread_lock_entry(), THREAD_RESUME_DUE_TO_INTERRUPT, thread_suspend_timeout_wakeup_and_unlock_entry(), thread_suspend_wakeup_and_unlock_entry(), thread_unlock_entry(), TIMEDOUT_ON_QUEUE, and css_queue_entry::transaction_id.
Referenced by css_receive_data(), and css_return_queued_data().
int css_return_queued_error | ( | CSS_CONN_ENTRY * | conn, |
unsigned short | request_id, | ||
char ** | buffer, | ||
int * | buffer_size, | ||
int * | rc | ||
) |
Definition at line 2847 of file connection_sr.c.
References assert, css_queue_entry::buffer, css_find_and_remove_queue_entry(), css_find_queue_entry(), css_free_queue_entry(), css_queue_remove_header_entry_ptr(), css_queue_entry::db_error, ER_LK_UNILATERALLY_ABORTED, css_conn_entry::error_queue, free_and_init, css_queue_entry::next, NO_ERROR, NULL, p, rc, rmutex_lock, rmutex_unlock, and css_queue_entry::size.
int css_return_queued_request | ( | CSS_CONN_ENTRY * | conn, |
unsigned short * | rid, | ||
int * | request, | ||
int * | buffer_size | ||
) |
Definition at line 2558 of file connection_sr.c.
References assert, css_wait_queue_entry::buffer, css_queue_entry::buffer, packet_header::buffer_size, CONN_CLOSED, CONN_OPEN, css_free_queue_entry(), css_remove_list_from_head(), css_retire_net_header_entry(), css_queue_entry::db_error, css_conn_entry::db_error, packet_header::function_code, css_queue_entry::invalidate_snapshot, css_conn_entry::invalidate_snapshot, css_queue_entry::key, NO_DATA_AVAILABLE, NO_ERROR, NO_ERRORS, ntohl(), ntohs(), NULL, p, css_wait_queue_entry::rc, css_conn_entry::request_queue, rmutex_lock, rmutex_unlock, css_conn_entry::status, and css_queue_entry::transaction_id.
Referenced by css_receive_request().
int css_send_abort_request | ( | CSS_CONN_ENTRY * | conn, |
unsigned short | request_id | ||
) |
Definition at line 1448 of file connection_sr.c.
References assert, CONN_OPEN, CONNECTION_CLOSED, css_abort_request(), css_remove_unexpected_packets(), NO_ERROR, NULL, css_wait_queue_entry::rc, rmutex_lock, rmutex_unlock, and css_conn_entry::status.
Referenced by css_send_abort_to_client().
void css_set_user_access_status | ( | const char * | db_user, |
const char * | host, | ||
const char * | program_name | ||
) |
Definition at line 3007 of file connection_sr.c.
References assert, CSECT_ACCESS_STATUS, csect_enter, csect_exit, css_Access_status_anchor, css_Num_access_user, last_access_status::db_user, last_access_status::host, INF_WAIT, last_access_status::next, NULL, last_access_status::program_name, and last_access_status::time.
Referenced by ssession_find_or_create_session().
void css_shutdown_conn | ( | CSS_CONN_ENTRY * | conn | ) |
Definition at line 357 of file connection_sr.c.
References css_conn_entry::abort_queue, assert, css_conn_entry::buffer_queue, CONN_CLOSED, CONN_CLOSING, CONN_OPEN, css_finalize_list(), css_free_net_header_list(), css_free_queue_entry_list(), css_free_wait_queue_list(), css_remove_all_unexpected_packets(), css_shutdown_socket(), css_conn_entry::data_queue, DB_EMPTY_SESSION, css_conn_entry::error_queue, css_conn_entry::fd, free_and_init, INVALID_SOCKET, IS_INVALID_SOCKET, NO_ERROR, NULL, css_conn_entry::request_queue, rmutex_lock, rmutex_unlock, css_conn_entry::session_id, css_conn_entry::status, and THREAD_STOP_WORKERS_EXCEPT_LOGWR.
Referenced by css_final_conn_list(), css_free_conn(), and hb_process_term().
void css_shutdown_conn_by_tran_index | ( | int | tran_index | ) |
Definition at line 1336 of file connection_sr.c.
References CONN_CLOSING, CONN_OPEN, END_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR, css_conn_entry::next, NULL, START_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR, and css_conn_entry::status.
Referenced by logtb_slam_transaction(), and xlogtb_kill_or_interrupt_tran().
|
static |
Definition at line 2101 of file connection_sr.c.
References wait_queue_search_arg::entry_ptr, css_wait_queue_entry::key, wait_queue_search_arg::key, p, wait_queue_search_arg::remove_entry, TRAV_CONT, TRAV_STOP, and TRAV_STOP_DELETE.
Referenced by css_find_and_remove_wait_queue_entry().
|
static |
Definition at line 140 of file connection_sr.c.
Referenced by css_free_user_access_status(), and css_set_user_access_status().
CSS_CONN_ENTRY* css_Active_conn_anchor = NULL |
Definition at line 134 of file connection_sr.c.
Referenced by css_block_all_active_conn(), css_insert_into_active_conn_list(), and session_get_session_tz_region().
|
static |
Definition at line 126 of file connection_sr.c.
Referenced by css_get_next_client_id().
|
static |
Definition at line 127 of file connection_sr.c.
Referenced by css_get_next_client_id().
CSS_CONN_ENTRY* css_Conn_array = NULL |
Definition at line 133 of file connection_sr.c.
Referenced by css_cleanup_server_queues(), and css_send_reply_and_data_to_client().
|
static |
Definition at line 128 of file connection_sr.c.
Referenced by css_decrement_num_conn(), and css_increment_num_conn().
css_error_code(* css_Connect_handler) (CSS_CONN_ENTRY *) = NULL |
Definition at line 144 of file connection_sr.c.
Referenced by css_is_shutdown_timeout_expired(), css_process_new_client(), and css_register_handler_routines().
CSS_THREAD_FN css_Connection_error_handler = NULL |
Definition at line 150 of file connection_sr.c.
Referenced by css_register_handler_routines().
|
static |
Definition at line 129 of file connection_sr.c.
Referenced by css_dealloc_conn(), and css_make_conn().
|
static |
Definition at line 124 of file connection_sr.c.
Referenced by css_get_next_client_id().
int css_Num_access_user = 0 |
Definition at line 141 of file connection_sr.c.
Referenced by css_free_user_access_status(), css_set_user_access_status(), and css_user_access_status_start_scan().
|
static |
Definition at line 135 of file connection_sr.c.
Referenced by css_final_conn_list(), css_free_conn(), css_get_session_ids_for_active_connections(), css_insert_into_active_conn_list(), and css_print_conn_list().
|
static |
Definition at line 130 of file connection_sr.c.
Referenced by css_dealloc_conn(), css_get_num_free_conn(), css_init_conn_list(), css_make_conn(), and css_print_free_conn_list().
|
static |
Definition at line 131 of file connection_sr.c.
Referenced by css_dealloc_conn(), css_final_conn_list(), css_free_conn(), css_get_next_client_id(), css_init_conn_list(), and css_insert_into_active_conn_list().
CSS_THREAD_FN css_Request_handler = NULL |
Definition at line 147 of file connection_sr.c.
Referenced by css_register_handler_routines().
SYNC_RWLOCK css_Rwlock_active_conn_anchor |
Definition at line 137 of file connection_sr.c.
SYNC_RWLOCK css_Rwlock_free_conn_anchor |
Definition at line 138 of file connection_sr.c.