These are chat archives for yandex/yandex-tank

21st
May 2019
Sergey Chernyaev
@Sirozha1337
May 21 2019 08:03 UTC
Увеличил продолжительность теста до двух минут и попробовал поиграться с параметрами "buffered_seconds" и "shutdown_timeout", но никакого эффекта. Тест все ещё зависает на "Waiting for gun drain to finish". Есть ли какой-то пример сценария для JMeter и config.yaml, который работает у вас? Может проблема в том, что я работаю с яндекс-танком внутри контейнера.
Sergey Chernyaev
@Sirozha1337
May 21 2019 11:36 UTC

Я нашёл в чем ошибка. В tank_aggregator.py:

if self.stats_reader:
      logger.debug('Closing stats reader')
      self.stats_reader.close()
if self.drain:
       logger.debug('Waiting for gun drain to finish')
       self.drain.join()
       logger.debug('Waiting for stats drain to finish')
       self.stats_drain.join()

Забыли закрыть self.reader, если добавить:

if self.reader:
       self.reader.close()
if self.drain:
       logger.debug('Waiting for gun drain to finish')
       self.drain.join()
       logger.debug('Waiting for stats drain to finish')
       self.stats_drain.join()

То self.drain.join() выполняется как надо и не вешает танк.

Sergey Chernyaev
@Sirozha1337
May 21 2019 11:47 UTC
Покопал ещё, оказывается эти строки там были, но их убрали в коммите: 47623dd4b7a08e5383cbb4144eecc13edbdf3e96
Видимо закрытие reader нужно перенести по аналогии с Bfg в plugins/JMeter/plugin.py
В функции end_test и is_test_finished