Skip to content

kafka-python raises NoBrokersAvailable for DNS failures #2671

@msfrucht

Description

@msfrucht

We were testing error handling and found that kafka-python was raising NoBrokersAvailable even when the address is not valid.

Version: 2.2.6

nslookup foo.bar.ibm.com
;; Got recursion not available from 10.255.255.254
Server:         10.255.255.254
Address:        10.255.255.254#53

** server can't find [foo.bar.ibm.com](http://foo.bar.ibm.com/): REFUSED
>>> import kafka
>>> kafkaConsumer = kafka.KafkaConsumer(
...     bootstrap_servers="foo.bar.ibm.com:9092",
...     fetch_min_bytes=1,
...     fetch_max_wait_ms=2000,
...     max_poll_records=10,
...     auto_offset_reset="latest",
...     consumer_timeout_ms=20000,
...     client_id="test",
... )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/src/app/code/.venv/lib/python3.11/site-packages/kafka/consumer/group.py", line 387, in __init__
    self._client = self.config['kafka_client'](metrics=self._metrics, **self.config)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/code/.venv/lib/python3.11/site-packages/kafka/client_async.py", line 262, in __init__
    self.config['api_version'] = self.check_version()
                                 ^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/code/.venv/lib/python3.11/site-packages/kafka/client_async.py", line 1074, in check_version
    raise Errors.NoBrokersAvailable()
kafka.errors.NoBrokersAvailable: NoBrokersAvailable

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