Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intermittent failure when running Postgres tests: undefined method 'name' in clean_versions! #699

Closed
bronson opened this issue Jan 18, 2016 · 4 comments

Comments

@bronson
Copy link

bronson commented Jan 18, 2016

Got this in two iterations while running DB=postgres rake tests.

(re-running, this appears to be a lot more rare than it would originally seem... I'm now at 50 iterations without having hit this again. First time luck.)

PaperTrailCleanerTest#test_: `clean_versions!` method No options provided should removes the earliest version(s). :
NoMethodError: undefined method `name' for nil:NilClass
    /Users/bronson/paper_trail/test/unit/cleaner_test.rb:34:in `block (4 levels) in <class:PaperTrailCleanerTest>'
    /Users/bronson/paper_trail/test/unit/cleaner_test.rb:34:in `map'
    /Users/bronson/paper_trail/test/unit/cleaner_test.rb:34:in `block (3 levels) in <class:PaperTrailCleanerTest>'
    shoulda-context (1.2.1) lib/shoulda/context/context.rb:413:in `instance_exec'
    shoulda-context (1.2.1) lib/shoulda/context/context.rb:413:in `block in create_test_from_should_hash'
    minitest (5.8.3) lib/minitest/test.rb:108:in `block (3 levels) in run'
    minitest (5.8.3) lib/minitest/test.rb:205:in `capture_exceptions'
    minitest (5.8.3) lib/minitest/test.rb:105:in `block (2 levels) in run'
    minitest (5.8.3) lib/minitest/test.rb:256:in `time_it'
    minitest (5.8.3) lib/minitest/test.rb:104:in `block in run'
    minitest (5.8.3) lib/minitest.rb:334:in `on_signal'
    minitest (5.8.3) lib/minitest/test.rb:276:in `with_info_handler'
    minitest (5.8.3) lib/minitest/test.rb:103:in `run'
    minitest (5.8.3) lib/minitest.rb:781:in `run_one_method'
    minitest (5.8.3) lib/minitest.rb:308:in `run_one_method'
    minitest (5.8.3) lib/minitest.rb:296:in `block (2 levels) in run'
    minitest (5.8.3) lib/minitest.rb:295:in `each'
    minitest (5.8.3) lib/minitest.rb:295:in `block in run'
    minitest (5.8.3) lib/minitest.rb:334:in `on_signal'
    minitest (5.8.3) lib/minitest.rb:321:in `with_info_handler'
    minitest (5.8.3) lib/minitest.rb:294:in `run'
    minitest (5.8.3) lib/minitest.rb:155:in `block in __run'
    minitest (5.8.3) lib/minitest.rb:155:in `map'
    minitest (5.8.3) lib/minitest.rb:155:in `__run'
    minitest (5.8.3) lib/minitest.rb:129:in `run'
    minitest (5.8.3) lib/minitest.rb:56:in `block in autorun'

Full output: https://gist.github.com/bronson/d597d03e7ca80ac82869

Originally reported in #696

@bronson
Copy link
Author

bronson commented Jan 18, 2016

Died after 78 iterations. Different error message but also happening in clean_versions! so it seems related:

ITERATION 78
warning: parser/current is loading parser/ruby22, which recognizes
warning: 2.2.3-compliant syntax, but you are running 2.2.2.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Running RuboCop...
Inspecting 31 files
...............................

31 files inspected, no offenses detected
Run options: --seed 11172

# Running:

..................F.................................................................................................................................................................................................................................................................................................

Finished in 18.820786s, 16.3649 runs/s, 31.5609 assertions/s.

  1) Failure:
PaperTrailCleanerTest#test_: `clean_versions!` method No options provided should removes the earliest version(s).  [/Users/bronson/paper_trail/test/unit/cleaner_test.rb:34]:
--- expected
+++ actual
@@ -1 +1 @@
-["Rosendo Howell", "Dasia Bahringer", "Wilton Dach"]
+["Rosendo Howell", "Queen Gulgowski", "Wilton Dach"]


308 runs, 594 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -I"lib:lib:test"  "/Users/bronson/.rubies/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_test_loader.rb" "test/**/*_test.rb" ]

@owenr
Copy link
Contributor

owenr commented Jan 19, 2016

This is due to Postgresql returning rows in arbitrary order unless specifically ordered. I fixed it in a commit on #689 since I originally thought it was due to AR5. Would you like a separate pull request to address this?

@jaredbeck
Copy link
Member

Would you like a separate pull request to address this?

Yes, please, that'd be great!

@owenr
Copy link
Contributor

owenr commented Jan 21, 2016

Closed by #701 (and subsequent improvement from @batter)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants