getsentry / getsentry/sentry-ruby

Cleanup configuration interface and make it fail gracefully

Abierto
#2,800 36 comentarios 0 reacciones 1 asignado Reclamado por @sl0thentr0py Ver en GitHub
Refactoring Ruby Task
Lenguaje dominante
Ruby
Estrellas
987
Forks
541
Merge medio
17 h 40 min
PR fusionados (30 d)
19

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.