diff --git a/flowspec/tasks.py b/flowspec/tasks.py index bca9e4eb6bafcdddca22c70176f1ea467fb31b0f..e2ce3f72601cd38772f436c3c1293aa38ff11709 100644 --- a/flowspec/tasks.py +++ b/flowspec/tasks.py @@ -345,7 +345,8 @@ import os import signal def handleSIGCHLD(signal, frame): - logger.info("handleSIGCHLD(): reaping childs") + pid = os.getpid() + logger.info("handleSIGCHLD(): pid="+str(pid)+" reaping childs") os.waitpid(-1, os.WNOHANG) def snmp_lock_create(wait=0): @@ -376,15 +377,18 @@ def snmp_lock_remove(): logger.error("snmp_lock_remove(): failed "+str(e)) def exit_process(): - import sys + #import sys pid = os.getpid() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+")") - exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+"), after exit") - sys.exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+"), after sys.exit") + + #logger.info("exit_process(): before exit() in child process (pid="+str(pid)+")") + #exit() + + #logger.info("exit_process(): before sys.exit() in child process (pid="+str(pid)+")") + #sys.exit() + + logger.info("exit_process(): before os._exit() in child process (pid="+str(pid)+")") os._exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+"), after os._exit") + logger.info("exit_process(): before os._exit() in child process (pid="+str(pid)+")") #@shared_task(ignore_result=True, time_limit=580, soft_time_limit=550) @shared_task(ignore_result=True, max_retries=0) @@ -404,21 +408,28 @@ def poll_snmp_statistics(): elif npid > 0: logger.info("poll_snmp_statistics(): returning in parent process (pid="+str(pid)+", npid="+str(npid)+")") else: - logger.info("poll_snmp_statistics(): in child process (pid="+str(pid)+", npid="+str(npid)+")") + ppid = pid + pid = os.getpid() + logger.info("poll_snmp_statistics(): in child process (pid="+str(pid)+", ppid="+str(ppid)+")") try: snmpstats.poll_snmp_statistics() except Exception as e: - logger.error("poll_snmp_statistics(): exception occured in snmp poll (pid="+str(pid)+", npid="+str(npid)+"): "+str(e)) + logger.error("poll_snmp_statistics(): exception occured in snmp poll (pid="+str(pid)+", ppid="+str(ppid)+"): "+str(e)) snmp_lock_remove() #exit_process() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+")") - exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after exit") - import sys - sys.exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after sys.exit") - os._exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after os._exit") + + # not used anymore: will lead to exit of parent process + #logger.info("poll_snmp_statistics(): before exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") + #exit() + + # not used anymore: will lead to exit of parent process + #logger.info("poll_snmp_statistics(): before sys.exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") + #import sys + #sys.exit() + + logger.info("poll_snmp_statistics(): before os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") + os._exit(0) + logger.info("poll_snmp_statistics(): after os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") @shared_task(ignore_result=True, max_retries=0) def snmp_add_initial_zero_value(rule_id, zero_or_null=True): @@ -439,7 +450,9 @@ def snmp_add_initial_zero_value(rule_id, zero_or_null=True): elif npid > 0: logger.info("snmp_add_initial_zero_value(): returning in parent process (pid="+str(pid)+", npid="+str(npid)+")") else: - logger.info("snmp_add_initial_zero_value(): in child process (pid="+str(pid)+", npid="+str(npid)+")") + ppid = pid + pid = os.getpid() + logger.info("snmp_add_initial_zero_value(): in child process (pid="+str(pid)+", ppid="+str(ppid)+")") try: snmpstats.add_initial_zero_value(rule_id, zero_or_null) @@ -448,14 +461,18 @@ def snmp_add_initial_zero_value(rule_id, zero_or_null=True): logger.error("snmp_add_initial_zero_value(): rule_id="+str(rule_id)+","+str(zero_or_null)+" failed: "+str(e)) #exit_process() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+")") - exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after exit") - sys.exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after sys.exit") - os._exit() - logger.info("exit_process(): before exit in child process (pid="+str(pid)+", npid="+str(npid)+"), after os._exit") + # not used anymore: will lead to exit of parent process + #logger.info("snmp_add_initial_zero_value(): before exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") + #exit() + + # not used anymore: will lead to exit of parent process + #logger.info("snmp_add_initial_zero_value(): before sys.exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") + #sys.exit() + + logger.info("snmp_add_initial_zero_value(): before os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") + os._exit(0) + logger.info("snmp_add_initial_zero_value(): after os._exit() in child process (pid="+str(pid)+", ppid="+str(ppid)+")") @pytest.mark.skip @shared_task(ignore_result=True,default_retry_delay=5,max_retries=2,autoretry_for=(TimeoutError,)) diff --git a/flowspy/settings.py.dist b/flowspy/settings.py.dist index 8f9f5144f0b434f4240d6724c2c63cad691b6008..60d9784f97bcaefbedd0f142d9f892d193c5a6db 100644 --- a/flowspy/settings.py.dist +++ b/flowspy/settings.py.dist @@ -79,6 +79,9 @@ LOG_FILE_LOCATION = "/srv/flowspy/log/" LOGGING_FORMAT_DEFAULT = '%(asctime)s %(name)s %(levelname)s: %(message)s' #LOGGING_FORMAT_DEFAULT = '%(processName)s[%(process)d] %(asctime)s %(name)s %(levelname)s: %(message)s' +#CELERYD_LOG_FORMAT = LOGGING_FORMAT_DEFAULT +#CELERYD_TASK_LOG_FORMAT = CELERYD_LOG_FORMAT + # "error" | "warn" | "info" | "debug" LOG_LEVEL = "info" @@ -645,6 +648,7 @@ ALLOW_DELETE_FULL_FOR_USER_LIST = [ # with the same addresses). By default it is enabled (True). #DISABLE_RULE_OVERLAP_CHECK = False ROUTES_DUPLICATES_CHECKING = True +ROUTES_DUPLICATES_CHECKING__ENFORCED_FOR_ALREADY_EXISTING_RULES = False ############################################################################## ############################################################################## @@ -655,4 +659,10 @@ ENABLE_SETUP_VIEW = False ############################################################################## ############################################################################## +#PROXY_CLASS="proxy_netconf_junos" +PROXY_CLASS="proxy_exabgp" + +############################################################################## +############################################################################## + from flowspy.settings_local import *