Thread getting stuck\hang
Iranna Mathapati
iranna.gani28 at gmail.com
Thu Apr 27 12:46:06 EDT 2017
Hi Dennis,
all function arguments declare as global and pass it to the function.
All three thread is completed the execution part and after completion of
execution its stuck/hang the programme.
*def
validate_traffic_stats_st(FT_item,RT_item,forward_path_list,return_path_list,nat_type_list,pkt_st)*
:
global flag1
flag1 = 1
log.info('Starting Static NAT forward Traffic Test...')
returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount {1} -profile
{2}'.format(FT_item,pkt_st,itgenProfile))
time.sleep(5)
global_stats_list = []
temp = 0
forward_ip_list = []
return_ip_list = []
global count_st_Rx,count_st_in_Rx,count_st_out_Rx
count_st_Rx = 0
count_st_in_Rx = 0
count_st_out_Rx = 0
for data in returndict['txrxstats']['rx'].keys():
if "TI01" in data:
count_st_Rx += int(returndict['txrxstats']['rx'][data] )
count_st_in_Rx += int(returndict['txrxstats']['rx'][data] )
elif "TI22" in data:
count_st_Rx += int(returndict['txrxstats']['rx'][data] )
count_st_out_Rx += int(returndict['txrxstats']['rx'][data] )
global count_st_Tx,count_st_in_Tx,count_st_out_Tx
count_st_Tx = 0
count_st_in_Tx = 0
count_st_out_Tx = 0
for data in returndict['txrxstats']['tx'].keys():
if "TI01" in data:
count_st_Tx += int(returndict['txrxstats']['tx'][data] )
count_st_in_Tx += int(returndict['txrxstats']['tx'][data] )
elif "TI22" in data:
count_st_Tx += int(returndict['txrxstats']['tx'][data] )
count_st_out_Tx += int(returndict['txrxstats']['tx'][data] )
for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
global_stats_list = []
for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
output=listtostr(returndict['txrxstats']['rx'])
if re.search('{0}'.format(translation_ip),output,re.I):
pass
else:
global_stats_list.append(translation_ip)
if global_stats_list == []:
log.info('itgen traffic validation for {0} forward path -
verified'.format(nat_type))
forward_ip_list = []
return_ip_list = []
else:
log.error('{0} forward path itgen verification
failed'.format(nat_type))
flag1 = 0
return flag1
log.info("Trafiic validation for NAT return path starting")
returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount 1000 -profile
{1}'.format(RT_item,itgenProfile))
time.sleep(5)
local_stats_list = []
for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
local_stats_list = []
for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
output=listtostr(returndict['txrxstats']['rx'])
if re.search('{0}'.format(return_ip),output,re.I):
pass
else:
local_stats_list.append(return_ip)
if local_stats_list == []:
log.info('itgen traffic validation for {0} return path -
verified'.format(nat_type))
forward_ip_list = []
return_ip_list = []
else:
log.error('{0} return path itgen verification
failed'.format(nat_type))
flag1 = 0
return flag1
return
flag1,count_st_Rx,count_st_in_Rx,count_st_out_Rx,count_st_Tx,count_st_in_Tx,count_st_out_Tx
*def
validate_traffic_stats_dy(FT_item,RT_item,forward_path_list,return_path_list,nat_type_list,pkt_dy_1):*
global flag2
flag2 = 1
log.info('Starting Dynamic NAT forward Traffic Test...')
returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount {1} -profile
{2}'.format(FT_item,pkt_dy_1,itgenProfile))
time.sleep(5)
global_stats_list = []
forward_ip_list = []
return_ip_list = []
global count_dy_Rx,count_dy_in_Rx,count_dy_out_Rx
count_dy_Rx = 0
count_dy_in_Rx = 0
count_dy_out_Rx = 0
for data in returndict['txrxstats']['rx'].keys():
if "TI05" in data:
count_dy_Rx += int(returndict['txrxstats']['rx'][data] )
count_dy_in_Rx += int(returndict['txrxstats']['rx'][data] )
elif "TI66" in data:
count_dy_Rx += int(returndict['txrxstats']['rx'][data] )
count_dy_out_Rx += int(returndict['txrxstats']['rx'][data] )
global count_dy_Tx,count_dy_in_Tx,count_dy_out_Tx
count_dy_Tx = 0
count_dy_in_Tx = 0
count_dy_out_Tx = 0
for data in returndict['txrxstats']['tx'].keys():
if "TI05" in data:
count_dy_Tx += int(returndict['txrxstats']['tx'][data] )
count_dy_in_Tx += int(returndict['txrxstats']['tx'][data] )
elif "TI66" in data:
count_dy_Tx += int(returndict['txrxstats']['tx'][data] )
count_dy_out_Tx += int(returndict['txrxstats']['tx'][data] )
for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
global_stats_list = []
for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
output=listtostr(returndict['txrxstats']['rx'])
if re.search('{0}'.format(translation_ip),output,re.I):
pass
else:
global_stats_list.append(translation_ip)
if global_stats_list == []:
log.info('itgen traffic validation for {0} forward path -
verified'.format(nat_type))
forward_ip_list = []
return_ip_list = []
else:
log.error('{0} forward path itgen verification
failed'.format(nat_type))
flag2 = 0
return flag2
log.info("Trafiic validation for NAT return path starting")
returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount 1000 -profile
{1}'.format(RT_item,itgenProfile))
time.sleep(5)
local_stats_list = []
for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
local_stats_list = []
for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
output=listtostr(returndict['txrxstats']['rx'])
if re.search('{0}'.format(return_ip),output,re.I):
pass
else:
local_stats_list.append(return_ip)
if local_stats_list == []:
log.info('itgen traffic validation for {0} return path -
verified'.format(nat_type))
forward_ip_list = []
return_ip_list = []
else:
log.error('{0} return path itgen verification
failed'.format(nat_type))
flag2 = 0
return flag2
return
flag2,count_dy_Rx,count_dy_in_Rx,count_dy_out_Rx,count_dy_Tx,count_dy_in_Tx,count_dy_out_Tx
*def* *delete_new_dynamic_nat_conf():*
global pool_dy_in_new,acl_name_dy_in_new,pool_name_dy_in_new
direction_in = 'inside'
log.info("Deleting Dynamic NAT new entries")
delete_dynamic_nat_conf(uut2_hdl2, direction_in,
acl_name_dy_in_new,
pool_name_dy_in_new,
)
#remove pool and acl name
log.info('Removing access-list')
deleteACL(uut2_hdl2, log, '-type {0} -name {1}'.format('ip',
acl_name_dy_in_new))
log.info('Unconfiguring pool on UUT')
add_remove_pool(uut2_hdl2, 'unconfigure', pool_dy_in_new)
return 1
On Thu, Apr 27, 2017 at 9:04 PM, Dennis Lee Bieber <wlfraed at ix.netcom.com>
wrote:
> On Thu, 27 Apr 2017 19:48:24 +0530, Iranna Mathapati
> <iranna.gani28 at gmail.com> declaimed the following:
>
> >Hi Team,
> >
> >I have python code that creates thread.Sometimes it works, sometimes it
> >gets stuck once its finish its execution part. still not yet cannot find
> >any difference between when it works or when it gets stuck. Please help.
> >
> >
> >sniffer1 =
> >threading.Thread(target=validate_traffic_stats_dy,
> args=(FT_item_dy,RT_item_dy,forward_path_list_dy,return_
> path_list_dy,nat_type_list_dy,pkt_dy_1,))
> >
> >sniffer2 =
> >threading.Thread(target=validate_traffic_stats_st,
> args=(FT_item_st,RT_item_st,forward_path_list_st,return_
> path_list_st,nat_type_list_st,pkt_st,))
> >
> >sniffer1.start()
> >
> >sniffer2.start()
> >
> >sniffer3 = threading.Thread(target=delete_new_dynamic_nat_conf)
> >
> >sniffer3.start()
> >
>
> So where is the code for the three thread functions? Where do the
> various argument values come from?
> --
> Wulfraed Dennis Lee Bieber AF6VN
> wlfraed at ix.netcom.com HTTP://wlfraed.home.netcom.com/
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>
More information about the Python-list
mailing list