
# Flink任务运行过程中出现报错"netty.exception.RemoteTransportException"
#### 问题现象
Flink任务运行过程中出现报错：netty.exception.RemoteTransportException。
#### 原因分析
- 可能原因一
  业务出现堆内存级别的Full GC。
  1. 根据以上日志截图反馈的报错，可以找到故障的taskmanager所在节点。
  
  2. 查看节点的后面的GC日志是否出现大量的Full GC或者GC时间过长的现象。如下图：每次GC时间都在10s以上。 ![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000002340556556.png "点击放大")
     注意：taskmanager启动过程中前几次均会出现Full GC属于正常显现。运行过程中Full GC间隔较长并且每次Full GC时间很短也视为正常。如下：间隔时间为小时级别，每次时间不超过1s。
     ![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000002374554641.png "点击放大")
     
    
- 可能原因二 业务侧出现线程级别的内存泄漏" java.lang.OutOfMemoryError: unable to create new native thread"。
  ![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000002374434785.png "点击放大")
  1. 根据异常任务的日志，可以找到故障的taskmanager所在节点。
  
  2. 从异常的taskmanager节点的日志中能够看到"unable to create new native thread"类型的报错。
  
  3. 该报错说明，异常的taskmanager节点无法创建新的线程，导致当前节点taskmanager节点阻塞。
   
- 可能原因三
  nodemanager节点硬件故障。
  1. 根据异常任务的日志，可以找到故障的taskmanager所在节点。
  
  2. 在taskmanager日志中没有找到任何异常信息
  
  3. 收集taskmanager所在的nodemanager节点的OS日志发现出现大量磁盘异常 ![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000002340396792.png "点击放大")
     
  
  4. 观察nodemanager进程的yarn-start-stop.log是否有重启动作。
  
  
  ![](https://support.huaweicloud.com/trouble-mrs/public_sys-resources/note_3.0-zh-cn.png)
  除以上报错外，nodemanager节点的磁盘如果写满也会使nodemanager进程重启，并且使container全部失败。此时，Flink任务也会失败。
  
 
#### 处理步骤
- 原因一解决方案：
  1. 业务侧调大整taskmanager的启动内存。
  
  2. 若业务侧存在反压，则增大业务的整体并发，消除反压。
  
  
  若以上都不存在，请业务侧排查代码中是否存在内存泄漏。建议业务可以将自动重启机制开启。如在"flink-conf.xml"中将配置"restart-strategy:"设置为"failure-rate"。
  
- 原因二解决方案：
  1. 查看是否节点存在os配置不合理的情况。
  
  2. 根据"判断Flink任务是否存在线程泄漏"的方法，判定是否有内存泄漏的风险。（用jstack去判断）
   
- 原因三解决方案：
  1. 修复磁盘故障。
  
  2. 建议业务可以将自动重启机制开启。如在"flink-conf.xml"中将配置"restart-strategy:"设置为"failure-rate"。
   
 
