getsentry / getsentry/sentry-ruby

Cleanup configuration interface and make it fail gracefully

Aperta
#2,800 36 commenti 0 reazioni 1 assegnatario Rivendicata da @sl0thentr0py Vedi su GitHub
Refactoring Ruby Task
Lingua principale
Ruby
Stelle
987
Fork
541
Merge medio
17h 40m
PR unite (30g)
19

Descrizione

### 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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.