Prevent NoMethodError/NameError from hanging the server.
The fix is to work around this bug: http://bugs.ruby-lang.org/issues/4521 where Ruby will call to_s/inspect while printing exception messages, which can take a long time (minutes at full CPU) if the object is huge or has cyclic references, like Middleman::Application does. Defining #to_s short-circuits that. This fixes #370.
This commit is contained in:
parent
a5a2e1568b
commit
1229a9991a
|
@ -217,6 +217,14 @@ module Middleman
|
||||||
logging
|
logging
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Work around this bug: http://bugs.ruby-lang.org/issues/4521
|
||||||
|
# where Ruby will call to_s/inspect while printing exception
|
||||||
|
# messages, which can take a long time (minutes at full CPU)
|
||||||
|
# if the object is huge or has cyclic references, like this.
|
||||||
|
def to_s
|
||||||
|
"the Middleman application context"
|
||||||
|
end
|
||||||
|
|
||||||
# Expand a path to include the index file if it's a directory
|
# Expand a path to include the index file if it's a directory
|
||||||
#
|
#
|
||||||
# @private
|
# @private
|
||||||
|
|
Loading…
Reference in a new issue