Skip to content

raise CancelledError when multiple asyncio.Task done #20

@cbsheng

Description

@cbsheng
async def foo():
    cnt = 0
    async for _ in client.watch("key", start_revision=200):
        cnt += 1
        if cnt == 1:
            break


async def bar():
    cnt = 0
    async for _ in client.watch("key", start_revision=200):
        cnt += 1
        if cnt == 1:
            break

if __name__ == "__main__":
    asyncio.ensure_future(foo())
    asyncio.ensure_future(bar())
    asyncio.get_event_loop().run_forever()

output:

Exception in callback WrappedIterator.__anext__.<locals>.cb(<Future cancelled>) at /home/xxx/.pyenv/versions/env/lib/python3.6/site-packages/aiogrpc/utils.py:160
handle: <Handle WrappedIterator.__anext__.<locals>.cb(<Future cancelled>) at /home/xxx/.pyenv/versions/env/lib/python3.6/site-packages/aiogrpc/utils.py:160>
Traceback (most recent call last):
  File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
    self._callback(*self._args)
  File "/home/xxx/.pyenv/versions/env/lib/python3.6/site-packages/aiogrpc/utils.py", line 162, in cb
    fut.result()
concurrent.futures._base.CancelledError

requirement:
aioetcd3==1.11
aiogrpc==1.8
python 3.6.9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions