[ 
https://issues.apache.org/jira/browse/HADOOP-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arvind Prabhakar updated HADOOP-6871:
-------------------------------------

    Status: Patch Available  (was: Open)

This patch fixes this problem by maintaining a set of intermediate evaluated 
expressions to test if there is a cycle detected during the resolution loop. If 
a cycle is detected, the then intermediate form is returned instead of raising 
any exception.

Note that since my formatter setting is such that it substitutes all tabs with 
spaces, there appear to be a lot of changes - most of which are only 
white-space related. If there is a need to preserve the current tab/space 
format, I can regenerate the patch with this disabled.

PS - I am not able to assign the jira to myself for some reason. Admin(s) can 
you please add me to the list of assignees?

> When the value of a configuration key is set to its unresolved form, it 
> causes the IllegalStateException in Configuration.get() stating that 
> substitution depth is too large.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-6871
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6871
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: conf
>            Reporter: Arvind Prabhakar
>         Attachments: HADOOP-6871.patch
>
>
> When a configuration value is set to its unresolved expression string, it 
> leads to recursive substitution attempts in 
> {{Configuration.substituteVars(String)}} method until the max substitution 
> check kicks in and raises an IllegalStateException indicating that the 
> substitution depth is too large. For example, the configuration key 
> "{{foobar}}" with a value set to "{{$\{foobar\}}}" will cause this behavior. 
> While this is not a usual use case, it can happen in build environments where 
> a property value is not specified and yet being passed into the test 
> mechanism leading to failures due to this limitation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to