Passenger workers hang / segfault with Ruby 2.5 / concurrent-ruby 1.1.6
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
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ả
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
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 ruby-concurrency/concurrent-ruby
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
ruby-concurrency/concurrent-ruby#1118 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
ruby-concurrency/concurrent-ruby#1099 · 9 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
ruby-concurrency/concurrent-ruby#1095 · 8 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
ruby-concurrency/concurrent-ruby#1093 · 3 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
ruby-concurrency/concurrent-ruby#1091 ·
Tất cả issue của ruby-concurrency/concurrent-ruby
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
バグ
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
-
Version bump for OpenVox 9 Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
voxpupuli/puppet-epel#186 · 1 bình luận ·
-
external_created_at is no longer used for the message timestamp since the new message UI (v4.4.0) Đang mởBug Frontend
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100