Passenger workers hang / segfault with Ruby 2.5 / concurrent-ruby 1.1.6

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

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
ruby
Lĩnh vực
backend

Hướng nghiên cứu

Start with lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb at line 113 and review the finalization path implicated by the backtrace. Compare the 1.1.6 behavior with 1.1.5 using Ruby 2.5.0 and the reported Passenger setup, then establish a reproducible check for the worker hang or segmentation fault. Done means the failure no longer occurs without regressing thread-local behavior.

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

Mô tả

bug

Thank you for all your hard work on the latest 1.1.6 release.

I recently upgraded our app gems and started noticing the passenger workers would become unresponsive (request queue = 100) and not shutdown (normal mem/no CPU usage) after ~12-24 hours. Inspecting the error logs, I found some segfaults that appeared related to the finalization code present in 1.1.6 and a possible MRI bug. Rolling back this single gem to 1.1.5 resolved the issue.

Phusion Passenger 5.0.24
Rails 6.0.0
* Operating system:                Ubuntu 14.04.6 LTS
* Ruby implementation:             ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* `concurrent-ruby` version:      1.1.6
* `concurrent-ruby-ext` installed: no
* `concurrent-ruby-edge` used:     no
Initial segfault data (let me know if the rest would be helpful)
App 26150 stderr: /opt/production_engine/shared/bundled_gems/ruby/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113:
App 26150 stderr: [BUG]
App 26150 stderr: Segmentation fault at 0x0000000000000050
App 26150 stderr:
App 26150 stderr: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
App 26150 stderr:
App 26150 stderr: -- Control frame information -----------------------------------------------
App 26150 stderr: c:0003
App 26150 stderr: p:----
App 26150 stderr: s:0011
App 26150 stderr: e:000010
App 26150 stderr: CFUNC
App 26150 stderr:  :push
App 26150 stderr:
App 26150 stderr: c:0002
App 26150 stderr: p:0017
App 26150 stderr: s:0006
App 26150 stderr: e:000005
App 26150 stderr: BLOCK
App 26150 stderr:  /opt/production_engine/shared/bundled_gems/ruby/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thr
App 26150 stderr:  [FINISH]
App 26150 stderr:
App 26150 stderr: c:0001
App 26150 stderr: p:0000
App 26150 stderr: s:0003
App 26150 stderr: E:0022e0
App 26150 stderr: (none)
App 26150 stderr:  [FINISH]
App 26150 stderr:
App 26150 stderr:
App 26150 stderr: -- Ruby level backtrace information ----------------------------------------
App 26150 stderr: /opt/production_engine/shared/bundled_gems/ruby/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113:in `block in thread_local_finalizer'
App 26150 stderr: /opt/production_engine/shared/bundled_gems/ruby/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113:in `push'
App 26150 stderr:
App 26150 stderr: -- Machine register context ------------------------------------------------
App 26150 stderr:  RIP: 0x00007f3d1c008d96
App 26150 stderr:  RBP: 0x0000000000000000
App 26150 stderr:  RSP: 0x00007ffed1b32bb0
App 26150 stderr:
App 26150 stderr:  RAX: 0x00007f3d187d61f8
App 26150 stderr:  RBX: 0x00007f3d1c0084e4
App 26150 stderr:  RCX: 0x00007f3d1e742ba8
App 26150 stderr:
App 26150 stderr:  RDX: 0x00007f3d1c0084ec
App 26150 stderr:  RDI: 0x0000000000000000
App 26150 stderr:  RSI: 0x00007f3d21a0c8e0
App 26150 stderr:
App 26150 stderr:   R8: 0x00007f3d1c2bc068
App 26150 stderr:   R9: 0x00007f3d1ddd5b20
App 26150 stderr:  R10: 0x0000000000000001
App 26150 stderr:
App 26150 stderr:  R11: 0x00007f3d14a0e199
App 26150 stderr:  R12: 0x00007f3d21a2f7a0
App 26150 stderr:  R13: 0x00007f3d232ac4d0
App 26150 stderr:
App 26150 stderr:  R14: 0x00007f3d1dd06248
App 26150 stderr:  R15: 0x00007f3d21a2f7a0
App 26150 stderr:  EFL: 0x0000000000010287
App 26150 stderr:
App 26150 stderr:
Ngôn ngữ chính
Ruby
Star
5.8k
Fork
420
Merge trung bình
20 giờ 45 phút
Pull request đã merge (30 ngày)
4

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

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 ruby-concurrency/concurrent-ruby

Tất cả issue của ruby-concurrency/concurrent-ruby

Issue tương tự

Thêm issue về Ruby

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.