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

Build sessionPool blocking when the connection address is incorrect but the connection can still be established.

Đang mở
#620 2 bình luận 1 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ệ
java
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu từ constructor của SessionPool và theo dõi cách một timeout chưa được thiết lập truyền tới TProtocol, sau đó kiểm tra verifyClientVersion() và recv_verifyClientVersion(), nơi báo cáo quan sát thấy việc bị chặn. Tái hiện bằng một host có thể truy cập nhưng không chính xác, chẳng hạn như địa chỉ của NebulaGraph Studio. Hoàn thành khi timeout mặc định ngắn hơn và việc khởi tạo session pool không còn chờ vô thời hạn.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

**Describe the bug **
我基于sessionPool进行session管理,并且将sessionPool注册为spring boot bean,但是我们公司测试同事在配置时,错误的将NebulaGraph Studio访问端口配置成了hostAddress,导致服务长时间阻塞于启动状态。
因为我们基于k8s部署,设置了就绪探针,在阻塞几分钟后就被自动重启了,然后一直重复上述的步骤,且期间没有任何可以参考的日志。
后续排查到,最终阻塞在了最后的verifyClientVersion方法内部的recv_verifyClientVersion()。
Image
最终执行到readMessageBegion()之后就阻塞住了。
Image
原因应该是我没有设置timeout,前面一段默认在构建TProtocol时timeout给了一个Integer.MAX_VALUE。
Image

但是一般程序就绪探针的不会设置这么长的时间,这就导致还没有等到超时报错程序就被杀死重启了。
对于这个默认的timeout时间是否可以进行缩短。

**Your Environments **

  • JDK: 11

How To Reproduce

  1. 构建SessionPool时不设置timeout参数
  2. host设置为一个能连通当不正确的地址,如NebulaGraph Studio的访问地址
  3. 调用sessionPool构造器

Expected behavior

缩短在timeout未设置时传递给TProtocol的timeout值

Additional context

Ngôn ngữ chính
Java
Star
199
Fork
125
Merge trung bình
5 giờ 6 phút
Pull request đã merge (30 ngày)
3

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

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 vesoft-inc/nebula-java

Tất cả issue của vesoft-inc/nebula-java

Issue tương tự

Thêm issue về Java

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.