feat: Raise exception in tests when blocking code is called in event loop (#4293)
Raise exception in tests when blocking code is called in event loop
This commit is contained in:
parent
df22924b0e
commit
14b3117d6b
13 changed files with 596 additions and 46 deletions
|
|
@ -257,7 +257,7 @@ class DirectoryReader:
|
|||
|
||||
async def process_file_async(self, file_path):
|
||||
try:
|
||||
file_content = self.read_file_content(file_path)
|
||||
file_content = await asyncio.to_thread(self.read_file_content, file_path)
|
||||
except Exception: # noqa: BLE001
|
||||
logger.exception(f"Error while reading file {file_path}")
|
||||
return False, f"Could not read {file_path}"
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ class JavaScriptMIMETypeMiddleware(BaseHTTPMiddleware):
|
|||
|
||||
|
||||
def get_lifespan(*, fix_migration=False, version=None):
|
||||
telemetry_service = get_telemetry_service()
|
||||
|
||||
def _initialize():
|
||||
initialize_services(fix_migration=fix_migration)
|
||||
setup_llm_caching()
|
||||
|
|
@ -104,7 +106,7 @@ def get_lifespan(*, fix_migration=False, version=None):
|
|||
await asyncio.to_thread(_initialize)
|
||||
all_types_dict = await get_and_cache_all_types_dict(get_settings_service())
|
||||
await asyncio.to_thread(create_or_update_starter_projects, all_types_dict)
|
||||
get_telemetry_service().start()
|
||||
telemetry_service.start()
|
||||
await asyncio.to_thread(load_flows_from_directory)
|
||||
yield
|
||||
except Exception as exc:
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ class TelemetryService(Service):
|
|||
self._stopping = False
|
||||
|
||||
self.ot = OpenTelemetry(prometheus_enabled=settings_service.settings.prometheus_enabled)
|
||||
self.architecture: str | None = None
|
||||
|
||||
# Check for do-not-track settings
|
||||
self.do_not_track = (
|
||||
|
|
@ -93,7 +94,8 @@ class TelemetryService(Service):
|
|||
async def log_package_version(self) -> None:
|
||||
python_version = ".".join(platform.python_version().split(".")[:2])
|
||||
version_info = get_version_info()
|
||||
architecture = platform.architecture()[0]
|
||||
if self.architecture is None:
|
||||
self.architecture = (await asyncio.to_thread(platform.architecture))[0]
|
||||
payload = VersionPayload(
|
||||
package=version_info["package"].lower(),
|
||||
version=version_info["version"],
|
||||
|
|
@ -101,7 +103,7 @@ class TelemetryService(Service):
|
|||
python=python_version,
|
||||
cache_type=self.settings_service.settings.cache_type,
|
||||
backend_only=self.settings_service.settings.backend_only,
|
||||
arch=architecture,
|
||||
arch=self.architecture,
|
||||
auto_login=self.settings_service.auth_settings.AUTO_LOGIN,
|
||||
)
|
||||
await self._queue_event((self.send_telemetry_data, payload, None))
|
||||
|
|
|
|||
|
|
@ -107,9 +107,9 @@ class TracingService(Service):
|
|||
async def initialize_tracers(self) -> None:
|
||||
try:
|
||||
await self.start()
|
||||
self._initialize_langsmith_tracer()
|
||||
self._initialize_langwatch_tracer()
|
||||
self._initialize_langfuse_tracer()
|
||||
await asyncio.to_thread(self._initialize_langsmith_tracer)
|
||||
await asyncio.to_thread(self._initialize_langwatch_tracer)
|
||||
await asyncio.to_thread(self._initialize_langfuse_tracer)
|
||||
except Exception: # noqa: BLE001
|
||||
logger.opt(exception=True).debug("Error initializing tracers")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue