Bug 998714
Summary: | python: pycurl not deallocated properly during interpreter exit | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Tomas Hoger <thoger> | ||||||||
Component: | python | Assignee: | Bohuslav "Slavek" Kabrda <bkabrda> | ||||||||
Status: | CLOSED WORKSFORME | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 19 | CC: | bkabrda, dmalcolm, ivazqueznet, jonathansteffan, kdudka, mstuchli, tomspur | ||||||||
Target Milestone: | --- | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2013-09-18 19:49:54 UTC | Type: | Bug | ||||||||
Regression: | --- | Mount Type: | --- | ||||||||
Documentation: | --- | CRM: | |||||||||
Verified Versions: | Category: | --- | |||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||
Embargoed: | |||||||||||
Attachments: |
|
Description
Tomas Hoger
2013-08-19 20:31:10 UTC
Created attachment 788197 [details]
xmlrpclib pycurl transport
This script demonstrates the issue. Pass your BZ user name as argument. Check cookies.txt file content after it exits (and empty it before running the test).
Created attachment 788198 [details]
test that does not trigger the problem
Created attachment 788208 [details]
better small tet
I realized that my minimal test case did not match xmlrpclib one very well. This one should be better, and it does trigger the problem.
I suspect the problem here actually comes from the script. It seems to create a loop in python object references (CURLHTTPRequest refers to pycurl.Curl instance and that instance refers back to the CURLHTTPRequest instance via reference to its method), which probably blocks garbage collection and proper module cleanup.
Yeah, I won't be surprised if this is closed:notabug.
(In reply to Tomas Hoger from comment #3) > I suspect the problem here actually comes from the script. It seems to > create a loop in python object references (CURLHTTPRequest refers to > pycurl.Curl instance and that instance refers back to the CURLHTTPRequest > instance via reference to its method), which probably blocks garbage > collection and proper module cleanup. This is an issue with the python interpreter. Please consider calling the close() method on the curl object explicitly to work around the problem. (In reply to Kamil Dudka from comment #4) > This is an issue with the python interpreter. Please consider calling the > close() method on the curl object explicitly to work around the problem. Calling close() is not really practical, as that would require changing several scripts that use a module that uses pycurl. I worked around by avoiding mentioned loop, which fixed the problem for me. I don't believe this is the right place to request python garbage collector change, so I'm closing this. |