Skip to content

bug: Topic API TypeError: exceptions must derive from BaseException #288

@kbespalov

Description

@kbespalov

Bug Report

YDB GO Python version:

ydb==3.2.2

Current behavior:

    result = future.result(timeout=self._endpoint_config.start_wait_timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/concurrent/futures/_base.py", line 445, in result
    return self.__get_result()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/concurrent/futures/_base.py", line 390, in __get_result
    raise self._exception
  File "/Users/kbespalov/workspace/billing_venv/lib/python3.9/site-packages/ydb/_topic_writer/topic_writer_asyncio.py", line 158, in wait_init
    return await self._reconnector.wait_init()
  File "/Users/kbespalov/workspace/billing_venv/lib/python3.9/site-packages/ydb/_topic_writer/topic_writer_asyncio.py", line 259, in wait_init
    raise self._stop_reason.exception()
TypeError: exceptions must derive from BaseException

Expected behavior:

Check for None ?

Steps to reproduce:

Try to create producer for non-existent topic

  File "/Users/kbespalov/workspace/billing_venv/lib/python3.9/site-packages/ydb/_topic_writer/topic_writer_asyncio.py", line 636, in _start
    resp = await stream.receive()
  File "/Users/kbespalov/workspace/billing_venv/lib/python3.9/site-packages/ydb/_grpc/grpcwrapper/common_utils.py", line 199, in receive
    issues._process_response(grpc_message)
  File "/Users/kbespalov/workspace/billing_venv/lib/python3.9/site-packages/ydb/issues.py", line 197, in _process_response
    raise exc_obj(_format_response(response_proto), response_proto.issues)
ydb.issues.SchemeError: message: "no path \'local/topic\', Marker# PQ15" issue_code: 500017 severity: 1 (server_code: 400070)

Method

    async def wait_init(self) -> PublicWriterInitInfo:
        while True:
            if self._stop_reason.done():
                raise self._stop_reason.exception()

            if self._init_info:
                return self._init_info

            await self._state_changed.wait()

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions