Hi all,

I'm following up on FLINK-39061 [1] and wanted to reach out because I'm unsure 
about the best path forward and would value the community's input.

To summarize: The StateMachine example currently uses the State V2 API, which 
breaks canonical savepoint compatibility. This could be problematic for users 
following the example as a reference implementation.

1. Should the example be reverted to use the stable State API to maintain 
canonical savepoint compatibility?
2. Or should the example include documentation explicitly warning users about 
the State V2 API implications?
3. Is there a different approach the community would recommend?

Would appreciate any feedback or guidance on whether this should be addressed 
and would be happy to help with changes if there's consensus on the approach.

[1]  https://issues.apache.org/jira/browse/FLINK-39061


Best regards,

Seb P.

On 10/02/2026, 18:48, "Sebastien Pereira (Jira)" <[email protected]> wrote:

Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

-----------------------------------------

             Summary: StateMachine example uses State V2 API, breaking cano=
nical savepoint compatibility and version upgrade workflow
                 Key: FLINK-39061
                 URL: https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A=
__issues.apache.org_jira_browse_FLINK-2D39061&d=3DDwIFaQ&c=3DBSDicqBQBDjDI9=
RkVyTcHQ&r=3D0sZs1KZEg0CpfaYnaTDNBZAJABwYYOpaIlO5A6RouwU&m=3DjYEYwmo2B8Zfaf=
7Z_q9ISqh9nau_jbH4zgXotzXXSDPVHKppJ2byN_FIJ3mZadEs&s=3DbxliE2EZWOhl__HjRYES=
8ZptuQNaX4OUv6u1ZABS9x8&e=3D=20
             Project: Flink
          Issue Type: Bug
          Components: Examples
    Affects Versions: 2.2.0, 2.1.0, 2.0.0
            Reporter: Sebastien Pereira


The StateMachine example was updated to use State V2 API [1], which breaks =
canonical savepoint creation (default type).=C2=A0

Savepoint creation fails with *{{UnsupportedOperationException: Not support=
ed yet}}* in the Jobmanager log.

Problem found validating Flink 2.2.0 with Kubernetes Operator 1.13.0. Root =
cause traced to State V2 pattern from example. Workaround: test savepointin=
g using=C2=A0
TopSpeedWindowing example.

I appreciate examples are usually meant to showcase new capabilities. Howev=
er,=C2=A0 StateMachineExample is the only regular example migrated from Sta=
te V1 to State V2, while other State V2 examples are located in the (dedica=
ted?) {{/dsv2/}} directory [5].

*Should this example be reverted to State V1?*

=E2=80=94

State V2 API requires ForSt state backend, which does not support canonical=
savepoints according to the documentation [3]
{quote}"ForStStateBackend: Does not support canonical savepoint, full snaps=
hot, changelog and file-merging checkpoints."
{quote}
Per community discussion [4]
{quote}"It is possible to migrate state across state backends via savepoint=
s in canonical format, once we complete the savepoint support for ForSt. {*=
}This may take some time.{*}"
{quote}
*Is canonical savepoint support for State V2/ForSt on the roadmap?*

Per mailing list discussion [4], support is planned but timeline is unclear.

*If canonical savepoint support is far off:*
* How do users plan State V1 =E2=86=92 State V2 migration for version port=
ability?
* What guidance can be provided for production workflows?

---

[1] Commit 759635d - Use async state in flink-examples-streaming: [https://=
urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__github.com_apache_flink_comm=
it_759635db069923233e7928af0c729285e739ada9&d=3DDwIFaQ&c=3DBSDicqBQBDjDI9Rk=
VyTcHQ&r=3D0sZs1KZEg0CpfaYnaTDNBZAJABwYYOpaIlO5A6RouwU&m=3DjYEYwmo2B8Zfaf7Z=
_q9ISqh9nau_jbH4zgXotzXXSDPVHKppJ2byN_FIJ3mZadEs&s=3DJj1tFjleE-LTlP3x1QM_D1=
X_evtXZwyyenH50UsGaNg&e=3D ]

[2] Upgrading Applications and Flink Versions: [https://urldefense.proofpoi=
nt.com/v2/url?u=3Dhttps-3A__nightlies.apache.org_flink_flink-2Ddocs-2Dmaste=
r_docs_ops_upgrading_&d=3DDwIFaQ&c=3DBSDicqBQBDjDI9RkVyTcHQ&r=3D0sZs1KZEg0C=
pfaYnaTDNBZAJABwYYOpaIlO5A6RouwU&m=3DjYEYwmo2B8Zfaf7Z_q9ISqh9nau_jbH4zgXotz=
XXSDPVHKppJ2byN_FIJ3mZadEs&s=3DbnSNbwy3ME89gJjdtipX9OX4DtxTOA_cZAXC3XCXvp8&=
e=3D ]

[3] State Backends Documentation: [https://urldefense.proofpoint.com/v2/url=
?u=3Dhttps-3A__nightlies.apache.org_flink_flink-2Ddocs-2Dmaster_docs_ops_st=
ate_state-5Fbackends_&d=3DDwIFaQ&c=3DBSDicqBQBDjDI9RkVyTcHQ&r=3D0sZs1KZEg0C=
pfaYnaTDNBZAJABwYYOpaIlO5A6RouwU&m=3DjYEYwmo2B8Zfaf7Z_q9ISqh9nau_jbH4zgXotz=
XXSDPVHKppJ2byN_FIJ3mZadEs&s=3DLfPg-VSBtYoLuH0v18j8a5198rvkX8-V5mcTCNmU4Y8&=
e=3D ]

[4] Mailing list discussion - Flink V1 to V2 state migration (Nov 11, 2024)=
: [https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__www.mail-2Darchiv=
e.com_dev-40flink.apache.org_msg78875.html&d=3DDwIFaQ&c=3DBSDicqBQBDjDI9RkV=
yTcHQ&r=3D0sZs1KZEg0CpfaYnaTDNBZAJABwYYOpaIlO5A6RouwU&m=3DjYEYwmo2B8Zfaf7Z_=
q9ISqh9nau_jbH4zgXotzXXSDPVHKppJ2byN_FIJ3mZadEs&s=3D-0dmqoXDljoJ_5vEg_noyTt=
Vxw2rbo5k8TqpbwLZRDI&e=3D ]

[5] DataStream V2 examples directory: [https://urldefense.proofpoint.com/v2=
/url?u=3Dhttps-3A__github.com_apache_flink_tree_release-2D2.2.0_flink-2Dexa=
mples_flink-2Dexamples-2Dstreaming_src_main_java_org_apache_flink_streaming=
_examples_dsv2&d=3DDwIFaQ&c=3DBSDicqBQBDjDI9RkVyTcHQ&r=3D0sZs1KZEg0CpfaYnaT=
DNBZAJABwYYOpaIlO5A6RouwU&m=3DjYEYwmo2B8Zfaf7Z_q9ISqh9nau_jbH4zgXotzXXSDPVH=
KppJ2byN_FIJ3mZadEs&s=3DdNwkW0Ajz3uqBT0T2vqvjBq_w77Nok9If8b7iy0wWmk&e=3D ]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)





Regards,

Sebastien Pereira

Unless otherwise stated above:

Compagnie IBM France
Siège Social : 17, avenue de l'Europe, 92275 Bois-Colombes Cedex
RCS Nanterre 552 118 465
Forme Sociale : S.A.S.
Capital Social : 664 614 175,50 €
SIRET : 552 118 465 03644 - Code NAF 6203Z

Reply via email to