You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Thomas (JIRA)" <ji...@apache.org> on 2019/08/07 16:04:00 UTC

[jira] [Updated] (YARN-9728)  ResourceManager REST API can produce an illegal xml response

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

Thomas updated YARN-9728:
-------------------------
    Description: 
When a spark job throws an exception with a message containing a character out of the range supported by xml 1.0.
The application will fail 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 :+* 
 * \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}

  was:
When a spark job throws an exception with a message containing a character out of the range supported by xml 1.0.
The application will fail 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 :+* 
 * \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}


>  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
>            Priority: Major
>
> When a spark job throws an exception with a message containing a character out of the range supported by xml 1.0.
> The application will fail 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 :+* 
>  * \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}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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