Comments (15)
FWIW this is the actual previous fix to derailed (use of module_function
). The reason it came up again, is my dependency dead_end
is also monkeypatches and had the same interaction with zeitwerk.
from derailed_benchmarks.
Hello @atstockland
Which Ruby and Rails version are you using?
Do you think you share the full stack trace?
Cheers 🌮
from derailed_benchmarks.
ruby -v 2.6.2
rails -v 6.0.0.beta3
I'll post the full stack trace shortly.
from derailed_benchmarks.
which curl = /usr/bin/curl
gem 'derailed_benchmarks', group: :development
gem 'stackprof', group: :development
running $ bundle exec derailed bundle:mem results in:
I have not set any headers...
bundler: failed to load command: derailed (/Users/adam_ant/.rbenv/versions/2.6.2/bin/derailed)
NoMethodError: private method warn' called for nil:NilClass /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/deprecation/proxy_wrappers.rb:148:in
warn'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/deprecation/proxy_wrappers.rb:23:in method_missing' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/deprecation/proxy_wrappers.rb:125:in
initialize'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/deprecation/proxy_wrappers.rb:10:in new' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/deprecation/proxy_wrappers.rb:10:in
new'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/railties/lib/rails/source_annotation_extractor.rb:8:in <top (required)>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in
require'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in block (2 levels) in <top (required)>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:49:in
measure_memory_impact'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in block in <top (required)>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:16:in
require'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:302:in block in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:268:in
load_dependency'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:302:in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/railties/lib/rails/application/configuration.rb:7:in
<top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in
block (2 levels) in <top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:49:in measure_memory_impact' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in
block in <top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:16:in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:302:in
block in require'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:268:in load_dependency' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:302:in
require'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sprockets-rails-3.2.1/lib/sprockets/railtie.rb:18:in <class:Application>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sprockets-rails-3.2.1/lib/sprockets/railtie.rb:15:in
module:Rails'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/sprockets-rails-3.2.1/lib/sprockets/railtie.rb:14:in <top (required)>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in
require'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in block (2 levels) in <top (required)>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:49:in
measure_memory_impact'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in block in <top (required)>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:16:in
require'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:302:in block in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:268:in
load_dependency'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/activesupport/lib/active_support/dependencies.rb:302:in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/railties/lib/rails/all.rb:21:in
block in <top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/railties/lib/rails/all.rb:19:in each' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/bundler/gems/rails-e9d1d7668604/railties/lib/rails/all.rb:19:in
<top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in
block (2 levels) in <top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:49:in measure_memory_impact' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:63:in
block in <top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/lib/derailed_benchmarks/core_ext/kernel_require.rb:16:in require' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/bin/derailed:85:in
setup_bundler!'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/bin/derailed:66:in block in <class:DerailedBenchmarkCLI>' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/thor-0.20.3/lib/thor/command.rb:27:in
run'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in invoke_command' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/thor-0.20.3/lib/thor.rb:387:in
dispatch'
/Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/thor-0.20.3/lib/thor/base.rb:466:in start' /Users/adam_ant/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/derailed_benchmarks-1.3.5/bin/derailed:92:in
<top (required)>'
/Users/adam_ant/.rbenv/versions/2.6.2/bin/derailed:23:in load' /Users/adam_ant/.rbenv/versions/2.6.2/bin/derailed:23:in
<top (required)>'
from derailed_benchmarks.
This is a breaking change in Rails 6. If I remove these two lines the command works.
https://github.com/rails/rails/blob/6-0-stable/railties/lib/rails/source_annotation_extractor.rb#L7-L8
I keep digging.
from derailed_benchmarks.
Here is a draft patch that could help. #130
from derailed_benchmarks.
This error seems to be reoccuring on v2.0.0, but goes away in my Rails 6.0.3.4 app using Ruby 2.6.6. I think something went wrong with the build for 2.0.0 so it might need yanked from rubygems and another version put out? See
for the missing pull request notice https://github.com/schneems/derailed_benchmarks/runs/1703383372
from derailed_benchmarks.
The error is reproduced using:
- Ruby 2.7.0
- Rails 6.0.3
- derailed_benchmarks 2.0.0
- stackprof 0.2.16
This issue is limited to derailed_benchmarks 2.0.0, an earlier version such as v1.8.1 is working correctly.
from derailed_benchmarks.
- History: https://github.com/schneems/derailed_benchmarks/commits/main/lib/derailed_benchmarks/core_ext/kernel_require.rb
- Added: 209a52a
- Removed: 2911899
I'm not sure why the tests pass if the bug still exist.
from derailed_benchmarks.
Actually, strike that, it looks like I merged the functionality and then commented it out in the same PR? @benoittgt any ideas?
@eldad87 @nextekcarl could one of you by any chance make an https://www.codetriage.com/example_app that reproduces the issue so that I can debug?
from derailed_benchmarks.
Confirmed this is also happening for me. I've tested on 2.6.6 and 2.7.7 on a rails 6.0.3.4 app.
from derailed_benchmarks.
Downgrading to 1.8.1 resolved the issue.
from derailed_benchmarks.
I'm able to see this with an example app: https://github.com/schneems/derailed_warn_repro_app
6 rails _6.0.3.4_ new repro_app
7 cd repro_app
8 echo "gem 'derailed_benchmarks'" >> Gemfile
9 bundle install
10 git init .; git add .; git commit -mfirst
11 bundle exec derailed bundle:mem
Produces:
$ bundle exec derailed bundle:mem
# ...
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/deprecation/proxy_wrappers.rb:172:in `method_missing'
/Users/rschneeman/.gem/ruby/2.6.6/gems/derailed_benchmarks-2.0.0/lib/derailed_benchmarks/core_ext/kernel_require.rb:30:in `block in require'
/Users/rschneeman/.gem/ruby/2.6.6/gems/derailed_benchmarks-2.0.0/lib/derailed_benchmarks/core_ext/kernel_require.rb:65:in `measure_memory_impact'
/Users/rschneeman/.gem/ruby/2.6.6/gems/derailed_benchmarks-2.0.0/lib/derailed_benchmarks/core_ext/kernel_require.rb:29:in `require'
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `block in require'
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:291:in `load_dependency'
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/dependencies.rb:324:in `require'
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/deprecation/proxy_wrappers.rb:132:in `initialize'
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/deprecation/proxy_wrappers.rb:128:in `new'
/Users/rschneeman/.gem/ruby/2.6.6/gems/activesupport-6.0.3.4/lib/active_support/deprecation/proxy_wrappers.rb:128:in `new'
/Users/rschneeman/.gem/ruby/2.6.6/gems/railties-6.0.3.4/lib/rails/source_annotation_extractor.rb:162:in `<top (required)>'
/Users/rschneeman/.gem/ruby/2.6.6/gems/dead_end-1.1.2/lib/dead_end/auto.rb:19:in `require'
/Users/rschneeman/.gem/ruby/2.6.6/gems/dead_end-1.1.2/lib/dead_end/auto.rb:19:in `require'
from derailed_benchmarks.
This is my fault. I have a fix. It should be released today.
from derailed_benchmarks.
This should be fixed now:
$ gem install dead_end -v 1.1.3
$ bundle update dead_end
I could rev the dependency on derailed benchmarks to make the dependency ~> 1.1.3
and release a 2.0.1 if you think it's helpful. Otherwise, anyone new to upgrading to derailed 2.0 for existing apps will grab the latest dead_end version. Let me know what you think.
Sorry for this breakage. I should have known about this problem with zeitwerk and monkeypatching require as it's not the first time it's come up. Thank you all for reporting this.
from derailed_benchmarks.
Related Issues (20)
- Ruby 3.0 support HOT 1
- DERAILED_SKIP_RAILS_REQUIRES var doesn't seem to work with minimal greenfield application HOT 2
- I don't get this result, seems out of whack HOT 2
- How does this work? HOT 3
- Authentication with sorcery HOT 4
- perf:objects won't boot HOT 2
- ActiveRecord::Migrator.migrate(ActiveRecord::Migrator.migrations_paths, nil) HOT 1
- Standardize formatting with a linter and add a lint check to CI HOT 1
- Fix CI and port to GitHub actions HOT 1
- Fix tests with Ruby 3.1.2 HOT 1
- Stack level too deep HOT 1
- Parsing issues when timing output to log is large HOT 1
- How to run derailed_benchmark's build locally (for contributing) ? HOT 2
- bundle:mem doesn't seem to be deterministic - is this expected? HOT 1
- N+1 Query on UsersController#projects
- Update derailed to depend on syntax_search
- How do I make a request to a endpoint that requires POST?
- SSL connection error: HOT 1
- Compatibility in ruby >=3.2 ? HOT 2
- Blocked host on development environment HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from derailed_benchmarks.