-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CLIENT-1337] Unmask C client errors #470
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## stage #470 +/- ##
=======================================
Coverage 81.30% 81.31%
=======================================
Files 98 98
Lines 14808 14757 -51
=======================================
- Hits 12039 11999 -40
+ Misses 2769 2758 -11
☔ View full report in Codecov by Sentry. |
c150a44
to
cc63f14
Compare
941138e
to
cc63f14
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't taken a very close look but my guess about the new memory leaks @juliannguyen4 mentioned is that they are coming from the new calls to raise_exception() that are hit because err.code isn't reset in many places now.
21657ae
to
fc8c900
Compare
fc8c900
to
977821d
Compare
This reverts commit 977821d.
3689014
to
1a9338d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Build wheels all passes: https://github.com/aerospike/aerospike-client-python/actions/runs/6240538285
Valgrind
Stage branch: https://github.com/aerospike/aerospike-client-python/actions/runs/6227886001
This branch: https://github.com/aerospike/aerospike-client-python/actions/runs/6240538715
Extra leaks in this branch
All extra leaks in this branch come from raise_exception or raise_exception_old. This is because the errors from the C client are no longer being reset by the Python client, so I believe more as_error fields are being converted to Python objects and stored in the relevant exception class. Since the class isn't cleaned up properly, this causes more memory leaks from the class's attributes.
3 AerospikeClient_Admin_Create_Role leaks from raise_exception
1 AerospikeClient_Admin_Create_User leak from raise_exception
AerospikeClient_New:
Stage
5 from raise_exception
4 from AerospikeClient_Type_Init
This branch
5 from raise_exception
5 from AerospikeClient_Type_Init
1 AerospikeClient_Remove leak from raise_exception_old
1 AerospikeClient_Select leak from raise_exception_old
AerospikeClient_Type_Init:
Stage
5 from raise_exception
4 from as_config_add_host
This branch
5 from as_config_add_host
5 from raise_exception