Commit 11b04f1
committed
fix(client): never swallow cancellation in cleanups, narrow sync interrupt settlement
Three fixes, each with a regression test seen failing first. Both
inline indeterminate cleanups (after a failed automatic commit, and on
the exceptional exit path) now let a cancellation that lands mid-RPC
propagate — asyncio does not re-inject a swallowed one — while handing
the interrupted cleanup to a detached retry. The context manager's
cancellation handler gains the aborted-with-unconfirmed-cleanup branch,
so a manual rollback() cancelled mid-RPC still gets its detached retry
before the scope is gone. And the sync statement wrapper's conservative
interrupt settlement is narrowed to real interruptions (non-Exception):
a local encoding failure sends no RPC and leaves the handle open,
matching the async contract.1 parent 4a8ce8a commit 11b04f1
2 files changed
Lines changed: 126 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
926 | 926 | | |
927 | 927 | | |
928 | 928 | | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
929 | 934 | | |
930 | 935 | | |
931 | 936 | | |
| |||
942 | 947 | | |
943 | 948 | | |
944 | 949 | | |
945 | | - | |
| 950 | + | |
946 | 951 | | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
947 | 959 | | |
948 | 960 | | |
949 | 961 | | |
| |||
992 | 1004 | | |
993 | 1005 | | |
994 | 1006 | | |
995 | | - | |
| 1007 | + | |
996 | 1008 | | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
997 | 1016 | | |
998 | 1017 | | |
999 | 1018 | | |
| |||
1586 | 1605 | | |
1587 | 1606 | | |
1588 | 1607 | | |
1589 | | - | |
| 1608 | + | |
1590 | 1609 | | |
1591 | 1610 | | |
1592 | 1611 | | |
1593 | 1612 | | |
1594 | 1613 | | |
1595 | 1614 | | |
1596 | | - | |
1597 | | - | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
1598 | 1621 | | |
1599 | 1622 | | |
1600 | 1623 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1960 | 1960 | | |
1961 | 1961 | | |
1962 | 1962 | | |
| 1963 | + | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
| 1968 | + | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
| 1972 | + | |
| 1973 | + | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
| 2000 | + | |
| 2001 | + | |
| 2002 | + | |
| 2003 | + | |
| 2004 | + | |
| 2005 | + | |
| 2006 | + | |
| 2007 | + | |
| 2008 | + | |
| 2009 | + | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
| 2046 | + | |
| 2047 | + | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
0 commit comments