You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Andrew Wang (JIRA)" <ji...@apache.org> on 2016/10/10 19:17:20 UTC

[jira] [Commented] (HADOOP-6871) 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.

    [ https://issues.apache.org/jira/browse/HADOOP-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15563200#comment-15563200 ] 

Andrew Wang commented on HADOOP-6871:
-------------------------------------

We hit an issue during testing involving multiple specifications of the same variable, for which I posted a patch at HADOOP-13699.

This slims down the cycle detection significantly, and doesn't try to find multi-variable loops. This is because doing this accurately is a lot more work in performance sensitive code, and is overkill for the usecase mentioned here of a variable pointing at itself.

Please comment over at HADOOP-13699 if you feel differently, thanks!

> 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
>    Affects Versions: 3.0.0-alpha1
>            Reporter: Arvind Prabhakar
>            Assignee: Arvind Prabhakar
>             Fix For: 3.0.0-alpha1
>
>         Attachments: HADOOP-6871-1.patch, HADOOP-6871-2.patch, HADOOP-6871-3.patch, 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 was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org