Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Pool created with min_size loses inactive connections and never re-acquires them

Đang mở
#1,268 0 bình luận 4 reaction 0 người được giao Xem trên GitHub

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
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
postgresql, python
Lĩnh vực
databases

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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của MagicStack/asyncpg

Tất cả issue của MagicStack/asyncpg

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.