Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Failed worker pool construction raises an extra destructor exception

Open
#814 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@IlyaKhalafi is already working on this.

Since Oct 14, 2026.

  • #815 by @IlyaKhalafi — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
25/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
python
Domain
backend

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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from qdrant/fastembed

All issues in qdrant/fastembed

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.