-
Notifications
You must be signed in to change notification settings - Fork 6
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
Wrapping a function that raises a BaseException (not an Exception) can indefinitely wedge all future calls using that argument list #35
Comments
Note that this can happen even for code that doesn't ever explicitly raise a non- Thus, for any web framework that cancels coprocesses generating for pages where the client disconnects, memoize-wrapped functions can get wedged when using the upstream tree. |
Good point about |
… than Exception, so we need to catch it explicitly.
I no longer have a dog in this fight -- replaced py-memoize with something built to a narrower set of requirements -- but I'd generally tend to suggest catching all |
Because refresh calls
mark_being_updated()
before it invokesvalue_future_provider()
orawait value_future
, any failure in those calls that doesn't go through the existing exception handlers never callsmark_update_aborted()
, and thus leaves a future that will never be populated in the status tracker.I have a fix for this (incorporated in https://github.com/charles-dyfis-net/memoize/tree/local), but it lives in a tree that makes other heavy-handed changes which may or may not be acceptable upstream.
The text was updated successfully, but these errors were encountered: