Tôi đã thấy tình huống này xảy ra khi bạn chạy Flask ở Chế độ gỡ lỗi . Nếu mã của bạn ném ra một ngoại lệ và trình gỡ lỗi bắt đầu hoạt động, giao dịch sẽ không bao giờ bị "khôi phục" hoặc "bị loại bỏ". Do đó, phiên được sử dụng theo yêu cầu không thành công sẽ không bao giờ được quay trở lại nhóm.
Giải pháp là tắt chế độ gỡ lỗi.
CHỈNH SỬA:
Có một tình huống khác mà tôi đã thấy điều này xảy ra. Nếu bạn có mã chạy tự động (tức là không phải là một phần của giao dịch HTTP - giống như một luồng độc lập được bắt đầu và sinh ra khi khởi chạy ứng dụng Flask), nó thường sẽ liên quan đến chế độ ngủ. Nếu bạn truy cập phiên trước khi ngủ, thì bạn sẽ kết thúc với một giao dịch bị treo như thế này trong khi ngủ.
Một khả năng khác là bạn đang truy cập một phiên từ chức năng tạo ứng dụng. Nếu bạn làm như vậy, hãy đảm bảo .remove () nó. Nếu không, phiên đó có thể vẫn bị treo trên chuỗi chính trong ứng dụng gevent.