Issue #12787 has been reported by ethiraj srinivasan.

----------------------------------------
Bug #12787: Stackoverflow over when alias_method and prepend are used in combination
https://bugs.ruby-lang.org/issues/12787

* Author: ethiraj srinivasan
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
With Ruby 2.0 Module#prepend was used to overcome the drawbacks of alias_method_chaining. Most of the gems/projects still use alias_method_chain since they support 1.9.3 and with upcoming gems/projects using prepend for the method that is already aliased throws stackoverflow error since the aliased method and prepend method call each other and results in deadlock.


~~~ ruby
class Netter
 def requester
  puts " I am requester in Netter"
 end
end
class Netter
  def requester_with_alias
    puts "i am in alias"
    requester_without_alias
  end
  alias_method :requester_without_alias, :requester
  alias_method :requester, :requester_with_alias
end
module Prepender
  def requester
    puts "i am in prepend"
    super
  end
end
Netter.prepend(Prepender)

Netter.new.requester
~~~


---Files--------------------------------
stackoverflow_with_alias_and_prepend (404 Bytes)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>