getsentry / getsentry/sentry-ruby

Cleanup configuration interface and make it fail gracefully

Ouverte
#2,800 36 commentaires 0 réactions 1 personne assignée Réclamée par @sl0thentr0py Voir sur GitHub
Refactoring Ruby Task
Langage dominant
Ruby
Étoiles
987
Forks
541
Merge moyen
17 h 40 min
PR mergées (30 j)
19

Description

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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.