Merge pull request #4701 from taosdata/feature/crash_gen
Resolving TD-2499, ensuring crash_gen tool releases all resources
This commit is contained in:
commit
236e527309
|
@ -2224,22 +2224,25 @@ class ClientManager:
|
||||||
if svcMgr: # gConfig.auto_start_service:
|
if svcMgr: # gConfig.auto_start_service:
|
||||||
svcMgr.stopTaosServices()
|
svcMgr.stopTaosServices()
|
||||||
svcMgr = None
|
svcMgr = None
|
||||||
|
|
||||||
|
|
||||||
|
# Release global variables
|
||||||
|
gConfig = None
|
||||||
|
gSvcMgr = None
|
||||||
|
logger = None
|
||||||
|
|
||||||
|
thPool = None
|
||||||
|
dbManager.cleanUp() # destructor wouldn't run in time
|
||||||
|
dbManager = None
|
||||||
|
|
||||||
# Print exec status, etc., AFTER showing messages from the server
|
# Print exec status, etc., AFTER showing messages from the server
|
||||||
self.conclude()
|
self.conclude()
|
||||||
# print("TC failed (2) = {}".format(self.tc.isFailed()))
|
# print("TC failed (2) = {}".format(self.tc.isFailed()))
|
||||||
# Linux return code: ref https://shapeshed.com/unix-exit-codes/
|
# Linux return code: ref https://shapeshed.com/unix-exit-codes/
|
||||||
ret = 1 if self.tc.isFailed() else 0
|
ret = 1 if self.tc.isFailed() else 0
|
||||||
self.tc.cleanup()
|
self.tc.cleanup()
|
||||||
|
|
||||||
# Release global variables
|
|
||||||
gConfig = None
|
|
||||||
gSvcMgr = None
|
|
||||||
logger = None
|
|
||||||
|
|
||||||
# Release variables here
|
# Release variables here
|
||||||
self.tc = None
|
self.tc = None
|
||||||
thPool = None
|
|
||||||
dbManager = None
|
|
||||||
|
|
||||||
gc.collect() # force garbage collection
|
gc.collect() # force garbage collection
|
||||||
# h = hpy()
|
# h = hpy()
|
||||||
|
|
|
@ -394,6 +394,7 @@ class DbManager():
|
||||||
cType == 'native') else DbConn.createRest(dbTarget)
|
cType == 'native') else DbConn.createRest(dbTarget)
|
||||||
try:
|
try:
|
||||||
self._dbConn.open() # may throw taos.error.ProgrammingError: disconnected
|
self._dbConn.open() # may throw taos.error.ProgrammingError: disconnected
|
||||||
|
Logging.debug("DbManager opened DB connection...")
|
||||||
except taos.error.ProgrammingError as err:
|
except taos.error.ProgrammingError as err:
|
||||||
# print("Error type: {}, msg: {}, value: {}".format(type(err), err.msg, err))
|
# print("Error type: {}, msg: {}, value: {}".format(type(err), err.msg, err))
|
||||||
if (err.msg == 'client disconnected'): # cannot open DB connection
|
if (err.msg == 'client disconnected'): # cannot open DB connection
|
||||||
|
@ -412,6 +413,10 @@ class DbManager():
|
||||||
# Moved to Database()
|
# Moved to Database()
|
||||||
# self._stateMachine = StateMechine(self._dbConn)
|
# self._stateMachine = StateMechine(self._dbConn)
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
''' Release the underlying DB connection upon deletion of DbManager '''
|
||||||
|
self.cleanUp()
|
||||||
|
|
||||||
def getDbConn(self):
|
def getDbConn(self):
|
||||||
return self._dbConn
|
return self._dbConn
|
||||||
|
|
||||||
|
@ -438,5 +443,8 @@ class DbManager():
|
||||||
return "table_{}".format(tblNum)
|
return "table_{}".format(tblNum)
|
||||||
|
|
||||||
def cleanUp(self):
|
def cleanUp(self):
|
||||||
self._dbConn.close()
|
if self._dbConn:
|
||||||
|
self._dbConn.close()
|
||||||
|
self._dbConn = None
|
||||||
|
Logging.debug("DbManager closed DB connection...")
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import threading
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
import taos
|
import taos
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ class Logging:
|
||||||
# global misc.logger
|
# global misc.logger
|
||||||
_logger = logging.getLogger('CrashGen') # real logger
|
_logger = logging.getLogger('CrashGen') # real logger
|
||||||
_logger.addFilter(LoggingFilter())
|
_logger.addFilter(LoggingFilter())
|
||||||
ch = logging.StreamHandler()
|
ch = logging.StreamHandler(sys.stdout) # Ref: https://stackoverflow.com/questions/14058453/making-python-loggers-output-all-messages-to-stdout-in-addition-to-log-file
|
||||||
_logger.addHandler(ch)
|
_logger.addHandler(ch)
|
||||||
|
|
||||||
# Logging adapter, to be used as a logger
|
# Logging adapter, to be used as a logger
|
||||||
|
|
|
@ -19,5 +19,5 @@ if __name__ == "__main__":
|
||||||
mExec.init()
|
mExec.init()
|
||||||
exitCode = mExec.run()
|
exitCode = mExec.run()
|
||||||
|
|
||||||
print("Exiting with code: {}".format(exitCode))
|
print("\nCrash_Gen is now exiting with status code: {}".format(exitCode))
|
||||||
sys.exit(exitCode)
|
sys.exit(exitCode)
|
||||||
|
|
Loading…
Reference in New Issue