canal go client连接1.1.4canal server,用的tcp模式,连接成功后,立马发送了几条数据变更到client,然后修改数据库触发binlog,client端一直未收到变更,大概十几秒后看example.log发现报错,之后会和client重连,然后再报这个错,一直这样死循环,之前用的好好的,后来有一个问题,就重启了一次canal就这样了.......
2020-12-29 09:59:59.044 [destination = example , address = /127.0.0.1:31004 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[com.alibaba.otter.canal.parse.exception.CanalParseException: com.googlecode.aviator.exception.ExpressionRuntimeException: Execute expression error Caused by: com.googlecode.aviator.exception.ExpressionRuntimeException: Execute expression error at com.googlecode.aviator.ClassExpression.execute(ClassExpression.java:59) at com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter.filter(AviaterRegexFilter.java:74) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEventForTableMeta(LogEventConvert.java:451) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:280) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:246) at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168) at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 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) Caused by: com.google.common.collect.ComputationException: java.lang.RuntimeException: org.apache.oro.text.regex.MalformedPatternException: Nested repetitions *?+ in expression at com.google.common.collect.MapMaker$ComputingMapAdapter.get(MapMaker.java:889) at com.alibaba.otter.canal.filter.PatternUtils.getPattern(PatternUtils.java:34) at com.alibaba.otter.canal.filter.aviater.RegexFunction.call(RegexFunction.java:24) at Script_1609205828254_0.execute0(Unknown Source) at com.googlecode.aviator.ClassExpression.execute(ClassExpression.java:53) ... 11 more Caused by: java.lang.RuntimeException: org.apache.oro.text.regex.MalformedPatternException: Nested repetitions *?+ in expression at com.alibaba.otter.canal.filter.PatternUtils$1.apply(PatternUtils.java:28) at com.alibaba.otter.canal.filter.PatternUtils$1.apply(PatternUtils.java:18) at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:356) at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:182) at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:151) at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:67) at com.google.common.collect.MapMaker$ComputingMapAdapter.get(MapMaker.java:885) ... 15 more Caused by: org.apache.oro.text.regex.MalformedPatternException: Nested repetitions *?+ in expression at org.apache.oro.text.regex.Perl5Compiler.__parseBranch(Unknown Source) at org.apache.oro.text.regex.Perl5Compiler.__parseAlternation(Unknown Source) at org.apache.oro.text.regex.Perl5Compiler.__parseExpression(Unknown Source) at org.apache.oro.text.regex.Perl5Compiler.compile(Unknown Source) at org.apache.oro.text.regex.Perl5Compiler.compile(Unknown Source) at com.alibaba.otter.canal.filter.PatternUtils$1.apply(PatternUtils.java:23) ... 21 more
原提问者GitHub用户cuizhipeng326
原因找到了,是误改了client的配置文件中的filter,最后多了一个导致的,导致订阅的filter是...**,正确的应该是...
原回答者GitHub用户cuizhipeng326
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。