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

Eric Yang commented on YARN-9728:
---------------------------------

[~Prabhu Joseph] Filtering at dao level might be too deep.  It would be nice if 
the filtering is done at presentation layer like getApps REST API.  This allows 
to detect if the request is XML, and only apply filtering to XML output.  This 
minimize the exposure of XML bugs, and keep JSON working without change.

>  ResourceManager REST API can produce an illegal xml response
> -------------------------------------------------------------
>
>                 Key: YARN-9728
>                 URL: https://issues.apache.org/jira/browse/YARN-9728
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: api, resourcemanager
>    Affects Versions: 2.7.3
>            Reporter: Thomas
>            Assignee: Prabhu Joseph
>            Priority: Major
>         Attachments: IllegalResponseChrome.png, YARN-9728-001.patch, 
> YARN-9728-002.patch, YARN-9728-003.patch, YARN-9728-004.patch, 
> YARN-9728-005.patch
>
>
> When a spark job throws an exception with a message containing a character 
> out of the range supported by xml 1.0, then
>  the application fails and the stack trace will be stored into the 
> {{diagnostics}} field. So far, so good.
> But the issue occurred when we try to get application information with the 
> ResourceManager REST API
>  The xml response will contain the illegal xml 1.0 char and will be invalid.
>  *+Examples of illegals characters in xml 1.0 :+* 
>  * {{\u0000}}
>  * {{\u0001}}
>  * {{\u0002}}
>  * {{\u0003}}
>  * {{\u0004}}
> _For more information about supported characters :_
>  [https://www.w3.org/TR/xml/#charsets]
> *+Example of illegal response from the Ressource Manager API :+* 
> {code:xml}
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <app>
>   <id>application_1326821518301_0005</id>
>   <user>user1</user>
>   <name>job</name>
>   <queue>a1</queue>
>   <state>FINISHED</state>
>   <finalStatus>FAILED</finalStatus>
>   <progress>100.0</progress>
>   <trackingUI>History</trackingUI>
>   
> <trackingUrl>http://host.domain.com:8088/proxy/application_1326821518301_0005/jobhistory/job/job_1326821518301_5_5</trackingUrl>
>   <diagnostics>Exception in thread "main" java.lang.Exception: \u0001
>       at com.XXXXXXXX.main(JobWithSpecialCharMain.java:6)</diagnostics>
>   [...]
> </app>
> {code}
>  
> *+Example of job to reproduce :+*
> {code:java}
> public class JobWithSpecialCharMain {
>  public static void main(String[] args) throws Exception {
>   throw new Exception("\u0001");
>  }
> }
> {code}
> {code:bash}
> javac -d . JobWithSpecialCharMain.java
> jar cvf repro.jar com/
> spark-submit --class com.JobWithSpecialCharMain --master yarn-cluster 
> repro.jar
> {code}
> !IllegalResponseChrome.png!



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to