5fbaa524b9
Fix: https://github.com/rails/rails/issues/45017 Ref: https://github.com/rails/rails/pull/29333 Ref: https://github.com/ruby/timeout/pull/30 Historically only raised errors would trigger a rollback, but in Ruby `2.3`, the `timeout` library started using `throw` to interupt execution which had the adverse effect of committing open transactions. To solve this, in Active Record 6.1 the behavior was changed to instead rollback the transaction as it was safer than to potentially commit an incomplete transaction. Using `return`, `break` or `throw` inside a `transaction` block was essentially deprecated from Rails 6.1 onwards. However with the release of `timeout 0.4.0`, `Timeout.timeout` now raises an error again, and Active Record is able to return to its original, less surprising, behavior. |
||
---|---|---|
.. | ||
bin | ||
exe | ||
lib | ||
test | ||
.gitignore | ||
CHANGELOG.md | ||
MIT-LICENSE | ||
railties.gemspec | ||
Rakefile | ||
RDOC_MAIN.md | ||
README.rdoc |
= Railties -- Gluing the Engine to the \Rails Railties is responsible for gluing all frameworks together. Overall, it: * handles the bootstrapping process for a \Rails application; * manages the +rails+ command line interface; * and provides the \Rails generators core. == Download The latest version of Railties can be installed with RubyGems: * gem install railties Source code can be downloaded as part of the \Rails project on GitHub * https://github.com/rails/rails/tree/main/railties == License Railties is released under the MIT license: * https://opensource.org/licenses/MIT == Support API documentation is at * https://api.rubyonrails.org Bug reports can be filed for the Ruby on \Rails project here: * https://github.com/rails/rails/issues Feature requests should be discussed on the rails-core mailing list here: * https://discuss.rubyonrails.org/c/rubyonrails-core