Gao Fei created FLINK-29647: ------------------------------- Summary: report stackoverflow when using kryo Key: FLINK-29647 URL: https://issues.apache.org/jira/browse/FLINK-29647 Project: Flink Issue Type: Bug Components: API / Type Serialization System Affects Versions: 1.13.2 Environment: flink 1.13.2 version (kryo 2.24 version) Reporter: Gao Fei
When using kryo to report stackoverflow, the error is as follows: {code:java} java.lang.StackOverflowError at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:43) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44) {code} I am using two-phase commit to write data to mysql, the following is part of the mysql sink code: {code:java} public class MySqlTwoPhaseCommitSink extends TwoPhaseCommitSinkFunction<Tuple2<String,Integer>, Connection,Void> { private static final Logger log = LoggerFactory.getLogger(MySqlTwoPhaseCommitSink.class); public MySqlTwoPhaseCommitSink(){ super(new KryoSerializer<>(Connection.class,new ExecutionConfig()), VoidSerializer.INSTANCE); } @Override public void invoke(Connection connection, Tuple2<String,Integer> tp, Context context) throws Exception { log.info("start invoke..."); //TODO //omit here } @Override public Connection beginTransaction() throws Exception { log.info("start beginTransaction......."); String url = "jdbc:mysql://localhost:3306/bigdata?useUnicode=true&characterEncoding=UTF-8"; Connection connection = DBConnectUtil.getConnection(url, "root", "123456"); return connection; } @Override public void preCommit(Connection connection) throws Exception { log.info("start preCommit..."); } @Override public void commit(Connection connection) { log.info("start commit..."); DBConnectUtil.commit(connection); } @Override public void abort(Connection connection) { log.info("start abort rollback..."); DBConnectUtil.rollback(connection); } }{code} I also found similar problem reports: https://github.com/EsotericSoftware/kryo/issues/341 -- This message was sent by Atlassian Jira (v8.20.10#820010)