Pool created with min_size loses inactive connections and never re-acquires them
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu từ asyncpg.create_pool và kiểm tra cách max_inactive_connection_lifetime tương tác với min_size khi các kết nối không hoạt động bị đóng. Tái hiện vấn đề bằng sleep được cung cấp và các lần kiểm tra pool.get_size(). Công việc được hoàn thành khi một pool được cấu hình với min_size duy trì hoặc có lại số lượng tối thiểu đó sau khi các kết nối không hoạt động hết thời gian chờ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I love asyncpg, been using it for years. However recently came across some unexpected behavior with v 0.30.0. It goes a little something like this.
Initialize a pool with a min_size:
import asyncio
import asyncpg
pool = await asyncpg.create_pool(min_size=10, max_size=20, **kwargs) # assume kwargs has connection info
print(f'Total: {pool.get_size()}')
# Total: 10
All good. But now let's say that nothing happens for over 5 minutes. You know, because max_inactive_connection_lifetime=300.0 by default. And check again:
await asyncio.sleep(305)
print(f'Total: {pool.get_size()}')
# Total: 0
Huh? Why isn't it still 10? No matter what I set for max_inactive_connection_lifetime this behavior happens immediately after that time, as long as the time is non-zero. If it's set to 0 then the behavior correctly doesn't happen.
I don't know if this is intentional or not, but as a developer, when I open a database pool with a minimum number of connections I expect that the pool will maintain that minimum, even if they are automatically closed or timeout.
- Ngôn ngữ chính
- Python
- Star
- 8.1k
- Fork
- 469
- Merge trung bình
- 2 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 9
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của MagicStack/asyncpg
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
MagicStack/asyncpg#1357 · 1 bình luận · 1 reaction ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
MagicStack/asyncpg#1342 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 56/100
MagicStack/asyncpg#1340 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 28/100
MagicStack/asyncpg#1337 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
MagicStack/asyncpg#1330 · 1 bình luận ·
Tất cả issue của MagicStack/asyncpg
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
anthropics/skills#1811 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
speaches-ai/speaches#678 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
datalayer/mcp-compose#42 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
conda-forge/spacy-feedstock#177 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
UKGovernmentBEIS/inspect_evals#2523 ·