chroma-core / chroma-core/chroma

[Bug]: Using client.add in HttpClient and AsyncHttpClient causes the client to terminate and exit.

Open
#5,196 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
29.3k
Forks
2.5k
Avg merge
1d 4h
Merged PRs (30d)
38

Description

### What happened?

start:

Image
add:

error:

None
Traceback (most recent call last):
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_transports\default.py", line 101, in map_httpcore_exceptions
yield
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_transports\default.py", line 394, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\connection_pool.py", line 256, in handle_async_request
raise exc from None
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\connection_pool.py", line 236, in handle_async_request
response = await connection.handle_async_request(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\connection.py", line 103, in handle_async_request
return await self._connection.handle_async_request(request)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\http11.py", line 136, in handle_async_request
raise exc
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\http11.py", line 106, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\http11.py", line 177, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_async\http11.py", line 217, in _receive_event
data = await self._network_stream.read(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_backends\anyio.py", line 32, in read
with map_exceptions(exc_map):
File "C:\miniconda3\envs\hgj-base\lib\contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\project\利用大模型进行数据分析的自动建模\demo.py", line 26, in
asyncio.run(main())
File "C:\miniconda3\envs\hgj-base\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\miniconda3\envs\hgj-base\lib\asyncio\base_events.py", line 649, in run_until_complete
return future.result()
File "C:\project\利用大模型进行数据分析的自动建模\demo.py", line 24, in main
await collection.add(embeddings=np.random.randn(1, 384), ids=["id1"])
File "C:\miniconda3\envs\hgj-base\lib\site-packages\chromadb\api\models\AsyncCollection.py", line 72, in add
await self._client._add(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\chromadb\telemetry\opentelemetry\__init__.py", line 134, in async_wrapper
return await f(*args, **kwargs)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\chromadb\api\async_fastapi.py", line 557, in _add
await self._submit_batch(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\chromadb\telemetry\opentelemetry\__init__.py", line 134, in async_wrapper
return await f(*args, **kwargs)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\chromadb\api\async_fastapi.py", line 530, in _submit_batch
return await self._make_request(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\chromadb\api\async_fastapi.py", line 150, in _make_request
response = await self._get_client().request(method, url, **cast(Any, kwargs))
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_client.py", line 1629, in send
response = await self._send_handling_auth(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_transports\default.py", line 393, in handle_async_request
with map_httpcore_exceptions():
File "C:\miniconda3\envs\hgj-base\lib\contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "C:\miniconda3\envs\hgj-base\lib\site-packages\httpx\_transports\default.py", line 118, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadError

find:

### Versions

chromadb==1.0.15
python==3.12
windows

### Relevant log output

```shell

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at AsyncCollection.add and the async_fastapi.py entry points named in the traceback: _add, _submit_batch, and _make_request. Reproduce the Windows Python 3.12 case with chromadb 1.0.15, then identify why the request raises httpx.ReadError and verify that client.add completes without terminating or exiting.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.