Bug #99517 | Method executemany has a memory leak when include Decimal python data type | ||
---|---|---|---|
Submitted: | 12 May 2020 1:46 | Modified: | 31 Jul 2020 22:24 |
Reporter: | kan liyong (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / Python | Severity: | S2 (Serious) |
Version: | 8.0.20 | OS: | MacOS |
Assigned to: | CPU Architecture: | Any | |
Tags: | connecotor python, memory leak |
[12 May 2020 1:46]
kan liyong
[12 May 2020 8:22]
MySQL Verification Team
Hello kanly kan, Thank you for the report and feedback. regards, Umesh
[13 May 2020 0:55]
kan liyong
eqs_share_order_test.py
Attachment: eqs_share_order_test.py (text/x-python-script), 1.54 KiB.
[15 May 2020 6:37]
kan liyong
I seem to have solved this problem!! After my test, the problem does not appear。 Change the code as follows ... mysql_capi_conversion.c PyObject* pytomy_decimal(PyObject *obj) { #ifdef PY3 PyObject *str = PyObject_Str(obj); PyObject *ret = (const char *)PyUnicode_1BYTE_DATA(str); Py_DECREF(str); return ret; #else PyObject *numeric, *new_num;
[15 May 2020 6:52]
kan liyong
PyObject* pytomy_decimal(PyObject *obj) { #ifdef PY3 PyObject *str = PyObject_Str(obj); PyObject *ret = (const char *)PyUnicode_1BYTE_DATA(str); Py_DECREF(str); return PyBytes_FromString(ret); #else
[15 May 2020 7:37]
kan liyong
I have submitted PR: https://github.com/mysql/mysql-connector-python/pull/60 PyObject* pytomy_decimal(PyObject *obj) { #ifdef PY3 PyObject *str = PyObject_Str(obj); PyObject *ret_tmp = (const char *)PyUnicode_1BYTE_DATA(str); PyObject *ret = PyBytes_FromString(ret_tmp); Py_DECREF(ret_tmp); return ret; #else
[26 May 2020 13:59]
OCA Admin
Contribution submitted via Github - Bug fix : memory leak when include Decimal python data type (*) Contribution by kan lying (Github kanliyong, mysql-connector-python/pull/61#issuecomment-634038352): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: git_patch_418456870.txt (text/plain), 2.07 KiB.
[14 Jul 2020 2:53]
kan liyong
In the new version 8.0.21, this issue is not resolved ?
[31 Jul 2020 22:24]
Philip Olson
Posted by developer: Fixed as of the upcoming MySQL Connector/Python 8.0.22 release, and here's the proposed changelog entry from the documentation team: Fixed a memory leak in the C-extension implementation when using the Decimal data type. Thanks to Kan Liyong for the patch. Thank you for the bug report.
[20 Oct 2020 6:56]
Frederic Descamps
Thank you for your contribution that has been added to 8.0.22: https://lefred.be/content/mysql-8-0-22-thank-you-for-the-contributions/