flink1.10 checkpoint 运行一段时间空指针异常

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

flink1.10 checkpoint 运行一段时间空指针异常

程龙
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)
Reply | Threaded
Open this post in threaded view
|

Re:回复:flink1.10 checkpoint 运行一段时间空指针异常

程龙












都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空





在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:

>你到具体的tm上找到相关的operator看看是不是有异常信息
>
>
>| |
>JasonLee
>|
>|
>邮箱:[hidden email]
>|
>
>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)
Reply | Threaded
Open this post in threaded view
|

Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

Congxian Qiu
你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
[1]  https://issues.apache.org/jira/browse/FLINK-17479
Best,
Congxian


程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:

>
>
>
>
>
>
>
>
>
>
>
>
> 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
>
>
>
>
>
> 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> >你到具体的tm上找到相关的operator看看是不是有异常信息
> >
> >
> >| |
> >JasonLee
> >|
> >|
> >邮箱:[hidden email]
> >|
> >
> >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)
>
Reply | Threaded
Open this post in threaded view
|

Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

zhisheng
我们也有遇到过这个异常,但是不是很常见

Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:

> 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> [1]  https://issues.apache.org/jira/browse/FLINK-17479
> Best,
> Congxian
>
>
> 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> >
> >
> >
> >
> >
> > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> > >你到具体的tm上找到相关的operator看看是不是有异常信息
> > >
> > >
> > >| |
> > >JasonLee
> > >|
> > >|
> > >邮箱:[hidden email]
> > >|
> > >
> > >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)
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

Congxian Qiu
@zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?

Best,
Congxian


zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:

> 我们也有遇到过这个异常,但是不是很常见
>
> Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
>
> > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> > [1]  https://issues.apache.org/jira/browse/FLINK-17479
> > Best,
> > Congxian
> >
> >
> > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
> >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> > >
> > >
> > >
> > >
> > >
> > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> > > >你到具体的tm上找到相关的operator看看是不是有异常信息
> > > >
> > > >
> > > >| |
> > > >JasonLee
> > > >|
> > > >|
> > > >邮箱:[hidden email]
> > > >|
> > > >
> > > >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)
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

zhisheng
生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian

Best!
zhisheng

Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:

> @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
>
> Best,
> Congxian
>
>
> zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
>
> > 我们也有遇到过这个异常,但是不是很常见
> >
> > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
> >
> > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
> > > Best,
> > > Congxian
> > >
> > >
> > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
> > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
> > > > >
> > > > >
> > > > >| |
> > > > >JasonLee
> > > > >|
> > > > >|
> > > > >邮箱:[hidden email]
> > > > >|
> > > > >
> > > > >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)
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

答复: 回复:flink1.10 checkpoint 运行一段时间空指针异常

陈凯

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 <[hidden email]>
发送时间: 2020年7月5日 15:01
收件人: user-zh <[hidden email]>
主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian

Best!
zhisheng

Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:

> @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
>
> Best,
> Congxian
>
>
> zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
>
> > 我们也有遇到过这个异常,但是不是很常见
> >
> > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
> >
> > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
> > > Best,
> > > Congxian
> > >
> > >
> > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
> > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
> > > > >
> > > > >
> > > > >| |
> > > > >JasonLee
> > > > >|
> > > > >|
> > > > >邮箱:[hidden email]
> > > > >|
> > > > >
> > > > >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)
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

Congxian Qiu
@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份
CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。

Best,
Congxian


陈凯 <[hidden email]> 于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 <[hidden email]>
> 发送时间: 2020年7月5日 15:01
> 收件人: user-zh <[hidden email]>
> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常
>
> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian
>
> Best!
> zhisheng
>
> Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:
>
> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
> >
> > Best,
> > Congxian
> >
> >
> > zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
> >
> > > 我们也有遇到过这个异常,但是不是很常见
> > >
> > > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
> > >
> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> > > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
> > > > Best,
> > > > Congxian
> > > >
> > > >
> > > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
> > > > > >
> > > > > >
> > > > > >| |
> > > > > >JasonLee
> > > > > >|
> > > > > >|
> > > > > >邮箱:[hidden email]
> > > > > >|
> > > > > >
> > > > > >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)
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re:Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

chenkai
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" <[hidden email]> 写道:

>@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份
>CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。
>
>Best,
>Congxian
>
>
>陈凯 <[hidden email]> 于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 <[hidden email]>
>> 发送时间: 2020年7月5日 15:01
>> 收件人: user-zh <[hidden email]>
>> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常
>>
>> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian
>>
>> Best!
>> zhisheng
>>
>> Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:
>>
>> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
>> >
>> > Best,
>> > Congxian
>> >
>> >
>> > zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
>> >
>> > > 我们也有遇到过这个异常,但是不是很常见
>> > >
>> > > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
>> > >
>> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
>> > > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
>> > > > Best,
>> > > > Congxian
>> > > >
>> > > >
>> > > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
>> > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
>> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
>> > > > > >
>> > > > > >
>> > > > > >| |
>> > > > > >JasonLee
>> > > > > >|
>> > > > > >|
>> > > > > >邮箱:[hidden email]
>> > > > > >|
>> > > > > >
>> > > > > >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)
>> > > > >
>> > > >
>> > >
>> >
>>
Reply | Threaded
Open this post in threaded view
|

Re: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

Congxian Qiu
@chenkaibit 多谢你的回复~

Best,
Congxian


chenkaibit <[hidden email]> 于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" <[hidden email]> 写道:
> >@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份
> >CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。
> >
> >Best,
> >Congxian
> >
> >
> >陈凯 <[hidden email]> 于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 <[hidden email]>
> >> 发送时间: 2020年7月5日 15:01
> >> 收件人: user-zh <[hidden email]>
> >> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常
> >>
> >> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian
> >>
> >> Best!
> >> zhisheng
> >>
> >> Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:
> >>
> >> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
> >> >
> >> > Best,
> >> > Congxian
> >> >
> >> >
> >> > zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
> >> >
> >> > > 我们也有遇到过这个异常,但是不是很常见
> >> > >
> >> > > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
> >> > >
> >> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> >> > > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
> >> > > > Best,
> >> > > > Congxian
> >> > > >
> >> > > >
> >> > > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
> >> > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> >> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
> >> > > > > >
> >> > > > > >
> >> > > > > >| |
> >> > > > > >JasonLee
> >> > > > > >|
> >> > > > > >|
> >> > > > > >邮箱:[hidden email]
> >> > > > > >|
> >> > > > > >
> >> > > > > >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)
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
>
>
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

程龙






问题不是很常见 ,但是同一个任务,提交在flink1.10 和 flink1.10.1上都会复现, 准备尝试一下升级一下jdk试试











在 2020-07-06 16:11:17,"Congxian Qiu" <[hidden email]> 写道:

>@chenkaibit 多谢你的回复~
>
>Best,
>Congxian
>
>
>chenkaibit <[hidden email]> 于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" <[hidden email]> 写道:
>> >@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份
>> >CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。
>> >
>> >Best,
>> >Congxian
>> >
>> >
>> >陈凯 <[hidden email]> 于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 <[hidden email]>
>> >> 发送时间: 2020年7月5日 15:01
>> >> 收件人: user-zh <[hidden email]>
>> >> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常
>> >>
>> >> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian
>> >>
>> >> Best!
>> >> zhisheng
>> >>
>> >> Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:
>> >>
>> >> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
>> >> >
>> >> > Best,
>> >> > Congxian
>> >> >
>> >> >
>> >> > zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
>> >> >
>> >> > > 我们也有遇到过这个异常,但是不是很常见
>> >> > >
>> >> > > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
>> >> > >
>> >> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
>> >> > > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
>> >> > > > Best,
>> >> > > > Congxian
>> >> > > >
>> >> > > >
>> >> > > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
>> >> > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > >
>> >> > > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
>> >> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
>> >> > > > > >
>> >> > > > > >
>> >> > > > > >| |
>> >> > > > > >JasonLee
>> >> > > > > >|
>> >> > > > > >|
>> >> > > > > >邮箱:[hidden email]
>> >> > > > > >|
>> >> > > > > >
>> >> > > > > >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)
>> >> > > > >
>> >> > > >
>> >> > >
>> >> >
>> >>
>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

Congxian Qiu
Hi  程龙

如果可以的话,也麻烦使用 1.11.0 测试下看问题是否还存在。

Best,
Congxian


程龙 <[hidden email]> 于2020年7月13日周一 上午10:45写道:

>
>
>
>
>
>
> 问题不是很常见 ,但是同一个任务,提交在flink1.10 和 flink1.10.1上都会复现, 准备尝试一下升级一下jdk试试
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-07-06 16:11:17,"Congxian Qiu" <[hidden email]> 写道:
> >@chenkaibit 多谢你的回复~
> >
> >Best,
> >Congxian
> >
> >
> >chenkaibit <[hidden email]> 于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" <[hidden email]> 写道:
> >> >@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份
> >> >CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。
> >> >
> >> >Best,
> >> >Congxian
> >> >
> >> >
> >> >陈凯 <[hidden email]> 于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 <[hidden email]>
> >> >> 发送时间: 2020年7月5日 15:01
> >> >> 收件人: user-zh <[hidden email]>
> >> >> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常
> >> >>
> >> >> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian
> >> >>
> >> >> Best!
> >> >> zhisheng
> >> >>
> >> >> Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:
> >> >>
> >> >> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
> >> >> >
> >> >> > Best,
> >> >> > Congxian
> >> >> >
> >> >> >
> >> >> > zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
> >> >> >
> >> >> > > 我们也有遇到过这个异常,但是不是很常见
> >> >> > >
> >> >> > > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
> >> >> > >
> >> >> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
> >> >> > > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
> >> >> > > > Best,
> >> >> > > > Congxian
> >> >> > > >
> >> >> > > >
> >> >> > > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
> >> >> > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
> >> >> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
> >> >> > > > > >
> >> >> > > > > >
> >> >> > > > > >| |
> >> >> > > > > >JasonLee
> >> >> > > > > >|
> >> >> > > > > >|
> >> >> > > > > >邮箱:[hidden email]
> >> >> > > > > >|
> >> >> > > > > >
> >> >> > > > > >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)
> >> >> > > > >
> >> >> > > >
> >> >> > >
> >> >> >
> >> >>
> >>
> >>
>
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常

程龙
ok  我过两天试一下 最近有点忙   过两天测试一下1.11  到时候结果同步给大家 ,另外之前测试jdk使用jdk1.8.0_231 也是不行的 会报同样的错误

















在 2020-07-13 20:06:01,"Congxian Qiu" <[hidden email]> 写道:

>Hi  程龙
>
>如果可以的话,也麻烦使用 1.11.0 测试下看问题是否还存在。
>
>Best,
>Congxian
>
>
>程龙 <[hidden email]> 于2020年7月13日周一 上午10:45写道:
>
>>
>>
>>
>>
>>
>>
>> 问题不是很常见 ,但是同一个任务,提交在flink1.10 和 flink1.10.1上都会复现, 准备尝试一下升级一下jdk试试
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 在 2020-07-06 16:11:17,"Congxian Qiu" <[hidden email]> 写道:
>> >@chenkaibit 多谢你的回复~
>> >
>> >Best,
>> >Congxian
>> >
>> >
>> >chenkaibit <[hidden email]> 于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" <[hidden email]> 写道:
>> >> >@陈凯 感谢你分享的这个方法,比较好奇这两个的区别是什么?修改后的 patch 在 closure 中一开始 copy 了一份
>> >> >CheckpointMeta,也就是说 845 - 867 行之间,之前的 checkpointMeta 会变为 null,这个比较奇怪。
>> >> >
>> >> >Best,
>> >> >Congxian
>> >> >
>> >> >
>> >> >陈凯 <[hidden email]> 于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 <[hidden email]>
>> >> >> 发送时间: 2020年7月5日 15:01
>> >> >> 收件人: user-zh <[hidden email]>
>> >> >> 主题: Re: 回复:flink1.10 checkpoint 运行一段时间空指针异常
>> >> >>
>> >> >> 生产集群 JDK 使用的地方比较多,不敢轻易换版本,后面再观察一下,如果频繁出现这种问题再考虑更换版本,感谢 Congxian
>> >> >>
>> >> >> Best!
>> >> >> zhisheng
>> >> >>
>> >> >> Congxian Qiu <[hidden email]> 于2020年7月4日周六 下午3:21写道:
>> >> >>
>> >> >> > @zhisheng 你们有尝试过更换 jdk 版本吗?更换版本是否能解决这个问题呢?
>> >> >> >
>> >> >> > Best,
>> >> >> > Congxian
>> >> >> >
>> >> >> >
>> >> >> > zhisheng <[hidden email]> 于2020年7月4日周六 下午12:27写道:
>> >> >> >
>> >> >> > > 我们也有遇到过这个异常,但是不是很常见
>> >> >> > >
>> >> >> > > Congxian Qiu <[hidden email]> 于2020年7月3日周五 下午2:08写道:
>> >> >> > >
>> >> >> > > > 你可以看看是否 FLINK-17479[1] 和你的问题一样,是的话,可以尝试修改一下 jdk 版本试试
>> >> >> > > > [1]  https://issues.apache.org/jira/browse/FLINK-17479
>> >> >> > > > Best,
>> >> >> > > > Congxian
>> >> >> > > >
>> >> >> > > >
>> >> >> > > > 程龙 <[hidden email]> 于2020年7月1日周三 下午9:09写道:
>> >> >> > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > > 都是分配不到资源(slot)的错误,应该还是checkpoint 为空导致的,不知道为啥为空
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > >
>> >> >> > > > > 在 2020-07-01 20:51:34,"JasonLee" <[hidden email]> 写道:
>> >> >> > > > > >你到具体的tm上找到相关的operator看看是不是有异常信息
>> >> >> > > > > >
>> >> >> > > > > >
>> >> >> > > > > >| |
>> >> >> > > > > >JasonLee
>> >> >> > > > > >|
>> >> >> > > > > >|
>> >> >> > > > > >邮箱:[hidden email]
>> >> >> > > > > >|
>> >> >> > > > > >
>> >> >> > > > > >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)
>> >> >> > > > >
>> >> >> > > >
>> >> >> > >
>> >> >> >
>> >> >>
>> >>
>> >>
>>