-
-
Notifications
You must be signed in to change notification settings - Fork 763
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
undefined method `fetch_or_store' for {}:Hash (RSpec 3.3.0) #1999
Comments
I can't reproduce. This is the output I'm getting:
Nothing has changed in rspec-core (where I believe the bug relies) that is related to this since 3.3.0 was released. Here's the diff: The |
I just noticed that the travis failure you linked to was running 1.9.3. I tried against that version and I still can't reproduce. |
Sorry - I should've tried using a docker container from the start. I added a bogus change to trigger the failure on this branch: https://github.com/guard/listen/tree/trigger_fetch_or_store_problem (this change: guard/listen@4ccf665). If you can't reproduce that locally, here's how to reproduce an environment with the failure:
If that fails, give me some pointers on how what I should look out for to check/inspect/debug - I can bisect, but I'm not sure if that will help if this is a race condition of some sort. My system: AMD64, 4 cores, Ubuntu 15.04, ruby 2.2.1p85 (through RVM), gems:
|
Having never used docker....is |
Well, having never used OSX before ... (to be honest, I used it once, lol). It should be sufficient - docker runs a virtual machine with a micro os under Windows and OSX - and most stuff should work out of the box after installing it. |
My docker image is minimal (vim-tiny as editor, bash) and runs as user, so if you want to install anything extra as root, you'll need to instead do:
If you have any strange problems or inconveniences, let me know if I can help and get them out of your way. |
Sounds like mixed versions of RSpec... Possibly through guard holding old code? |
@JonRowe - not the issue: I listed the versions of RSpec used above. Only happens on currently released latest versions:
There's no lock on any RSpec version, Gemfile.lock is not in version control, etc. - and the docker image gets it's gems directly from rubygems at the latest available versions, so it's proof there's nothing specific to my setup, or Travis having old cached files/version. |
Have you actually verified that only those versions of rspec are installed? Because without a lock file you have no guarantee which versions are installed (Gemfile.lock should be in version control for apps) |
The alternative is something is monkey patching RSpec. That variable used to be a hash in a previous version of RSpec thats why I'm asking. |
Yes - install the docker container for yourself and check. It's basically my environment packaged in a 500MB VM for you to verify and debug. It could be related to rspec-retry, but this is about debugging RSpec internals. |
I've found the issue, |
Awesome work @JonRowe - thanks! |
I wanted to debug, but I'm out of time - sorry.
I'm getting it on 3.3.0 here:
https://travis-ci.org/guard/listen/jobs/67160910#L863
How to reproduce locally:
Fails here: rspec-core-3.3.0/lib/rspec/core/memoized_helpers.rb:295
Also:
so I guess this is fixed but not released.
The text was updated successfully, but these errors were encountered: