-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
None
-
None
We catch the next problem: if we try to start streaming from mongodb we get infinite loop with "org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.mongodb.DBRef" when data includes dbrefs.
2017-09-19 17:33:39.664 ERROR 14264 --- [pool-4-thread-1] i.debezium.connector.mongodb.Replicator : Error while attempting to sync 'test.test.collect': Can't find a codec for class com.mongodb.DBRef. org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.mongodb.DBRef. at org.bson.codecs.configuration.CodecCache.getOrThrow(CodecCache.java:46) ~[bson-3.4.2.jar:na] at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:63) ~[bson-3.4.2.jar:na] at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:37) ~[bson-3.4.2.jar:na] at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:174) ~[bson-3.4.2.jar:na] at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:189) ~[bson-3.4.2.jar:na] at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:131) ~[bson-3.4.2.jar:na] at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:45) ~[bson-3.4.2.jar:na] at org.bson.Document.toJson(Document.java:294) ~[bson-3.4.2.jar:na] at org.bson.Document.toJson(Document.java:268) ~[bson-3.4.2.jar:na] at io.debezium.connector.mongodb.RecordMakers$RecordsForCollection.lambda$new$0(RecordMakers.java:115) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.RecordMakers$RecordsForCollection.createRecords(RecordMakers.java:176) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.RecordMakers$RecordsForCollection.recordObject(RecordMakers.java:142) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.Replicator.copyCollection(Replicator.java:359) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.Replicator.lambda$copyCollection$5(Replicator.java:336) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.ConnectionContext$MongoPrimary.executeBlocking(ConnectionContext.java:278) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.Replicator.copyCollection(Replicator.java:335) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at io.debezium.connector.mongodb.Replicator.lambda$performInitialSync$4(Replicator.java:277) ~[debezium-connector-mongodb-0.5.2.jar:0.5.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_91] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_91] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_91] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_91] at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_91]
We think, root cause of our problem is here
this.valueTransformer = (doc) -> doc.toJson(writerSettings); this.recorder = recorder;
So DEFAULT_REGISTRY is used, but DEFAULT_REGISTRY contains ValueCodecProvider, BsonValueCodecProvider and DocumentCodecProvider and doesn't include DBRefCodecProvider.
We have the possible solve for this: fix
- duplicates
-
DBZ-385 Encoding to JSON does not support all MongoDB types
- Closed