-
Notifications
You must be signed in to change notification settings - Fork 4
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
Audit http2
for uses of catch
from unliftio
#193
Comments
Chances are good that this will fix #156. |
Below is an exhaustive (I think) list of all functions in
The full list: catch :: (..) => m a -> (e -> m a) -> m a
catchAny :: (..) => m a -> (SomeException -> m a) -> m a
catchDeep :: (..) => m a -> (e -> m a) -> m a
catchAnyDeep :: (..) => m a -> (SomeException -> m a) -> m a
catchJust :: (..) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
handle :: (..) => (e -> m a) -> m a -> m a
handleAny :: (..) => (SomeException -> m a) -> m a -> m a
handleDeep :: (..) => (e -> m a) -> m a -> m a
handleAnyDeep :: (..) => (SomeException -> m a) -> m a -> m a
handleJust :: (..) => (e -> Maybe b) -> (b -> m a) -> m a -> m a
try :: (..) => m a -> m (Either e a)
tryAny :: (..) => m a -> m (Either SomeException a)
tryDeep :: (..) => m a -> m (Either e a)
tryAnyDeep :: (..) => m a -> m (Either SomeException a)
tryJust :: (..) => (e -> Maybe b) -> m a -> m (Either b a)
pureTry :: a -> Either SomeException a
pureTryDeep :: (..) => a -> Either SomeException a
catches :: (..) => m a -> [Handler m a] -> m a
catchesDeep :: (..) => m a -> [Handler m a] -> m a
mapExceptionM :: (..) => (e1 -> e2) -> m a -> m a
catching :: (..) => Getting (First a) SomeException a -> m r -> (a -> m r) -> m r
catching_ :: (..) => Getting (First a) SomeException a -> m r -> m r -> m r
handling :: (..) => Getting (First a) SomeException a -> (a -> m r) -> m r -> m r
handling_ :: (..) => Getting (First a) SomeException a -> m r -> m r -> m r
trying :: (..) => Getting (First a) SomeException a -> m r -> m (Either a r)
trying_ :: (..) => Getting (First a) SomeException a -> m r -> m (Maybe r) |
In kazu-yamamoto#92 we added an exception handler that was meant to catch _all_ exceptions (sync and async). This got changed in kazu-yamamoto#114 (specifically, kazu-yamamoto@52a9619): when we moved from `Control.Exception` to `UnliftIO.Exception`, we got a different behaviour for `catch` and friends (see well-typed/grapesy#193 (comment)) for a full list. This commit fixes some unintended consequences of this change.
Report and PR at kazu-yamamoto/http2#138 . |
In kazu-yamamoto#92 we added an exception handler that was meant to catch _all_ exceptions (sync and async). This got changed in kazu-yamamoto#114 (specifically, kazu-yamamoto@52a9619): when we moved from `Control.Exception` to `UnliftIO.Exception`, we got a different behaviour for `catch` and friends (see well-typed/grapesy#193 (comment)) for a full list. This commit fixes some unintended consequences of this change.
In kazu-yamamoto#92 we added an exception handler that was meant to catch _all_ exceptions (sync and async). This got changed in kazu-yamamoto#114 (specifically, kazu-yamamoto@52a9619): when we moved from `Control.Exception` to `UnliftIO.Exception`, we got a different behaviour for `catch` and friends (see well-typed/grapesy#193 (comment)) for a full list. This commit fixes some unintended consequences of this change.
In kazu-yamamoto#92 we added an exception handler that was meant to catch _all_ exceptions (sync and async). This got changed in kazu-yamamoto#114 (specifically, kazu-yamamoto@52a9619): when we moved from `Control.Exception` to `UnliftIO.Exception`, we got a different behaviour for `catch` and friends (see well-typed/grapesy#193 (comment)) for a full list. This commit fixes some unintended consequences of this change.
In kazu-yamamoto/http2#92 we changed things so that the
KilledByHttp2ThreadManager
exception would not be remain uncaught, but a later change tounliftio
meant that the behaviour ofcatch
changed: only synchronous exceptions are caught! We should check all uses ofcatch
and friends inhttp2
.The text was updated successfully, but these errors were encountered: