Alexander Mohr <thehes...@gmail.com> added the comment: here's another problem, if I change that function signature to: def test(s3_client): try: method = getattr(s3_client, sys.argv[1]) method(Bucket='archpi.dabase.com', Key='doesnotexist') except botocore.exceptions.ClientError as e: if e.response['ResponseMetadata']['HTTPStatusCode'] != 404: raise
print('.', end='', flush=True) the print happens every time and the raise does not ever get hit, yet the raise line is still marked as the top "leak" (unfreed blocks). It's really strange. Furthermore the second top "leak" is this stack: File "/tmp/Python-3.6.5/Lib/sre_compile.py", line 439 return prefix, prefix_skip, False File "/tmp/Python-3.6.5/Lib/sre_compile.py", line 498 prefix, prefix_skip, got_all = _get_literal_prefix(pattern) File "/tmp/Python-3.6.5/Lib/sre_compile.py", line 548 _compile_info(code, p, flags) which doesn't make sense either, why would the return line be marked as having allocated anything? and btw I did change the implementation to start early, and then compare differences between a snapshot at iter 20 and iter 100 and the same holds true as I stated, there should logically be no difference between starting it later, or starting in the beginning and comparing two snapshots as all what you're doing in either cases is comparing two ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33565> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com