- 16 12月, 2019 2 次提交
-
-
由 Kasper Timm Hansen 提交于
Co-authored-by: NChristian Gregg <c_arlt@hotmail.com>
-
由 Christian Gregg 提交于
When `ActiveSupport.parse_json_times` is `true`, `ActiveSupport::Messages::Medata.verify` will fail with a `TypeError` as it does not pass a `String` to `Time.iso8601` as is expected. This leads to hard-failure on retrieval of signed cookies with expiries.
-
- 14 12月, 2019 2 次提交
-
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
-
- 13 12月, 2019 1 次提交
-
-
由 Kasper Timm Hansen 提交于
Make ActionView::LookupContext::DetailsKey thread-safe
-
- 11 12月, 2019 1 次提交
-
-
由 Christian Gregg 提交于
Hi, we recently upgraded to Rails 6 and have had some 'random' issues pop up twice now in the last two weeks where upon scaling our application instances we found a single instance failing when trying to render with stack traces that looked a bit like this: ``` vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/base.rb:274:in `_run': undefined method `_app_views_dealers_call_centre_index_html_haml__1117437046933042982_70191578841420' for #<#<Class:0x00007fad784998c8>:0x00007fad6ae237a8> Did you mean? _app_views_dealers_active_leads_index_html_haml__2989992190908713101_70191398405520 (ActionView::Template::Error) from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/template.rb:185:in `block in render' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `block in instrument' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `instrument' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/template.rb:386:in `instrument_render_template' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/template.rb:183:in `render' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/template_renderer.rb:59:in `block (2 levels) in render_template' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/abstract_renderer.rb:89:in `block in instrument' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `block in instrument' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `instrument' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/abstract_renderer.rb:88:in `instrument' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/template_renderer.rb:58:in `block in render_template' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/template_renderer.rb:66:in `render_with_layout' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/template_renderer.rb:57:in `render_template' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/template_renderer.rb:13:in `render' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/renderer/renderer.rb:29:in `render_to_object' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/rendering.rb:118:in `block in _render_template' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/base.rb:304:in `in_rendering_context' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/rendering.rb:117:in `_render_template' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/streaming.rb:219:in `_render_template' from vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/rendering.rb:103:in `render_to_body' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:52:in `render_to_body' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/renderers.rb:142:in `render_to_body' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/rendering.rb:25:in `render' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:36:in `render' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/benchmark.rb:14:in `block in ms' from vendor/ruby-2.6.5/lib/ruby/2.6.0/benchmark.rb:308:in `realtime' from vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/benchmark.rb:14:in `ms' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:44:in `block in render' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:85:in `cleanup_view_runtime' from vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.1/lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime' from vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:43:in `render' from app/controllers/dealers/call_centre_controller.rb:11:in `index' ``` After some investigation it seems to me that there is some non-thread safe code (we run single process, multi-thread instance of our apps in production) in the rendering process. Specifically in accessing the memoized `@view_context_class` variable (which is what `ActionView::Template#compile` ends up adding methods to). I've built a reproducible example at CGA1123/action-view-race-condition specifically CGA1123/action-view-race-condition@64c023081dd898be1f99c558e47726bc648a0374 which introduces some extra work on assignment in order to force the ruby process to schedule another request thread. The race means that we 'lose' the methods adding during a call to `ActionView::Templace#compile!` but that instance still has `@compile` set to `true` causing all subsequent attempts to render that template to fail. I'm not sure whether adding a mutex on the access is the best way to solve this? Perhaps the caching logic should be smarter and check that the method exists? I'm also not sure of the performance implications of synchronizing accessing this variable might have?
-
- 10 12月, 2019 5 次提交
-
-
由 Eileen M. Uchitelle 提交于
Backport Database URL supports query value with equal sign
-
由 Joshua Flanagan 提交于
Backports https://github.com/rails/rails/pull/37738 A querystring value should be allowed to include an equal sign =. This is necessary to support passing options for a PostgresSQL connection, using the database URL format.
-
由 Rafael Mendonça França 提交于
Retain selections with `includes` and `joins`
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
-
- 09 12月, 2019 3 次提交
-
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
This reverts commit a077f94f. That commit in Ruby that required those changes were reverted in https://bugs.ruby-lang.org/projects/ruby-trunk/repository/git/revisions/8852fa876039ed177fd5e867f36177d8a9ff411c
-
- 06 12月, 2019 6 次提交
-
-
由 Xavier Noria 提交于
I added myself links to the Ruby on Rails Tutorial years ago, after meeting Michael in a RailsConf. By then, the book was a commercial product, but had a free online version and I thought it could be a good resource complementing the official documentation. Nowadays, only a few sample chapters are available for free, and I don't consider these links to be fair with the rest of commercial books about Rails anymore.
-
由 Xavier Noria 提交于
I added myself links to the Ruby on Rails Tutorial years ago, after meeting Michael in a RailsConf. By then, the book was a commercial product, but had a free online version and I thought it could be a good resource complementing the official documentation. Nowadays, only a few sample chapters are available for free, and I don't consider these links to be fair with the rest of commercial books about Rails anymore.
-
由 Kasper Timm Hansen 提交于
Closes #37666
-
由 George Claghorn 提交于
-
- 05 12月, 2019 3 次提交
-
-
由 Ryuta Kamizono 提交于
Should keep the original parts for zero duration
-
由 Ryuta Kamizono 提交于
Correct default value of `unknown_asset_fallback` [ci skip]
-
由 Ryuta Kamizono 提交于
Fix random CI failure due to non-deterministic sorting order
-
- 03 12月, 2019 7 次提交
-
-
由 Rafael Mendonça França 提交于
Symbol doesn't respond to `start_with?` so we need to change it to string before doing the comparison.
-
由 Rafael Mendonça França 提交于
Symbol doesn't respond to `start_with?` so we need to change it to string before doing the comparison.
-
由 Ryuta Kamizono 提交于
This reverts commit 66c153c0.
-
由 Ryuta Kamizono 提交于
Revert "Merge pull request #37839 from ttanimichi/modify-inspect-of-activesupport-duration-with-no-parts" This reverts commit 01d7f82c.
-
由 Richard Schneeman 提交于
Fix typo colection -> collection
-
由 Abhay Nikam 提交于
-
由 Andrew Haines 提交于
-
- 02 12月, 2019 6 次提交
-
-
由 Xavier Noria 提交于
This reverts commit 954d290a.
-
由 Xavier Noria 提交于
An app was reported to autoload in config/environments/development.rb, and this is no longer possible with this change. I believe it is a better trade-off to leave this for 6.1. This reverts commit dede40ec.
-
由 Xavier Noria 提交于
An app was reported to autoload in config/environments/development.rb, and this is no longer possible with this change. I believe it is a better trade-off to leave this for 6.1. This reverts commit dede40ec.
-
由 Xavier Noria 提交于
This reverts commit 954d290a.
-
由 Ryuta Kamizono 提交于
Fix `since` and `ago` with a duration which has empty parts
-
由 Ryuta Kamizono 提交于
Fix `since` and `ago` with a duration which has empty parts
-
- 01 12月, 2019 4 次提交
-
-
由 Ryuta Kamizono 提交于
Address test_statement_cache_with_in_clause failure
-
由 Ryuta Kamizono 提交于
The return value of `ActiveSupport::Duration#inspect` is wrong when its parts are empty
-
由 Ryuta Kamizono 提交于
Fix typo in "Options for render" section [ci skip]
-
由 Ryuta Kamizono 提交于
Add Rails changelog URI
-