mohamedawnallah commented on PR #35216:
URL: https://github.com/apache/beam/pull/35216#issuecomment-2996596518
Hey @damccorm,
Most of the main tasks in this PR are nearly complete. However, the
`beam_PreCommit_Python_ML` job is currently failing due to an issue related to
Docker container port mapping.
I've already tried a few workarounds such as ensuring there are no port
conflicts. This is supposed to run fine on a typical GitHub hosted Ubuntu
runner. The runner for this `beam_PreCommit_Python_ML` job is self-hosted which
leads me to mostly think this is likely a configuration issue specific to the
self-hosted environment.
Given I have little input into the setup or computing environment of the
self-hosted runner, How am I supposed to troubleshoot and debug this further?
```
cls = <class
'apache_beam.ml.rag.enrichment.milvus_search_it_test.TestMilvusSearchEnrichment'>
@classmethod
def setUpClass(cls):
> cls._db = MilvusEnrichmentTestHelper.start_db_container(cls._version)
apache_beam/ml/rag/enrichment/milvus_search_it_test.py:420:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _
apache_beam/ml/rag/enrichment/milvus_search_it_test.py:273: in
start_db_container
vector_db_container.start()
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:83:
in start
self._connect()
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:59:
in wrapper
return wrapped(*args, **kwargs)
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:65:
in _connect
self._healthcheck()
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:59:
in wrapper
return wrapped(*args, **kwargs)
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:74:
in _healthcheck
healthcheck_url = self._get_healthcheck_url()
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:69:
in _get_healthcheck_url
port = self.get_exposed_port(self.healthcheck_port)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _
wrapped = <bound method DockerContainer.get_exposed_port of
<testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0>>
instance = <testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0>
args = (9091,), kwargs = {}
@wrapt.decorator
def wrapper(wrapped: Callable, instance: Any, args: list, kwargs: dict)
-> Any:
from testcontainers.core.container import DockerContainer
if isinstance(instance, DockerContainer):
logger.info("Waiting for container %s with image %s to be ready
...", instance._container, instance.image)
else:
logger.info("Waiting for %s to be ready ...", instance)
exception = None
for attempt_no in range(config.max_tries):
try:
return wrapped(*args, **kwargs)
except transient_exceptions as e:
logger.debug(
f"Connection attempt '{attempt_no + 1}' of
'{config.max_tries + 1}' "
f"failed: {traceback.format_exc()}"
)
> time.sleep(config.sleep_time)
E Failed: Timeout (>600.0s) from pytest-timeout.
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:65:
Failed
_ ERROR at setup of
TestMilvusSearchEnrichment.test_vector_search_with_inner_product_similarity _
[gw2] linux -- Python 3.9.22
/runner/_work/beam/beam/sdks/python/test-suites/tox/py39/build/srcs/sdks/python/target/.tox-py39-ml/py39-ml/bin/python
wrapped = <bound method DockerContainer.get_exposed_port of
<testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0>>
instance = <testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0>
args = (9091,), kwargs = {}
@wrapt.decorator
def wrapper(wrapped: Callable, instance: Any, args: list, kwargs: dict)
-> Any:
from testcontainers.core.container import DockerContainer
if isinstance(instance, DockerContainer):
logger.info("Waiting for container %s with image %s to be ready
...", instance._container, instance.image)
else:
logger.info("Waiting for %s to be ready ...", instance)
exception = None
for attempt_no in range(config.max_tries):
try:
> return wrapped(*args, **kwargs)
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _
target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/container.py:155:
in get_exposed_port
return self.get_docker_client().port(self._container.id, port)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _
self = <testcontainers.core.docker_client.DockerClient object at
0x7e27846acdc0>
container_id =
'a261d8725a7cc1549[4082](https://github.com/apache/beam/actions/runs/15813470637/job/44568183065?pr=35216#step:8:4084)8cafa5b084f506ab9a4f7c8b852c92be5d98638abdd'
port = 9091
def port(self, container_id: str, port: int) -> int:
"""
Lookup the public-facing port that is NAT-ed to :code:`port`.
"""
port_mappings = self.client.api.port(container_id, port)
if not port_mappings:
> raise ConnectionError(f"Port mapping for container
{container_id} and port {port} is " "not available")
E ConnectionError: Port mapping for container
a261d8725a7cc154940828cafa5b084f506ab9a4f7c8b852c92be5d98638abdd and port 9091
is not available
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]