Tyler Goodlet
38d03858d7
Fix `asyncio`-task-sync and error propagation
...
This fixes an previously undetected bug where if an
`.open_channel_from()` spawned task errored the error would not be
propagated to the `trio` side and instead would fail silently with
a console log error. What was most odd is that it only seems easy to
trigger when you put a slight task sleep before the error is raised
(:eyeroll:). This patch adds a few things to address this and just in
general improve iter-task lifetime syncing:
- add `LinkedTaskChannel._trio_exited: bool` a flag set from the `trio`
side when the channel block exits.
- add a `wait_on_aio_task: bool` flag to `translate_aio_errors` which
toggles whether to wait the `asyncio` task termination event on exit.
- cancel the `asyncio` task if the trio side has ended, when
`._trio_exited == True`.
- always close the `trio` mem channel when the task exits such that
the `asyncio` side can error on any next `.send()` call.
2022-07-14 16:35:41 -04:00
Tyler Goodlet
98de2fab31
Add context test that opens an inter-task-channel that errors
2022-07-14 16:13:12 -04:00
goodboy
f4973e90e9
Merge pull request #314 from goodboy/ci_sdist_install
...
Add an sdist install job
2022-07-11 20:13:24 -04:00
Tyler Goodlet
780e3dd13d
Include ./docs/README.rst in src dist
2022-07-11 14:25:26 -04:00
Tyler Goodlet
e0419b24ec
Add an sdist install job
...
This should hopefully catch issues like,
https://github.com/goodboy/tractor/issues/293
2022-07-11 14:22:22 -04:00
goodboy
71f19f217d
Merge pull request #305 from goodboy/name_query
...
Add `tractor.query_actor()` an addr looker-upper
2022-04-13 09:19:26 -04:00
Tyler Goodlet
8901272854
Fix typing
2022-04-13 08:20:53 -04:00
Tyler Goodlet
7c151bed48
Add nooz
2022-04-13 08:18:11 -04:00
Tyler Goodlet
80897a8f2b
Add `tractor.query_actor()` an addr looker-upper
...
Sometimes it's handy to just have a non-`Portal` yielding way
to figure out if a "service" actor is up, so add this discovery
helper for that. We'll prolly just leave it undocumented for
now until we figure out a longer-term/better discovery system.
2022-04-13 07:50:42 -04:00
goodboy
62983684d1
Merge pull request #308 from goodboy/sort_subs_results_infected_aio
...
Sort `.subscribe()` results before comparison in test
2022-04-12 20:06:55 -04:00
Tyler Goodlet
1c63bb6130
Sort fan out results before comparison in test
2022-04-12 19:49:36 -04:00
goodboy
bfe99f29b8
Merge pull request #304 from goodboy/aio_explicit_task_cancels
...
`LinkedTaskChannel.subscribe()`, explicit `asyncio` task cancel logging, `test_trioisms.py`
2022-04-12 17:27:29 -04:00
Tyler Goodlet
9c27858aaf
WIP prints to debug frickin windows
2022-04-12 16:48:50 -04:00
Tyler Goodlet
597ae4b690
Add nooz file
2022-04-12 15:59:33 -04:00
Tyler Goodlet
fa354ffe2b
Handle not all values pulled case
2022-04-12 15:51:06 -04:00
Tyler Goodlet
333fad8819
Facepalm: join nursery first to avoid channel-closed-too-early
2022-04-12 15:06:35 -04:00
Tyler Goodlet
90593611bb
Add test for `LinkedTaskChannel.subscribe()` fanout feature
2022-04-12 15:06:35 -04:00
Tyler Goodlet
9c43bb28f1
Add a new "trioisms" test mod for tracking `trio` wishlist behaviour
2022-04-12 13:05:56 -04:00
Tyler Goodlet
e45251db56
Simplify to form submitted to njs
2022-04-12 13:05:26 -04:00
Tyler Goodlet
faf751acac
WIP reproduce deadlock issue during error from piker
2022-04-12 13:04:46 -04:00
Tyler Goodlet
20d281f619
Run `mypy` on 3.10
2022-04-12 12:53:12 -04:00
Tyler Goodlet
f3606d5bd8
Type fixes
2022-04-12 11:48:32 -04:00
Tyler Goodlet
032e14e326
Update new license info in setup script
2022-04-12 11:42:44 -04:00
Tyler Goodlet
c322a193f2
Make `LinkedTaskChannel` trio-task-broadcastable with `.subscribe()`
2022-04-12 11:42:44 -04:00
Tyler Goodlet
46963c2e63
Don't handle `GeneratorExit` on `asyncio` tasks
2022-04-12 11:42:44 -04:00
Tyler Goodlet
9b77b8c9ee
Add more explicit `asyncio` task error logging
...
When an `asyncio` side task errors or is cancelled we now explicitly
report the traceback and task name if possible as well as the source
reason for the error (some come from the `trio` side).
Further, properly set any `trio` side exception (after unwrapping it
from the `outcome.Error`) on the future that runs the `trio` guest run.
2022-04-12 11:42:44 -04:00
Tyler Goodlet
13c8300226
Add a sub-actor managed service nursery test scenario
2022-04-12 11:42:44 -04:00
goodboy
1109d96263
Merge pull request #303 from goodboy/fence_mp
...
Fence mp
2022-04-12 10:13:57 -04:00
Tyler Goodlet
65b4bc8888
Add misc nooz file
2022-04-12 08:35:13 -04:00
Tyler Goodlet
bef9946f91
Allow re-running jobs from web UI manually?
2022-04-11 17:37:06 -04:00
Tyler Goodlet
c30cece37a
Fix one missing import/ref
2022-02-17 13:03:37 -05:00
Tyler Goodlet
509082c935
Port to new `msgspec` error type
2022-02-17 11:55:26 -05:00
Tyler Goodlet
75bb1added
Avoid importing mp for as long as possible
2022-02-17 11:55:26 -05:00
goodboy
6e5590dad6
Merge pull request #300 from goodboy/msgpack_lists_by_default
...
Use lists by default like `msgspec`, update to latest `msgspec` and `msgpack` releases
2022-02-15 09:08:20 -05:00
Tyler Goodlet
76a0492028
Fix type annot
2022-02-15 08:52:04 -05:00
Tyler Goodlet
4eab4a0213
Type fix
2022-02-15 08:51:25 -05:00
Tyler Goodlet
0edc6a26bc
Go back to strict map keys
2022-02-15 08:48:43 -05:00
Tyler Goodlet
c5acc3b969
Pack tuple keys as . delim strs in registry tests
2022-02-15 08:48:07 -05:00
Tyler Goodlet
17e195aacf
They renamed to `msgpack` and the version is 1.0.3
2022-02-14 16:03:54 -05:00
Tyler Goodlet
c65756ed80
Add nooz
2022-02-14 16:03:10 -05:00
Tyler Goodlet
927decc88d
Pin to latest `msgspec` version
2022-02-14 14:14:05 -05:00
Tyler Goodlet
17bfa120cc
Port to msgpec `0.4.0` imports
2022-02-14 14:05:55 -05:00
Tyler Goodlet
77ddc073e8
Use lists by default like `msgspec`
2022-02-09 10:07:33 -05:00
goodboy
26bebc42b7
Merge pull request #295 from goodboy/nspaths
...
`NamespacePath`: a message compatible "object reference" type
2022-01-30 12:40:05 -05:00
Tyler Goodlet
87de28fd88
Slight doc string update
2022-01-30 12:21:41 -05:00
Tyler Goodlet
56b29c27de
Add msg serialization coding todo resources list
2022-01-30 12:19:21 -05:00
Tyler Goodlet
adf9a1d0aa
Add nooz
2022-01-30 12:17:32 -05:00
Tyler Goodlet
25a27e780d
Add todo resources for eventual capability-based module filtering
2022-01-30 11:28:10 -05:00
Tyler Goodlet
c265f3f94e
Move namespace path type into `msg` mod
2022-01-30 11:27:34 -05:00
Tyler Goodlet
2900ceb003
Not all objects have a `.__name__`
2022-01-30 11:26:34 -05:00