Failed worker pool construction raises an extra destructor exception
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 25/100
Research direction
The bug is in ParallelWorkerPool in the fastembed.parallel_processor module: get_context rejects the start method before self.processes is set, and __del__ then reads that attribute. Run the one-line reproduction from the issue to confirm the extra unraisable AttributeError. Done means the constructor still raises ValueError and destruction emits nothing else. Pull request #815 is already open against this issue, so review it before starting new work.
Written by the indexing model from the issue text.
Description
Selecting an unsupported multiprocessing start method raises the expected ValueError, then emits an unrelated unraisable AttributeError from ParallelWorkerPool.__del__.
Reproduced on main at f48af32 with Python 3.12 on Linux.
from fastembed.parallel_processor import ParallelWorkerPool, Worker
ParallelWorkerPool(1, Worker, start_method="unsupported")
get_context rejects the method before self.processes is initialized. The destructor then tries to iterate that missing attribute.
The constructor should still raise ValueError, but destruction of the partially initialized pool should not emit a second exception. This also affects a platform-specific start method that is unavailable on the current system.
- Dominant language
- Python
- Stars
- 3.2k
- Forks
- 276
- Avg merge
- 13h 15m
- Merged PRs (30d)
- 57
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from qdrant/fastembed
-
Non-positive worker counts wait for results without starting workersPossibly taken @IlyaKhalafi claimed this 6 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
[Feature]: Support pillow 13Possibly taken @svaningelgem claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
Late interaction normalization produces nonfinite float16 embeddingsPossibly taken @IlyaKhalafi claimed this 4 days ago. Open
Difficulty 3/5 Half a day Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Worker crashes go unnoticed while waiting for a resultPossibly taken @IlyaKhalafi claimed this 4 days ago. Open
Difficulty 3/5 Half a day Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
[Bug]: rerank_pairs raises TypeError when pairs are passed as a tuple of pairsPossibly taken @michaelkillgta claimed this 10 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 22/100
Maintainers usually reply within 1 day
All issues in qdrant/fastembed
Similar issues
-
Edit tool converts CRLF files to LFPossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
huggingface/tau#774 ·
Maintainers usually reply within 1 day
-
show ignores the row limit when a column or table name contains "limit"Possibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 2 days
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
eclipse-score/inc_someip_gateway#356 ·
Maintainers usually reply within 2 days