getsentry / getsentry/sentry-ruby

Cleanup configuration interface and make it fail gracefully

Đang mở
#2,800 36 bình luận 0 reaction 1 người được giao Được @sl0thentr0py nhận Xem trên GitHub
Refactoring Ruby Task
Ngôn ngữ chính
Ruby
Star
988
Fork
542
Merge trung bình
17 giờ 40 phút
Pull request đã merge (30 ngày)
19

Mô tả

### Issue Description

On server startup, when Sentry configuration may not be fully initialized, it seems that there are spots where `Sentry.configuration` may be `nil`.

This is very similar to other previous issues I've encountered around `Sentry.configuration` initialization: https://github.com/getsentry/sentry-ruby/issues/2782 https://github.com/getsentry/sentry-ruby/issues/2386

We should generally guard against non-initialized `Sentry.configuration` calls by ensuring that Sentry is initialized.

Currently, the method just exits early https://github.com/getsentry/sentry-ruby/blob/e219832b57c5aa32e41be4462dbe421c8c58bc67/sentry-ruby/lib/sentry-ruby.rb#L164C1-L167C8

Could it be changed such that if we are not initialized, we actually initialize Sentry? I feel this would prevent a whole class of `NoMethod no nil` errors I've personally run into.

### Reproduction Steps

During app boot (after a new deploy for example), we occasionally run into this type of error.

### Expected Behavior

Sentry does not cause a 500.

### Actual Behavior

Sentry causes a 500 with no backtrace.

### Ruby Version

3.4.4

### SDK Version

6.1.1

### Integration and Its Version

Rails 8.0.2

### Sentry Config

Default

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

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

Đánh giá

Issue này chưa được đánh giá.

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.