From 047cfab3d5769625611bdec281395a09beca9655 Mon Sep 17 00:00:00 2001 From: Ruda Porto Filgueiras Date: Thu, 11 Oct 2018 13:59:17 +0200 Subject: [PATCH 1/6] Added travis and tox configuration for pypy 2.7 and 3.5. --- .travis.yml | 4 ++++ tox.ini | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ac94a88..f1eea47 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,10 @@ matrix: env: TOXENV=py35 - python: 3.6 env: TOXENV=py36 + - python: pypy2.7 + env: TOXENV=pypy27 + - python: pypy3.5 + env: TOXENV=pypy35 install: - pip install tox diff --git a/tox.ini b/tox.ini index e45862c..281ac91 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.7.2 -envlist = flake8, py3flake8, py27, py33, py34, py35, py36 +envlist = flake8, py3flake8, py27, py33, py34, py35, py36, pypy27, pypy35 skip_missing_interpreters = true [testenv] From 395e4f2e7986db78821b96dd3239d515ca2d1ef4 Mon Sep 17 00:00:00 2001 From: Ruda Porto Filgueiras Date: Thu, 11 Oct 2018 14:11:25 +0200 Subject: [PATCH 2/6] Fix intreperter names for pypy. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f1eea47..333aaac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,10 +17,10 @@ matrix: env: TOXENV=py35 - python: 3.6 env: TOXENV=py36 - - python: pypy2.7 + - python: pypy env: TOXENV=pypy27 - python: pypy3.5 - env: TOXENV=pypy35 + env: TOXENV=pypy3 install: - pip install tox From 1aa324b08cc5eea3440d5fbd6b3cf492ddb9e6ef Mon Sep 17 00:00:00 2001 From: Ruda Porto Filgueiras Date: Thu, 11 Oct 2018 14:14:38 +0200 Subject: [PATCH 3/6] Changing again --- .travis.yml | 4 ++-- tox.ini | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 333aaac..8b87bef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,8 @@ matrix: env: TOXENV=py35 - python: 3.6 env: TOXENV=py36 - - python: pypy - env: TOXENV=pypy27 + - python: pypy2.7 + env: TOXENV=pypy - python: pypy3.5 env: TOXENV=pypy3 diff --git a/tox.ini b/tox.ini index 281ac91..0f6f3f0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.7.2 -envlist = flake8, py3flake8, py27, py33, py34, py35, py36, pypy27, pypy35 +envlist = flake8, py3flake8, py27, py33, py34, py35, py36, pypy, pypy3 skip_missing_interpreters = true [testenv] From 97eabc11377d8106ef76fa516c6a036a382f4d29 Mon Sep 17 00:00:00 2001 From: Ruda Porto Filgueiras Date: Thu, 11 Oct 2018 15:53:16 +0200 Subject: [PATCH 4/6] Added alternative way to limit max number of logs when running in pypy since sys.getsizeof raises TypeError. --- .travis.yml | 2 +- logzio/sender.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8b87bef..844b60c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ matrix: env: TOXENV=py35 - python: 3.6 env: TOXENV=py36 - - python: pypy2.7 + - python: pypy env: TOXENV=pypy - python: pypy3.5 env: TOXENV=pypy3 diff --git a/logzio/sender.py b/logzio/sender.py index 7b51d53..64cc4bd 100644 --- a/logzio/sender.py +++ b/logzio/sender.py @@ -156,7 +156,12 @@ class LogzioSender: current_size = 0 while not self.queue.empty(): current_log = self.queue.get() - current_size += sys.getsizeof(current_log) + try: + current_size += sys.getsizeof(current_log) + except TypeError: + # pypy do not support sys.getsizeof + current_size += len(current_log) * 4 + logs_list.append(current_log) if current_size >= MAX_BULK_SIZE_IN_BYTES: break From 04bfdd093c11c1cd9b7dbaf31b2a9e8ab9335595 Mon Sep 17 00:00:00 2001 From: Ruda Porto Filgueiras Date: Thu, 11 Oct 2018 16:01:17 +0200 Subject: [PATCH 5/6] Removing travis check for python 3.3 since tox do not support it and most libraries already removed support for the old python 3.3. --- .travis.yml | 2 -- tox.ini | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 844b60c..00f7484 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,8 +9,6 @@ matrix: env: TOXENV=py3flake8 - python: 2.7 env: TOXENV=py27 - - python: 3.3 - env: TOXENV=py33 - python: 3.4 env: TOXENV=py34 - python: 3.5 diff --git a/tox.ini b/tox.ini index 0f6f3f0..7604e50 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.7.2 -envlist = flake8, py3flake8, py27, py33, py34, py35, py36, pypy, pypy3 +envlist = flake8, py3flake8, py27, py34, py35, py36, pypy, pypy3 skip_missing_interpreters = true [testenv] From f87341d263760577ae9d8bec650d7ce29a79e956 Mon Sep 17 00:00:00 2001 From: Ruda Porto Filgueiras Date: Tue, 14 May 2019 02:15:33 +0200 Subject: [PATCH 6/6] Deleting objects to make sure garbage collector will release memory. --- logzio/handler.py | 3 +++ logzio/sender.py | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/logzio/handler.py b/logzio/handler.py index 0b319f3..a4c741f 100644 --- a/logzio/handler.py +++ b/logzio/handler.py @@ -32,6 +32,9 @@ class LogzioHandler(logging.Handler): backup_logs=backup_logs) logging.Handler.__init__(self) + def __del__(self): + del self.logzio_sender + def extra_fields(self, message): not_allowed_keys = ( diff --git a/logzio/sender.py b/logzio/sender.py index 9c770a5..922d266 100644 --- a/logzio/sender.py +++ b/logzio/sender.py @@ -48,6 +48,11 @@ class LogzioSender: self.queue = queue.Queue() self._initialize_sending_thread() + def __del__(self): + del self.logger + del self.backup_logs + del self.queue + def _initialize_sending_thread(self): self.sending_thread = Thread(target=self._drain_queue) self.sending_thread.daemon = False @@ -153,6 +158,8 @@ class LogzioSender: 'backing up to local file system', number_of_retries) backup_logs(logs_list, self.logger) + del logs_list + def _get_messages_up_to_max_allowed_size(self): logs_list = [] current_size = 0