mirror of
https://github.com/qdrant/landing_page.git
synced 2026-10-06 11:28:31 +02:00
80 lines
2.8 KiB
Markdown
80 lines
2.8 KiB
Markdown
---
|
|
title: Troubleshooting
|
|
weight: 170
|
|
aliases:
|
|
- ../tutorials/common-errors
|
|
- /documentation/troubleshooting/
|
|
---
|
|
|
|
# Solving common errors
|
|
|
|
## Too many files open (OS error 24)
|
|
|
|
Each collection segment needs some files to be open. At some point you may encounter the following errors in your server log:
|
|
|
|
```text
|
|
Error: Too many files open (OS error 24)
|
|
```
|
|
|
|
In such a case you may need to increase the limit of the open files. It might be done, for example, while you launch the Docker container:
|
|
|
|
```bash
|
|
docker run --ulimit nofile=10000:10000 qdrant/qdrant:latest
|
|
```
|
|
|
|
The command above will set both soft and hard limits to `10000`.
|
|
|
|
If you are not using Docker, the following command will change the limit for the current user session:
|
|
|
|
```bash
|
|
ulimit -n 10000
|
|
```
|
|
|
|
Please note, the command should be executed before you run Qdrant server.
|
|
|
|
## Can't open Collections meta Wal
|
|
|
|
When starting a Qdrant instance as part of a distributed deployment, you may
|
|
come across an error message similar to this:
|
|
|
|
```bash
|
|
Can't open Collections meta Wal: Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }
|
|
```
|
|
|
|
It means that Qdrant cannot start because a collection cannot be loaded. Its
|
|
associated [WAL](/documentation/concepts/storage/#versioning) files are currently
|
|
unavailable, likely because the same files are already being used by another
|
|
Qdrant instance.
|
|
|
|
Each node must have their own separate storage directory, volume or mount.
|
|
|
|
The formed cluster will take care of sharing all data with each node, putting it
|
|
all in the correct places for you. If using Kubernetes, each node must have
|
|
their own volume. If using Docker, each node must have their own storage mount
|
|
or volume. If using Qdrant directly, each node must have their own storage
|
|
directory.
|
|
|
|
|
|
## Using python gRPC client with `multiprocessing`
|
|
|
|
When using the Python gRPC client with `multiprocessing`, you may encounter an error like this:
|
|
|
|
```text
|
|
<_InactiveRpcError of RPC that terminated with:
|
|
status = StatusCode.UNAVAILABLE
|
|
details = "sendmsg: Socket operation on non-socket (88)"
|
|
debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"sendmsg: Socket operation on non-socket (88)", grpc_status:14, created_time:"....."}"
|
|
```
|
|
|
|
This error happens, because `multiprocessing` creates copies of gRPC channels, which share the same socket. When the parent process closes the channel, it closes the socket, and the child processes try to use a closed socket.
|
|
|
|
To prevent this error, you can use the `forkserver` or `spawn` start methods for `multiprocessing`.
|
|
|
|
```python
|
|
import multiprocessing
|
|
|
|
multiprocessing.set_start_method("forkserver") # or "spawn"
|
|
```
|
|
|
|
Alternatively, you can switch to `REST` API, async client, or use built-in parallelization in the Python client - functions like `qdrant.upload_points(...)`
|