Currently when user defined some InputSelectable or BoundedMultiInput operators, checkpointing is not supported. Main problem is the that combination of InputSelectable and barrier alignment can lead to deadlocks (checkpoint barrier stuck on not selected channel).
Problem could be somehow mitigated via unaligned checkpoints (
FLINK-14551), but not fully. Even with unaligned checkpoints, checkpoint barriers can be stuck in the job graph if there is a flatMap operator (or non flatMap operator but if records are spanning multiple buffers), blocked in the middle of processing by some down stream input selection. In such case we are not able to perform unaligned checkpoint.
Potential solution could be using persistent communication channels or detecting before mentioned situations and avoid the dead lock by spilling excess data.
As most of the problems are with input selections that are randomly flipping, there might be some partial solution for more trivial cases, like reading one side of an input fully before the other.