Hi 程龙 如果可以的话,也麻烦使用 1.11.0 测试下看问题是否还存在。
Best, Congxian 程龙 <13162790...@163.com> 于2020年7月13日周一 上午10:45写道: > > > > > > > 问题不是很常见 ,但是同一个任务,提交在flink1.10 和 flink1.10.1上都会复现, 准备尝试一下升级一下jdk试试 > > > > > > > > > > > > 在 2020-07-06 16:11:17,"Congxian Qiu" <qcx978132...@gmail.com> 写道: > >@chenkaibit 多谢你的回复~ > > > >Best, > >Congxian > > > > > >chenkaibit <chenkai...@163.com> 于2020年7月6日周一 下午3:53写道: > > > >> hi,Congxian。我在发现这个问题时也很奇怪,但是在打印了一些日志后,确实验证了我的想法。因为 <低版本jdk+flink1.9> 和 > >> <高版本jdk+1.10> 都不会抛 NPE(见 FLINK-17479),我猜测和 lambda 表达式中外部变量的垃圾回收机制以及 1.10 > >> 引入的 MailBox 模型有关,外部 checkpointMetaData 实例被意外回收了。所以在修复的 patch 中我在 lambda > >> 表达式内部实例化了一个新的 checkpointMetaData,目前看这个方法是有效的,没有再发现过 > >> NPE。这是个临时的修复方法,根本原因可能还需要进一步分析。 > >> > >> > >> -- > >> Best, yuchuan > >> > >> > >> > >> 在 2020-07-06 14:04:58,"Congxian Qiu" <qcx978132...@gmail.com> 写道: > >> >@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份 > >> >CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。 > >> > > >> >Best, > >> >Congxian > >> > > >> > > >> >陈凯 <chen...@qianxin.com> 于2020年7月6日周一 上午9:53写道: > >> > > >> >> > >> >> Hi,zhisheng 程龙.我们也遇到这个问题了,jdk版本jdk8_40,低版本 jdk 确实有大概率会NPE。 > >> >> 我之前提了个jira 描述了这个问题 > >> >> https://issues.apache.org/jira/browse/FLINK-18196 > >> >> > >> >> 修改了Checkpoint 相关代码后,在低版本 jdk 上也没有再发现过过NPE。如果实在不能升级 jdk > 版本,可以参考下面的patch: > >> >> > >> >> > https://github.com/yuchuanchen/flink/commit/e5122d9787be1fee9bce141887e0d70c9b0a4f19 > >> >> > >> >> > >> >> > >> >> -----邮件原件----- > >> >> 发件人: zhisheng <zhisheng2...@gmail.com> > >> >> 发送时间: 2020年7月5日 15:01 > >> >> 收件人: user-zh <user-zh@flink.apache.org> > >> >> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常 > >> >> > >> >> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian > >> >> > >> >> Best! > >> >> zhisheng > >> >> > >> >> Congxian Qiu <qcx978132...@gmail.com> 于2020年7月4日周六 下午3:21写道: > >> >> > >> >> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢? > >> >> > > >> >> > Best, > >> >> > Congxian > >> >> > > >> >> > > >> >> > zhisheng <zhisheng2...@gmail.com> 于2020年7月4日周六 下午12:27写道: > >> >> > > >> >> > > 我们也有遇到过这个异常,但是不是很常见 > >> >> > > > >> >> > > Congxian Qiu <qcx978132...@gmail.com> 于2020年7月3日周五 下午2:08写道: > >> >> > > > >> >> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试 > >> >> > > > [1] https://issues.apache.org/jira/browse/FLINK-17479 > >> >> > > > Best, > >> >> > > > Congxian > >> >> > > > > >> >> > > > > >> >> > > > 程龙 <13162790...@163.com> 于2020年7月1日周三 下午9:09写道: > >> >> > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空 > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > 在 2020-07-01 20:51:34,"JasonLee" <17610775...@163.com> 写道: > >> >> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息 > >> >> > > > > > > >> >> > > > > > > >> >> > > > > >| | > >> >> > > > > >JasonLee > >> >> > > > > >| > >> >> > > > > >| > >> >> > > > > >邮箱:17610775...@163.com > >> >> > > > > >| > >> >> > > > > > > >> >> > > > > >Signature is customized by Netease Mail Master > >> >> > > > > > > >> >> > > > > >在2020年07月01日 20:43,程龙 写道: > >> >> > > > > >flink1.10上 程序运行几个小时后就会报不能执行checkpoint 空指针异常 具体如下: > >> >> > > > > > > >> >> > > > > > > >> >> > > > > >java.lang.Exception: Could not perform checkpoint 3201 for > >> >> operator > >> >> > > > > Filter -> Map (2/8). > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.triggerCheckpointOnBarrier(StreamTask.java:816) > >> >> > > > > > at org.apache.flink.streaming.runtime.io > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > .CheckpointBarrierHandler.notifyCheckpoint(CheckpointBarrierHandler.java:86) > >> >> > > > > > at org.apache.flink.streaming.runtime.io > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > .CheckpointBarrierAligner.processBarrier(CheckpointBarrierAligner.java:177) > >> >> > > > > > at org.apache.flink.streaming.runtime.io > >> >> > > > > > .CheckpointedInputGate.pollNext(CheckpointedInputGate.java:155) > >> >> > > > > > at org.apache.flink.streaming.runtime.io > >> >> > > > > > .StreamTaskNetworkInput.emitNext(StreamTaskNetworkInput.java:133) > >> >> > > > > > at org.apache.flink.streaming.runtime.io > >> >> > > > > > >> >> > > .StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:69) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:310) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:187) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:485) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:469) > >> >> > > > > > at > >> >> > > org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:708) > >> >> > > > > > at > >> >> > org.apache.flink.runtime.taskmanager.Task.run(Task.java:533) > >> >> > > > > > at java.lang.Thread.run(Thread.java:745) > >> >> > > > > >Caused by: java.lang.NullPointerException > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask$CheckpointingOperation.executeCheckpointing(StreamTask.java:1382) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.checkpointState(StreamTask.java:974) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.lambda$performCheckpoint$5(StreamTask.java:870) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$SynchronizedStreamTaskActionExecutor.runThrowing(StreamTaskActionExecutor.java:94) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.performCheckpoint(StreamTask.java:843) > >> >> > > > > > at > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > org.apache.flink.streaming.runtime.tasks.StreamTask.triggerCheckpointOnBarrier(StreamTask.java:803) > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > >> > >> >