elastic / elasticsearch

Free and Open Source, Distributed, RESTful Search Engine
https://www.elastic.co/products/elasticsearch
Other
69.71k stars 24.67k forks source link

TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard' #109514

Closed abhipn closed 3 months ago

abhipn commented 3 months ago

Elasticsearch Version

8.14.0

Installed Plugins

No response

Java Version

bundled

OS Version

Darwin Kernel Version 23.5.0

Problem Description

Docker build of elasticsearch failing with latest release. I don't know how people are upgrading.

Exact Error:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/__main__.py", line 4, in <module>
    uvicorn.main()
  File "/workdir/.venv/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workdir/.venv/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/workdir/.venv/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workdir/.venv/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/main.py", line 409, in main
    run(
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/main.py", line 575, in run
    server.run()
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/server.py", line 69, in serve
    await self._serve(sockets)
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/server.py", line 76, in _serve
    config.load()
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/config.py", line 433, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workdir/.venv/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/workdir/server.py", line 3, in <module>
    from app import query as app_query
  File "/workdir/app/__init__.py", line 1, in <module>
    from .query import query
  File "/workdir/app/query.py", line 1, in <module>
    from app.graph import chain
  File "/workdir/app/graph.py", line 5, in <module>
    from app.es_slurm import es_slurm_analyst
  File "/workdir/app/es_slurm/__init__.py", line 1, in <module>
    from .es_slurm_analyst import es_slurm_analyst
  File "/workdir/app/es_slurm/es_slurm_analyst.py", line 4, in <module>
    from app.config import llm, settings
  File "/workdir/app/config/__init__.py", line 1, in <module>
    from .llm import llm
  File "/workdir/app/config/llm.py", line 1, in <module>
    from langchain_openai import ChatOpenAI
  File "/workdir/.venv/lib/python3.12/site-packages/langchain_openai/__init__.py", line 1, in <module>
    from langchain_openai.chat_models import (
  File "/workdir/.venv/lib/python3.12/site-packages/langchain_openai/chat_models/__init__.py", line 1, in <module>
    from langchain_openai.chat_models.azure import AzureChatOpenAI
  File "/workdir/.venv/lib/python3.12/site-packages/langchain_openai/chat_models/azure.py", line 13, in <module>
    from langchain_openai.chat_models.base import BaseChatOpenAI
  File "/workdir/.venv/lib/python3.12/site-packages/langchain_openai/chat_models/base.py", line 32, in <module>
    from langchain_core.callbacks import (
  File "/workdir/.venv/lib/python3.12/site-packages/langchain_core/callbacks/__init__.py", line 22, in <module>
    from langchain_core.callbacks.manager import (
  File "/workdir/.venv/lib/python3.12/site-packages/langchain_core/callbacks/manager.py", line 29, in <module>
    from langsmith.run_helpers import get_run_tree_context
  File "/workdir/.venv/lib/python3.12/site-packages/langsmith/run_helpers.py", line 38, in <module>
    from langsmith import client as ls_client
  File "/workdir/.venv/lib/python3.12/site-packages/langsmith/client.py", line 52, in <module>
    from langsmith import env as ls_env
  File "/workdir/.venv/lib/python3.12/site-packages/langsmith/env/__init__.py", line 3, in <module>
    from langsmith.env._runtime_env import (
  File "/workdir/.venv/lib/python3.12/site-packages/langsmith/env/_runtime_env.py", line 9, in <module>
    from langsmith.utils import get_docker_compose_command
  File "/workdir/.venv/lib/python3.12/site-packages/langsmith/utils.py", line 29, in <module>
    from langsmith import schemas as ls_schemas
  File "/workdir/.venv/lib/python3.12/site-packages/langsmith/schemas.py", line 69, in <module>
    class Example(ExampleBase):
  File "/workdir/.venv/lib/python3.12/site-packages/pydantic/v1/main.py", line 286, in __new__
    cls.__try_update_forward_refs__()
  File "/workdir/.venv/lib/python3.12/site-packages/pydantic/v1/main.py", line 807, in __try_update_forward_refs__
    update_model_forward_refs(cls, cls.__fields__.values(), cls.__config__.json_encoders, localns, (NameError,))
  File "/workdir/.venv/lib/python3.12/site-packages/pydantic/v1/typing.py", line 554, in update_model_forward_refs
    update_field_forward_refs(f, globalns=globalns, localns=localns)
  File "/workdir/.venv/lib/python3.12/site-packages/pydantic/v1/typing.py", line 520, in update_field_forward_refs
    field.type_ = evaluate_forwardref(field.type_, globalns, localns or None)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workdir/.venv/lib/python3.12/site-packages/pydantic/v1/typing.py", line 66, in evaluate_forwardref
    return cast(Any, type_)._evaluate(globalns, localns, set())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'

Steps to Reproduce

Dockerfile:

# Use the official Elasticsearch image
FROM docker.elastic.co/elasticsearch/elasticsearch:8.14.0

# Set environment variables
ENV ELASTIC_PASSWORD="test"
ENV discovery.type=single-node
ENV xpack.security.http.ssl.enabled=false
ENV xpack.license.self_generated.type=trial

# Install necessary packages with error handling
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
    curl \
    build-essential \
    wget \
    libssl-dev \
    zlib1g-dev \
    libbz2-dev \
    libreadline-dev \
    libsqlite3-dev \
    libffi-dev && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Expose port 80
EXPOSE 80

# # Override the default command to set the HTTP port to 80
# CMD ["sh", "-c", "elasticsearch -E http.port=80"]

docker build -t elastic . docker run -p 127.0.0.1:80:80 -d --name elasticsearch elastic

Logs (if relevant)

No response

abhipn commented 3 months ago

Issue, not related to ElasticSearch.