Please, help! My algo is getting stuck after running for some time.

Here is the simplified code that causes this:

import itertools

import pandas as pd

STOCKS = ['A', 'AABA', 'AAPL', 'ABT', 'ALGN', 'AMAT', 'AMZN', 'AVGO', 'AVY', 'BA',
'BAC', 'BAX', 'BDX', 'BHGE', 'BKNG', 'C', 'CA', 'CAT', 'CBS', 'CLX',
'CREE', 'CTSH', 'CVX', 'DE', 'DOV', 'DWDP', 'DXC', 'DXCM', 'ELY', 'EMN',
'ERIC', 'ESRX', 'ETN', 'EW', 'GE', 'GM', 'GRMN', 'HAL', 'HIG', 'HMC',
'HON', 'HPQ', 'HRS', 'IBM', 'INTC', 'IP', 'ITW', 'JNJ', 'JPM', 'KMB',
'KO', 'LMT', 'MA', 'MAT', 'MDLZ', 'MDT', 'MET', 'MMM', 'MON', 'MSFT',
'MSI', 'MU', 'NCR', 'NKE', 'NOC', 'ORCL', 'PFE', 'PG', 'PGR', 'PRU',
'PX', 'QCOM', 'ROK', 'RTN', 'SEE', 'SLB', 'SNE', 'SON', 'STX', 'SYK',
'T', 'TEL', 'TER', 'TEVA', 'TGT', 'TXN', 'TXT', 'UNCH', 'UNCH', 'UNH',
'UTX', 'V', 'VRX', 'VZ', 'WHR', 'WRK', 'WY', 'XLNX', 'XOM', 'XRX']

class TestAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2003, 7, 1)
self.SetEndDate(2018, 4, 1)

self.symbols = [self.AddEquity(stock, Resolution.Daily).Symbol \
for stock in STOCKS]

self.TimeRules.BeforeMarketClose("AAPL", 60),

self.SetWarmUp(300, Resolution.Daily)

def justdoit(self):
self.Debug('Time: %s' % self.Time)
for period1, period2 in itertools.product([21, 42, 63, 84], [168, 189, 210]):
hist1 = self.History(STOCKS, period1, Resolution.Daily).close.unstack(level=0)
hist2 = self.History(STOCKS, period2, Resolution.Daily).close.unstack(level=0)


As you can see the code calls History and converts the output to the dataframe. There is nothing special in it except that it's done in a loop for combinations of periods. It works just fine for some time and then it simply stucks without producing any errors. Usually it happens after 16 iterations. It's 100% reproducible.

Any ideas what could be the reason of this?