NoMethodError: undefined method 'state' for nil:NilClass
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 32/100
Línea de trabajo
Comienza con spec/rails_helper.rb:77 y el transaction.rb:17 que falla, mostrados en el stack trace, y reproduce el fallo intermitente usando la configuración de Ruby, Rails, PostgreSQL y GitHub Actions indicada. Añade una prueba de regresión para el caso de una transacción nil y verifica que la suite se complete de forma fiable sin el NoMethodError.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Setup
- Ruby: 3.1.2
- Rails: 7.0.3.1
- PostgreSQL: 14.4
- OS: Ubuntu 20.04.4 LTS on WSL2
- GitHub Actions:
- Image: ubuntu-latest
- PostgreSQL: 14.2
---
Gemfile.lock:
database_cleaner-active_record (2.0.1)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
Error
From time to time, if a run my specs locally it might throw the error below, the fun thing is it errors for like two or three runs and then it passes (using same seed at all times);
This error also occurs occasionally on GitHub Actions, I have to re-run my workflow some times as well to make it pass (different seeds)
$ rspec spec/
Failure/Error:
DatabaseCleaner.cleaning do
example.run
end
NoMethodError:
undefined method `state' for nil:NilClass
transaction.rollback unless transaction.state.invalidated?
^^^^^^
# /home/lucas/.rvm/gems/ruby-3.1.2@perk-api-sch/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/transaction.rb:17:in `block in clean'
# /home/lucas/.rvm/gems/ruby-3.1.2@perk-api-sch/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/transaction.rb:15:in `each'
# /home/lucas/.rvm/gems/ruby-3.1.2@perk-api-sch/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/transaction.rb:15:in `clean'
# /home/lucas/.rvm/gems/ruby-3.1.2@perk-api-sch/gems/database_cleaner-core-2.0.1/lib/database_cleaner/strategy.rb:32:in `cleaning'
# /home/lucas/.rvm/gems/ruby-3.1.2@perk-api-sch/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:34:in `block (2 levels) in cleaning'
# /home/lucas/.rvm/gems/ruby-3.1.2@perk-api-sch/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:35:in `cleaning'
# ./spec/rails_helper.rb:77:in `block (2 levels) in <top (required)>'
Database Cleaner Config
DatabaseCleaner.strategy = :transaction
DatabaseCleaner[:active_record].clean_with :truncation, {
except: %w(
table_a
table_b
table_c
)
}
config.around do |example|
DatabaseCleaner.cleaning do
example.run
end
end
Any idea what might be causing this error and how to fix it?
Thanks for the gem and your attention.
- Lenguaje dominante
- Ruby
- Estrellas
- 3k
- Forks
- 485
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de DatabaseCleaner/database_cleaner
-
:transaction strategy: uncommitted data disappears after perform_enqueued_jobs on Rails ≥ 7.2Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 67/100
-
Cleaning of dev DBAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Cannot truncate a table referenced in a foreign key constraint (ActiveRecord::StatementInvalid)Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
DatabaseCleaner/database_cleaner#717 · 5 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
DatabaseCleaner/database_cleaner#716 · 2 comentarios ·
Todos los issues de DatabaseCleaner/database_cleaner
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
yegor256/rubocop-elegant#92 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
ecosyste-ms/awesome#812 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
forem/forem#23933 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Allow customizing the page titleAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
rails/mission_control-jobs#347 ·
-
PROJECT: ILR/DRS
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
thewca/worldcubeassociation.org#15914 ·
Los mantenedores suelen responder en 1 día