mileszs / wicked_pdf

PDF generator (from HTML) plugin for Ruby on Rails
http://www.mileszs.com/wicked-pdf-plugin
MIT License
3.54k stars 645 forks source link

Problem upgrading to 1.2.0 #810

Closed etal2 closed 4 years ago

etal2 commented 5 years ago

After upgrading from 1.1.0 to 1.2.0 all requests to the rails app fail. The system seems to go into an infinite loop when trying to render the page. The log shows FATAL Rails : SystemStackError (stack level too deep): wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:inrender_with_wicked_pdf' ... (this goes on and on)... wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:inrender_with_wicked_pdf' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:inrender_with_wicked_pdf' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:30:in render' wicked_pdf (1.2.0) lib/wicked_pdf/pdf_helper.rb:43:inrender_with_wicked_pdf' actionpack (4.2.11.1) lib/action_controller/metal/implicit_render.rb:10:in default_render' actionpack (4.2.11.1) lib/action_controller/metal/implicit_render.rb:5:insend_action'

System configuration: Ubuntu 18.04 Rails 4.2.11.1 Ruby 2.4.5

vzamanillo commented 5 years ago

Same here.

System configuration: CentOS 7 Rails 4.2.10 Ruby 2.3.1

related #574

guizmaii commented 5 years ago

Same here

Rails 4.2.11.1 JRyby 9.2.6.0

thomasbalsloev commented 5 years ago

I get a stack overflow in Warden when using Wicked_PDF 1.2.0.

#<Thread:0x000000000a7744a8@puma 001@/home/tb/.rvm/gems/ruby-2.6.1@rails51/gems/puma-3.12.0/lib/puma/thread_pool.rb:87 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
/home/tb/.rvm/gems/ruby-2.6.1@rails51/gems/warden-1.2.8/lib/warden/manager.rb:34:in `catch': machine stack overflow in critical region (fatal)

I use: Ruby 5.1.6.1 Ruby 2.6.1 Linux Mint 18.3

Locking wicked PDF version to 1.1.0 makes the problem go away and things run normal again.

chrisfunk12 commented 5 years ago

Same issue SystemStackError: stack level too deep (Most recent call first) on Heroku. Any ideas?

vzamanillo commented 5 years ago

Same issue SystemStackError: stack level too deep (Most recent call first) on Heroku. Any ideas?

If you are on Rails you can pin the wicked_pdf version to 1.1.1 in your Gemfile.

unixmonkey commented 5 years ago

Thanks for reporting the issue everyone. I've pushed up a fix in #813 and released a new version 1.2.1 that should hopefully fix this for most or all of you (although I'm not quite sure about you @P9GIT). Please install and test the update and report back.

If you can provide more info about what other gems might be interfering by stepping into the render pdf: call with pry-nav or byebug, it would be very much appreciated.

thomasbalsloev commented 5 years ago

@unixmonkey

Thanks for the update. Unfortunately I still get the stack overflow with version 1.2.1. I got a stack trace which resembles what @etal2 reports.

... goes on and on ...
- remotipart (1.4.2) lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `call'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:30:in `render'
 - remotipart (1.4.2) lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `call'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:30:in `render'
 - remotipart (1.4.2) lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `call'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
 - wicked_pdf (1.2.1) lib/wicked_pdf/pdf_helper.rb:30:in `render'
 - responders (2.4.1) lib/action_controller/responder.rb:238:in `default_render'
 - responders (2.4.1) lib/action_controller/responder.rb:170:in `to_html'
 - responders (2.4.1) lib/action_controller/responder.rb:163:in `respond'
 - responders (2.4.1) lib/action_controller/responder.rb:156:in `call'
 - responders (2.4.1) lib/action_controller/respond_with.rb:211:in `respond_with'
 - devise (4.6.1) app/controllers/devise/sessions_controller.rb:14:in `new'
 - actionpack (5.1.6.2) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'

This happens if I just HTTP GET our login page. See attached txt file for full stack trace. stack_trace.txt

Seems gem "remotipart" has something to do with this.

vzamanillo commented 5 years ago

Confirmed.

Extra info, ancestor chain:

[HomeController
ApplicationController
WickedPdf::PdfHelper
ActionController::Base
Remotipart::RenderOverrides
ERB::Util
Remotipart::RequestHelper
Turbolinks::XHRHeaders
Turbolinks::Cookies
Turbolinks::XDomainBlocker
Turbolinks::Redirection
ActionController::Serialization
....
ActiveSupport::Configurable
Object
PP::ObjectMixin
ActiveSupport::Dependencies::Loadable
V8::Conversion::Object
JSON::Ext::Generator::GeneratorMethods::Object
Kernel
BasicObject]

method(:render).super_method

calls to Remotipart RenderOverrides

#<Method: ActionController::Metal(Remotipart::RenderOverrides)#render(render_with_remotipart)>

7coAim commented 5 years ago

@unixmonkey

Thanks for the update. I too still get the stack overflow with version 1.2.1.

SystemStackError:
  stack level too deep
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
...
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
...
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
# /xxxxxxxxx/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
# ./app/controllers/xxxxxxx_controller.rb:12:in `create'     # =>  render status: :ok, json: { status: :ok }
unixmonkey commented 5 years ago

@P9GIT Question for you: Were you using WickedPDF 1.1.0 without issue, or did you just start with 1.2.0? The older version still uses prepend, but without inheritance. I'd be curious if reversing just the changes from #574 would be helpful, or if I need to attack this from another angle.

Worst case, I think I could release a version where you can opt-in or out of including the render override, and translate render pdf: 'mypdf' calls to render_with_wicked_pdf() (or some new alias like wicked_pdf(options) calls on systems that have this kind of conflict.

adzap commented 5 years ago

@unixmonkey can you take a look at PR #812 as I think it could solve this issue and cleanup things a bit.

ziaulrehman40 commented 5 years ago

I can also confirm the issue(s) in 1.2.1, my stack: ruby: 2.5.3 rails: 5.2.2.1

And we have been using this gem for quiet some time. We faced issues when updating our stack due to security fixes in rails and devise and some other gems. And were hit by this, locking to 1.1.1 (version we were using prior) fixes the issue. Didn't dig deep but it didn't even let our server load home page with:

fatal (machine stack overflow in critical region):

ActionView::Template::Error: can't modify frozen fatal
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:323:in `handle_render_error'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:162:in `rescue in render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:156:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_view.rb:32:in `render_with_layout'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:52:in `render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:16:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:44:in `render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:25:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/helpers/rendering_helper.rb:33:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/haml-5.0.4/lib/haml/helpers/action_view_mods.rb:14:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `block in render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:65:in `block (3 levels) in broadcast'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:63:in `block (2 levels) in broadcast'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb:15:in `___sers_dev__rvm_gems_ruby_______gems_actionpack_________lib_action_dispatch_middleware_templates_rescues_diagnostics_html_erb__2088889649381863463_70350793849260'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:159:in `block in render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:170:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:354:in `instrument_render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/template.rb:157:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_view.rb:29:in `block in render_with_layout'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_view.rb:28:in `render_with_layout'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:52:in `render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/template_renderer.rb:16:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:44:in `render_template'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/renderer/renderer.rb:25:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/helpers/rendering_helper.rb:33:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/haml-5.0.4/lib/haml/helpers/action_view_mods.rb:14:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `block in render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:65:in `block (3 levels) in broadcast'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger_silence.rb:21:in `silence'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/logger.rb:63:in `block (2 levels) in broadcast'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:46:in `render'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:102:in `render_for_browser_request'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:87:in `render_exception'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rollbar-2.19.3/lib/rollbar/middleware/rails/show_exceptions.rb:18:in `render_exception_with_rollbar'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/extensions.rb:3:in `render_exception_with_web_console'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:71:in `rescue in call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rollbar-2.19.3/lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/middleware.rb:28:in `block in call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `catch'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/railties-5.2.2.1/lib/rails/rack/logger.rb:38:in `call_app'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/railties-5.2.2.1/lib/rails/rack/logger.rb:28:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/action_dispatch/request_id.rb:12:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-2.0.6/lib/rack/method_override.rb:22:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-2.0.6/lib/rack/runtime.rb:22:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-livereload-0.3.17/lib/rack/livereload.rb:23:in `_call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-livereload-0.3.17/lib/rack/livereload.rb:14:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_dispatch/middleware/static.rb:127:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/rack-2.0.6/lib/rack/sendfile.rb:111:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/skylight-core-3.1.5/lib/skylight/core/probes/middleware.rb:26:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/railties-5.2.2.1/lib/rails/engine.rb:524:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/configuration.rb:227:in `call'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/server.rb:660:in `handle_request'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/server.rb:474:in `process_client'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/server.rb:334:in `block in run'
    from /Users/dev/.rvm/gems/ruby-2.5.3/gems/puma-3.12.1/lib/puma/thread_pool.rb:135:in `block in spawn_thread'

And our tests were failing with stack level too deep issue:

# /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/remotipart-1.4.2/lib/remotipart/render_overrides.rb:16:in `render_with_remotipart'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/wicked_pdf-1.2.1/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/implicit_render.rb:35:in `default_render'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `block in send_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `tap'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/base.rb:194:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:132:in `run_callbacks'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in `instrument'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/activerecord-5.2.2.1/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/abstract_controller/base.rb:134:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionview-5.2.2.1/lib/action_view/rendering.rb:32:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/metal.rb:191:in `dispatch'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/test_case.rb:516:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/template_assertions.rb:61:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:35:in `block in process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:102:in `catch'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:102:in `_catch_warden'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/devise-4.6.1/lib/devise/test/controller_helpers.rb:35:in `process'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/actionpack-5.2.2.1/lib/action_controller/test_case.rb:395:in `get'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/integration.rb:13:in `block (2 levels) in <module:Integration>'
     # ./spec/controllers/xyz_controller.rb:18:in `block (2 levels) in <top (required)>'
     # /Users/dev/.rvm/gems/ruby-2.5.3/gems/rspec-prof-0.0.7/lib/rspec-prof.rb:76:in `block (2 levels) in <top (required)>'

Let me know if i can provide any more information to help solve this issue.

thomasbalsloev commented 5 years ago

@unixmonkey

We have used 1.1.0 for a long period before the update without a hitch.

JoelNichols commented 5 years ago

Can confirm I've been experiencing the same issue. 1.1.0 works fine, 1.2.0 causes a stack overflow.

pingvistyle commented 5 years ago

On wicked_pdf version 1.2.1 problem reproduces:

`fatal - machine stack overflow in critical region:

^C/Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/web-console-2.3.0/lib/web_console/middleware.rb:18: [BUG] vm_call_cfunc: cfp consistency error (0x000000010f65efa0, 0x000000010f65eaf0) ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]

-- Crash Report log information -------------------------------------------- See Crash Report log file under the one of following:

-- Control frame information ----------------------------------------------- c:0028 p:---- s:0207 e:000206 CFUNC :synchronize c:0027 p:---- s:0204 e:000203 CFUNC :catch c:0026 p:0007 s:0199 E:000f88 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/web-console-2.3.0/lib/web_console/middleware.rb:18 c:0025 p:0024 s:0192 E:001038 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/show_excep c:0024 p:0041 s:0185 E:000f90 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/rack/logger.rb:36 c:0023 p:0009 s:0177 E:001fa0 BLOCK /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/rack/logger.rb:24 c:0022 p:0004 s:0174 E:000dd0 BLOCK /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/tagged_logging.rb:6 c:0021 p:0013 s:0171 E:001070 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/tagged_logging.rb:2 c:0020 p:0012 s:0165 E:000728 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/tagged_logging.rb:6 c:0019 p:0041 s:0160 E:002630 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/rack/logger.rb:24 c:0018 p:0040 s:0154 E:0000c8 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13 c:0017 p:0019 s:0149 E:0010b8 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/request_store-1.4.0/lib/request_store/middleware.rb:19 c:0016 p:0039 s:0142 E:000330 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/request_id c:0015 p:0091 s:0136 E:001050 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.6/lib/rack/method_override.rb:22 c:0014 p:0020 s:0130 E:001110 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.6/lib/rack/runtime.rb:22 c:0013 p:0033 s:0120 E:001148 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/cache/strategy/loca c:0012 p:0016 s:0113 E:001190 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/executor.r c:0011 p:0083 s:0105 E:0011d0 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/static.rb: c:0010 p:0008 s:0097 E:001230 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.6/lib/rack/sendfile.rb:111 c:0009 p:0173 s:0085 E:001e88 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/webpacker-3.5.5/lib/webpacker/dev_server_proxy.rb:22 c:0008 p:0011 s:0080 E:001ae8 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:57 c:0007 p:0020 s:0074 E:001490 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/engine.rb:522 c:0006 p:0026 s:0068 E:001488 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/configuration.rb:225 c:0005 p:0258 s:0063 E:000dd8 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:632 c:0004 p:0026 s:0038 E:001d10 METHOD /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:446 c:0003 p:0065 s:0026 E:001dd8 BLOCK /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:306 [FINISH] c:0002 p:0090 s:0016 E:002530 BLOCK /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/thread_pool.rb:90 [FINISH] c:0001 p:---- s:0003 e:000002 (none) [FINISH]

-- Ruby level backtrace information ---------------------------------------- /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/thread_pool.rb:90:in block in spawn_thread' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:306:inblock in run' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:446:in process_client' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:632:inhandle_request' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.11.4/lib/puma/configuration.rb:225:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/engine.rb:522:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:57:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/webpacker-3.5.5/lib/webpacker/dev_server_proxy.rb:22:inperform_request' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.6/lib/rack/sendfile.rb:111:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/static.rb:136:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/executor.rb:12:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/cache/strategy/local_cache_middleware.rb:28:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.6/lib/rack/runtime.rb:22:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.6/lib/rack/method_override.rb:22:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/request_id.rb:24:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/request_store-1.4.0/lib/request_store/middleware.rb:19:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/rack/logger.rb:24:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/tagged_logging.rb:69:in tagged' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/tagged_logging.rb:26:intagged' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.0.7.1/lib/active_support/tagged_logging.rb:69:in block in tagged' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/rack/logger.rb:24:inblock in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.1/lib/rails/rack/logger.rb:36:in call_app' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionpack-5.0.7.1/lib/action_dispatch/middleware/show_exceptions.rb:31:incall' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in call' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:incatch' /Users/arsenabalyan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/web-console-2.3.0/lib/web_console/middleware.rb:18:in `synchronize'

-- C level backtrace information ------------------------------------------- 0 ruby 0x000000010d61e607 rb_vm_bugreport + 135 1 ruby 0x000000010d4960d6 rb_bug + 470 2 ruby 0x000000010d611603 vm_call_cfunc + 1587 3 ruby 0x000000010d5f7d24 vm_exec_core + 10516 4 ruby 0x000000010d60b780 vm_exec + 144 5 ruby 0x000000010d60a21a vm_invoke_proc + 362 6 ruby 0x000000010d5cdbd2 thread_start_func_2 + 1762 7 ruby 0x000000010d5cd4c8 thread_start_func_1 + 184 8 libsystem_pthread.dylib 0x00007fff53b9a661 _pthread_body + 340 9 libsystem_pthread.dylib 0x00007fff53b9a50d _pthread_body + 0

-- Other runtime information -----------------------------------------------

AleksandrLeontev commented 5 years ago

Hi when I use 1.2.1 version (with 1.1.0 gem works), I have this problem:

<Thread:0x00007fcb7933e3b0@puma 001@/Users/aleksandrleontev/.rvm/gems/ruby-2.6.2@mvp/gems/puma-3.12.1/lib/puma/thread_pool.rb:89 run> terminated with exception (report_on_exception is true):

Traceback (most recent call last): /Users/aleksandrleontev/.rvm/gems/ruby-2.6.2@mvp/gems/warden-1.2.8/lib/warden/manager.rb:34:in `catch': machine stack overflow in critical region (fatal)

Hope it can be solved.

unixmonkey commented 5 years ago

I've just released a new version of wicked_pdf, version 1.2.2, that aims to sidestep the issue with remotipart via #821.

It may not help with other gems that work similarly, but I wanted to get a fix out there before working on the core issue, which will likely require a release with some deprecation warnings, and a major version bump.

We will be working to provide a better way to hook into Rails' rendering system for 2.0, but for now, please upgrade, and let me know if you continue to have trouble or not!

Deekor commented 5 years ago

1.2.2 fixed the issue for me

AleksandrLeontev commented 5 years ago

@unixmonkey Yes, for me works, too. Thank you!

thomasbalsloev commented 5 years ago

@unixmonkey

Works here also. Thank you!

thomasbalsloev commented 5 years ago

Hi @unixmonkey

UPDATE: moved to separate issue #845

I fell over a new instance of "stack level too deep" even with the new 1.2.2 version. This time it does not to involve the "remotipart" gem but just the "WickedPDF" gem.

Funny thing is that this exception only happens in rspec tests of endpoints which performs HTML rendering and not PDF. So when requesting the same endpoint in normal (non-testing) mode it works without problems.

It seems like an edge case. With the new version of "WickedPDF" coming up, this might not be worth looking into to fix, but for maybe giving helpful info on the root problem?

Reverting to "WickedPDF" version 1.1.0 makes the exception go away.

Example of failing endpoint:

def export_data
    respond_to do |format|
      format.html {
        # export data and check errors
        return false if common_export === false
        render layout: 'msp_export', template: 'msp/export'
      }
      format.any { head :unsupported_media_type }
    end
  end

The above "render" command is the line 258 referred to in the backtrace below.

Simplified Rspec code:

it 'should render html with correct data' do
      expect(subject).to receive(:render)
        .with(hash_including(layout: 'msp_export', template: 'msp/export'))
        .and_call_original
      get :export_data, params: {
        :target => 'computers',
        :clients => [16],
        :fields => ['client_name', 'name']
      }, :format => :html
      expect(subject.instance_variable_get(:@data)).to eq([{:name => 'LaptopZ1', :is_online => false, :client_name => client.name}])
    end

Exception:

... (this goes on and on)...

    # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `call'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/wicked_pdf-1.2.2/lib/wicked_pdf/pdf_helper.rb:30:in `render'
     # ./app/controllers/msp/clients_controller.rb:258:in `block (2 levels) in export_data'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/mime_responds.rb:201:in `respond_to'
     # ./app/controllers/msp/clients_controller.rb:247:in `export_data'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:186:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/rendering.rb:30:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:131:in `run_callbacks'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:19:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/rescue.rb:20:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `block in instrument'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `instrument'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/activerecord-5.1.7/lib/active_record/railties/controller_runtime.rb:22:in `process_action'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:124:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionview-5.1.7/lib/action_view/rendering.rb:30:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/metal.rb:189:in `dispatch'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/test_case.rb:513:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/template_assertions.rb:61:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:35:in `block in process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:102:in `catch'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:102:in `_catch_warden'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/devise-4.6.2/lib/devise/test/controller_helpers.rb:35:in `process'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/actionpack-5.1.7/lib/action_controller/test_case.rb:392:in `get'
     # /home/tb/.rvm/gems/ruby-2.6.2@rails51/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/integration.rb:13:in `block (2 levels) in <module:Integration>'
     # ./spec/controllers/msp/clients_controller_spec.rb:429:in `block (3 levels) in <top (required)>'
unixmonkey commented 4 years ago

This version is out-of-date and this issue has been addressed in newer versions. Closing this, but feel free to open a new issue if you are still having this issue on the latest version.

mathieujobin commented 4 years ago

I am having similar issue with 1.4.0 first thought I could see bump from 1.0.6 to 2.x now trying 1.2.x will try 1.1.x next the fix for sprockets 3 in 1.0.4 did not work for me...

stewgloves commented 2 years ago

I am having exact same issue. with Stack level error on installation without applying any helpers into my codebase.

Rails 6.1.4.4 wicked_pdf 2.1.0 wkhtmltopdf-binary 0.12.6.5

unixmonkey commented 2 years ago

@stewgloves can you please try installing from the master branch? It has a lot of fixes I’m planning on releasing soon.

stewgloves commented 2 years ago

@unixmonkey amazing, the master branch fixed the issue for me!

shekharcredihealth commented 2 years ago

Create a file : config/initializers/wicked_pdf.rb Copy and paste code below and restart server :

class WickedPdf
  module PdfHelper
    remove_method(:render)
  end
end