Remove redundant DCB state DCB_STATE_FREED, remove obsolete assertion from poll.c, tidy up.
This commit is contained in:
@ -409,7 +409,6 @@ dcb_process_zombies(int threadid)
|
||||
DCB *zombiedcb, *previousdcb;
|
||||
DCB *listofdcb = NULL;
|
||||
DCB *dcb = NULL;
|
||||
bool succp = false;
|
||||
|
||||
/**
|
||||
* Perform a dirty read to see if there is anything in the queue.
|
||||
@ -470,15 +469,14 @@ bool succp = false;
|
||||
|
||||
LOGIF(LD, (skygw_log_write_flush(
|
||||
LOGFILE_DEBUG,
|
||||
"%lu [dcb_process_zombies] Remove dcb "
|
||||
"%lu [%s] Remove dcb "
|
||||
"%p fd %d in state %s from the "
|
||||
"list of zombies.",
|
||||
pthread_self(),
|
||||
__func__,
|
||||
zombiedcb,
|
||||
zombiedcb->fd,
|
||||
STRDCBSTATE(zombiedcb->state))));
|
||||
ss_info_dassert(zombiedcb->state == DCB_STATE_ZOMBIE,
|
||||
"dcb not in DCB_STATE_ZOMBIE state.");
|
||||
/*<
|
||||
* Move zombie dcb to linked list of victim dcbs.
|
||||
* The variable dcb is used to hold the last DCB
|
||||
@ -553,15 +551,16 @@ dcb_process_victim_queue(DCB *listofdcb)
|
||||
dcb,
|
||||
STRDCBSTATE(dcb->state))));
|
||||
}
|
||||
if ((dcb->state == DCB_STATE_POLLING && !dcb_maybe_add_persistent(dcb))
|
||||
|| (dcb->state == DCB_STATE_LISTENING))
|
||||
{
|
||||
dcb_close_finish(dcb);
|
||||
else {
|
||||
/* Must be DCB_STATE_POLLING */
|
||||
if (dcb_maybe_add_persistent(dcb))
|
||||
{
|
||||
/* Have taken DCB into persistent pool, no further killing */
|
||||
continue;
|
||||
}
|
||||
}
|
||||
dcb_close_finish(dcb);
|
||||
}
|
||||
|
||||
/* If DCB was put into persistent queue, will no longer be flagged zombie */
|
||||
if (!dcb->dcb_is_zombie) continue;
|
||||
|
||||
if (dcb->fd > 0)
|
||||
{
|
||||
@ -603,10 +602,10 @@ dcb_process_victim_queue(DCB *listofdcb)
|
||||
&tls_log_info.li_sesid,
|
||||
&tls_log_info.li_enabled_logs)));
|
||||
|
||||
dcb->state = DCB_STATE_DISCONNECTED;
|
||||
nextdcb = dcb->memdata.next;
|
||||
dcb_final_free(dcb);
|
||||
dcb = nextdcb;
|
||||
dcb->state = DCB_STATE_DISCONNECTED;
|
||||
nextdcb = dcb->memdata.next;
|
||||
dcb_final_free(dcb);
|
||||
dcb = nextdcb;
|
||||
}
|
||||
/** Reset threads session data */
|
||||
LOGIF(LT, tls_log_info.li_sesid = 0);
|
||||
@ -732,7 +731,6 @@ dcb_connect(SERVER *server, SESSION *session, const char *protocol)
|
||||
session->client,
|
||||
session->client->fd)));
|
||||
}
|
||||
ss_dassert(dcb->fd == DCBFD_CLOSED); /*< must be uninitialized at this point */
|
||||
/**
|
||||
* Successfully connected to backend. Assign file descriptor to dcb
|
||||
*/
|
||||
@ -2281,8 +2279,6 @@ gw_dcb_state2string (int state)
|
||||
return "DCB for listening socket";
|
||||
case DCB_STATE_DISCONNECTED:
|
||||
return "DCB socket closed";
|
||||
case DCB_STATE_FREED:
|
||||
return "DCB memory could be freed";
|
||||
case DCB_STATE_ZOMBIE:
|
||||
return "DCB Zombie";
|
||||
case DCB_STATE_UNDEFINED:
|
||||
|
||||
@ -866,7 +866,6 @@ unsigned long qtime;
|
||||
ss_debug(spinlock_acquire(&dcb->dcb_initlock);)
|
||||
ss_dassert(dcb->state != DCB_STATE_ALLOC);
|
||||
ss_dassert(dcb->state != DCB_STATE_DISCONNECTED);
|
||||
ss_dassert(dcb->state != DCB_STATE_FREED);
|
||||
ss_debug(spinlock_release(&dcb->dcb_initlock);)
|
||||
|
||||
LOGIF(LD, (skygw_log_write(
|
||||
|
||||
@ -179,7 +179,6 @@ typedef enum {
|
||||
DCB_STATE_DISCONNECTED, /*< The socket is now closed */
|
||||
DCB_STATE_NOPOLLING, /*< Removed from poll mask */
|
||||
DCB_STATE_ZOMBIE, /*< DCB is no longer active, waiting to free it */
|
||||
DCB_STATE_FREED /*< Memory freed */
|
||||
} dcb_state_t;
|
||||
|
||||
typedef enum {
|
||||
|
||||
@ -206,9 +206,8 @@ typedef enum skygw_chk_t {
|
||||
((s) == DCB_STATE_LISTENING ? "DCB_STATE_LISTENING" : \
|
||||
((s) == DCB_STATE_DISCONNECTED ? "DCB_STATE_DISCONNECTED" : \
|
||||
((s) == DCB_STATE_NOPOLLING ? "DCB_STATE_NOPOLLING" : \
|
||||
((s) == DCB_STATE_FREED ? "DCB_STATE_FREED" : \
|
||||
((s) == DCB_STATE_ZOMBIE ? "DCB_STATE_ZOMBIE" : \
|
||||
((s) == DCB_STATE_UNDEFINED ? "DCB_STATE_UNDEFINED" : "DCB_STATE_UNKNOWN"))))))))
|
||||
((s) == DCB_STATE_ZOMBIE ? "DCB_STATE_ZOMBIE" : \
|
||||
((s) == DCB_STATE_UNDEFINED ? "DCB_STATE_UNDEFINED" : "DCB_STATE_UNKNOWN"))))))))
|
||||
|
||||
#define STRSESSIONSTATE(s) ((s) == SESSION_STATE_ALLOC ? "SESSION_STATE_ALLOC" : \
|
||||
((s) == SESSION_STATE_READY ? "SESSION_STATE_READY" : \
|
||||
|
||||
Reference in New Issue
Block a user