Merge pull request #10382 from f321x/fix_exc_in_htlc_switch
lnpeer: fix callback exception handling, fix type hint
This commit is contained in:
@@ -8,7 +8,7 @@ from collections import OrderedDict, defaultdict
|
|||||||
import asyncio
|
import asyncio
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
from typing import Tuple, Dict, TYPE_CHECKING, Optional, Union, Set, Callable, Awaitable, List
|
from typing import Tuple, Dict, TYPE_CHECKING, Optional, Union, Set, Callable, Coroutine, List, Any
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import functools
|
import functools
|
||||||
from functools import partial
|
from functools import partial
|
||||||
@@ -2901,10 +2901,8 @@ class Peer(Logger, EventListener):
|
|||||||
self._fulfill_htlc_set(payment_key, preimage)
|
self._fulfill_htlc_set(payment_key, preimage)
|
||||||
if callback:
|
if callback:
|
||||||
task = asyncio.create_task(callback())
|
task = asyncio.create_task(callback())
|
||||||
task.add_done_callback( # log exceptions occurring in callback
|
task.add_done_callback( # handle exceptions occurring in callback
|
||||||
lambda t, pk=payment_key: self.logger.exception(
|
lambda t: (util.send_exception_to_crash_reporter(t.exception()) if t.exception() else None)
|
||||||
f"cb failed: "
|
|
||||||
f"{self.lnworker.received_mpp_htlcs[pk]=}", exc_info=t.exception()) if t.exception() else None
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if len(self.lnworker.received_mpp_htlcs[payment_key].htlcs) == 0:
|
if len(self.lnworker.received_mpp_htlcs[payment_key].htlcs) == 0:
|
||||||
@@ -2974,7 +2972,7 @@ class Peer(Logger, EventListener):
|
|||||||
) -> Tuple[
|
) -> Tuple[
|
||||||
Optional[Union[OnionRoutingFailure, OnionFailureCode, bytes]], # error types used to fail the set
|
Optional[Union[OnionRoutingFailure, OnionFailureCode, bytes]], # error types used to fail the set
|
||||||
Optional[bytes], # preimage to settle the set
|
Optional[bytes], # preimage to settle the set
|
||||||
Optional[Callable[[], Awaitable[None]]], # callback
|
Optional[Callable[[], Coroutine[Any, Any, None]]], # callback
|
||||||
]:
|
]:
|
||||||
"""
|
"""
|
||||||
Returns what to do next with the given set of htlcs:
|
Returns what to do next with the given set of htlcs:
|
||||||
|
|||||||
Reference in New Issue
Block a user