Skip to content

[Bug] Manually trigger the savepoint. After the savepoint is completed, the release status remains in WAITING. #4338

@Toroidals

Description

@Toroidals

Search before asking

  • I had searched in the issues and found no similar issues.

Java Version

jdk 1.8

Scala Version

2.12.x

StreamPark Version

2.1.5

Flink Version

1.15.2

Deploy mode

yarn application

What happened

StreamPark Version:2.1.7

datasource.dialect: pgsql

psql jdbc: url: jdbc:postgresql://xxx01:55432,xxx02:55432,xxx03:55432/streampark?targetServerType=master&stringtype=unspecified&connectTimeout=30&socketTimeout=300&tcpKeepAlive=true&reWriteBatchedInserts=true&&charSet=UTF8

Manually trigger the savepoint. After the savepoint is completed, the release status remains in WAITING.

Error Exception

Checking the backend logs shows:

11:05:18.419 [streampark-flink-savepoint-trigger-0] INFO org.apache.streampark.flink.proxy.FlinkShimsProxy - [StreamPark] add flink shims urls classloader,flink version: 
----------------------------------------- flink version -----------------------------------
     flinkHome    : /qwer1/qwer/app/flink_kingbase
     distJarName  : flink-dist-1.15.2.jar
     flinkVersion : 1.15.2
     majorVersion : 1.15
     scalaVersion : 2.12
     shimsVersion : streampark-flink-shims_flink-1.15
-------------------------------------------------------------------------------------------

11:05:18.424 [streampark-flink-savepoint-trigger-0] INFO org.apache.streampark.flink.client.impl.YarnApplicationClient - [StreamPark] 
----------------------------------------- flink job trigger savepoint ---------------------
     userFlinkHome  : /qwer1/qwer/app/flink_kingbase
     flinkVersion   : 1.15.2
     clusterId      : application_1761704982475_2274
     savePointPath  : hdfs:///flink/savepoint/cdc_scm_js_batch_01_202604211105
     k8sNamespace   : default
     appId          : application_1761704982475_2274
     jobId          : c9c0250fb1445f29411b60fefe1c7f84
-------------------------------------------------------------------------------------------

2026-04-21 11:05:18 | INFO  | streampark-flink-savepoint-trigger-0 | org.apache.hadoop.yarn.client.api.impl.TimelineReaderClientImpl:97] Initialized TimelineReader URI=http://crpprd14hd02:8198/ws/v2/timeline/, clusterId=yarn-cluster
2026-04-21 11:05:18 | INFO  | streampark-flink-savepoint-trigger-0 | org.apache.hadoop.yarn.client.AHSProxy:43] Connecting to Application History server at crpprd14hd02/10.99.221.21:10200
2026-04-21 11:05:18 | INFO  | streampark-flink-savepoint-trigger-0 | org.apache.flink.yarn.YarnClusterDescriptor:208] No path for the flink jar passed. Using the location of class org.apache.flink.yarn.YarnClusterDescriptor to locate the jar
2026-04-21 11:05:18 | INFO  | streampark-flink-savepoint-trigger-0 | org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider:100] Failing over to rm2
2026-04-21 11:05:18 | INFO  | streampark-flink-savepoint-trigger-0 | org.apache.flink.yarn.YarnClusterDescriptor:1843] Found Web Interface crpprd14hd05:8093 of application 'application_1761704982475_2274'.
2026-04-21 11:05:19 | INFO  | streampark-flink-savepoint-trigger-0 | org.apache.streampark.console.core.service.impl.SavepointServiceImpl:405] Request savepoint successful, savepointDir: hdfs://qwerprdhadoop/flink/savepoint/cdc_scm_js_batch_01_202604211105/savepoint-c9c025-c61c67eadbad
2026-04-21 11:05:21 | ERROR | streampark-flink-app-watching-22 | org.apache.streampark.console.core.task.FlinkAppHttpWatcher:330] get flink jobOverview error: Illegal base64 character 5f
java.lang.IllegalArgumentException: Illegal base64 character 5f
        at java.util.Base64$Decoder.decode0(Base64.java:714)
        at java.util.Base64$Decoder.decode(Base64.java:526)
        at java.util.Base64$Decoder.decode(Base64.java:549)
        at org.apache.streampark.common.util.DeflaterUtils$.unzipString(DeflaterUtils.scala:44)
        at org.apache.streampark.common.util.DeflaterUtils.unzipString(DeflaterUtils.scala)
        at org.apache.streampark.console.core.service.impl.FlinkEnvServiceImpl.getFlinkConfig(FlinkEnvServiceImpl.java:176)
        at org.apache.streampark.console.core.service.impl.FlinkEnvServiceImpl$$FastClassBySpringCGLIB$$fd9e041d.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at org.apache.streampark.console.core.service.impl.FlinkEnvServiceImpl$$EnhancerBySpringCGLIB$$a86dc04a.getFlinkConfig(<generated>)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl.clearExpire(SavepointServiceImpl.java:160)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl.saveSavePoint(SavepointServiceImpl.java:322)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl$$FastClassBySpringCGLIB$$5fcde58d.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl$$EnhancerBySpringCGLIB$$6b7dca9a.saveSavePoint(<generated>)
        at org.apache.streampark.console.core.task.CheckpointProcessor.saveSavepoint(CheckpointProcessor.java:184)
        at org.apache.streampark.console.core.task.CheckpointProcessor.process(CheckpointProcessor.java:90)
        at org.apache.streampark.console.core.task.CheckpointProcessor.lambda$process$0(CheckpointProcessor.java:76)
        at java.util.ArrayList.forEach(ArrayList.java:1259)
        at org.apache.streampark.console.core.task.CheckpointProcessor.process(CheckpointProcessor.java:76)
        at org.apache.streampark.console.core.task.FlinkAppHttpWatcher.handleCheckPoints(FlinkAppHttpWatcher.java:390)
        at org.apache.streampark.console.core.task.FlinkAppHttpWatcher.getFromFlinkRestApi(FlinkAppHttpWatcher.java:328)
        at org.apache.streampark.console.core.task.FlinkAppHttpWatcher.lambda$watch$2(FlinkAppHttpWatcher.java:220)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
2026-04-21 11:09:31 | ERROR | streampark-flink-app-watching-72 | org.apache.streampark.console.core.task.FlinkAppHttpWatcher:330] get flink jobOverview error: Illegal base64 character 5f
java.lang.IllegalArgumentException: Illegal base64 character 5f
        at java.util.Base64$Decoder.decode0(Base64.java:714)
        at java.util.Base64$Decoder.decode(Base64.java:526)
        at java.util.Base64$Decoder.decode(Base64.java:549)
        at org.apache.streampark.common.util.DeflaterUtils$.unzipString(DeflaterUtils.scala:44)
        at org.apache.streampark.common.util.DeflaterUtils.unzipString(DeflaterUtils.scala)
        at org.apache.streampark.console.core.service.impl.FlinkEnvServiceImpl.getFlinkConfig(FlinkEnvServiceImpl.java:176)
        at org.apache.streampark.console.core.service.impl.FlinkEnvServiceImpl$$FastClassBySpringCGLIB$$fd9e041d.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at org.apache.streampark.console.core.service.impl.FlinkEnvServiceImpl$$EnhancerBySpringCGLIB$$a86dc04a.getFlinkConfig(<generated>)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl.clearExpire(SavepointServiceImpl.java:160)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl.saveSavePoint(SavepointServiceImpl.java:322)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl$$FastClassBySpringCGLIB$$5fcde58d.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at org.apache.streampark.console.core.service.impl.SavepointServiceImpl$$EnhancerBySpringCGLIB$$6b7dca9a.saveSavePoint(<generated>)
        at org.apache.streampark.console.core.task.CheckpointProcessor.saveSavepoint(CheckpointProcessor.java:184)
        at org.apache.streampark.console.core.task.CheckpointProcessor.process(CheckpointProcessor.java:99)
        at org.apache.streampark.console.core.task.CheckpointProcessor.lambda$process$0(CheckpointProcessor.java:76)
        at java.util.ArrayList.forEach(ArrayList.java:1259)
        at org.apache.streampark.console.core.task.CheckpointProcessor.process(CheckpointProcessor.java:76)
        at org.apache.streampark.console.core.task.FlinkAppHttpWatcher.handleCheckPoints(FlinkAppHttpWatcher.java:390)
        at org.apache.streampark.console.core.task.FlinkAppHttpWatcher.getFromFlinkRestApi(FlinkAppHttpWatcher.java:328)
        at org.apache.streampark.console.core.task.FlinkAppHttpWatcher.lambda$watch$2(FlinkAppHttpWatcher.java:220)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)


Check the database configuration information:

Check the database configuration information:
streampark=> 
streampark=> SELECT * FROM t_flink_env;
  id   |   flink_name   |           flink_home           | version | scala_version |                     flink_conf                      | is_default | description  |       create_time       
-------+----------------+--------------------------------+---------+---------------+-----------------------------------------------------+------------+--------------+-------------------------
 10000 | flink_kingbase | /qwer1/qwer/app/flink_kingbase | 1.15.2  | 2.12          | /qwer1/qwer/app/flink_kingbase/conf/flink-conf.yaml | t          | kingbase-cdc | 2026-04-21 10:59:57.899
 10001 | flink          | /qwer1/qwer/app/flink_kingbase | 1.15.2  | 2.12          | /qwer1/qwer/app/flink_kingbase/conf/flink-conf.yaml | f          |              | 2026-04-21 11:17:16.759
(2 rows)

streampark=> 
streampark=>

Screenshots

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!(您是否要贡献这个PR?)

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions