-
Notifications
You must be signed in to change notification settings - Fork 1k
Possible memory leak in urquests.get and others. #649
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
Comments
looking at the thread why do you assume this is a https connection the example code posted uses example.com, without a protocol specified |
I had failed to notice that. It's not my code that has the problem, but on closer inspection that's correct. In which case I apologise for wasting your time with it. Where does that memory get freed then ? It is of course entirely possible that the code posted has other mismtached allocate/deallocate pairings the author is unaware of. Thanks for your time, as an intermittent user of micropython myself, I greatly appreciate the amount of effort put into it. |
i found this from the same reddit thread, not saying this is not a issue, but it may not be the issue you are looking for, seems like something worth checking |
For many years I was an embedded systems designer / developer and memory allocation is one of those things that can bite you eventually in a long running process! All the best with it. |
turns out the OP was using https |
Wow, so I might have been right after all?! There's always a first time for everything. Can I get that in writing to show the wife next time we have an argument please. |
if you pay the postage ;) BTW it will look bad if you pay for international shipping just to prove to your wife you MAY have been right, i would suggest just letting her win it makes things easier |
Yeah but, being a software developer means I deal in logic and truth and false being recognised...sigh...yeah, after 30 years you'd think I'd have learned. :D |
So why close the report? we know OP used https now could email you a pdf here is your boolean logic:
|
Didn't realise I'd closed it, my bad, I mean why destroy valuable ammo for the future ? |
The SSL socket's allocated memory is freed after the stream is closed (via an ioctl), then the ioctl is passed to the wrapped socket, which also frees its allocated memory. See |
Hi, I just answered a Reddit issue where somebody has some very trivial code in a loop, and it runs out of memory after a while, the reddit page is here:
https://www.reddit.com/r/raspberrypipico/comments/12v8k0a/oserror_errno_12_enomem/?sort=new
I walked through the code and on line 93 of urequests.py, there is an allocation taking place in wrap_socket(), assigned to s and then not seemingly released after s.close() has been called. I have only looked at the code for aobut half an hour so it's entirely possible the deallocation is done somewhere else but wrap_socket returns a handle to the memory, that's
s
, and there seems to be no corresponding call to free it.https://github.com/micropython/micropython-lib/blob/master/python-ecosys/urequests/urequests.py
The text was updated successfully, but these errors were encountered: