[ 
https://issues.apache.org/jira/browse/BEAM-14004?focusedWorklogId=768128&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-768128
 ]

ASF GitHub Bot logged work on BEAM-14004:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 09/May/22 19:20
            Start Date: 09/May/22 19:20
    Worklog Time Spent: 10m 
      Work Description: johnjcasey commented on code in PR #17511:
URL: https://github.com/apache/beam/pull/17511#discussion_r868352451


##########
sdks/java/io/mongodb/src/main/java/org/apache/beam/sdk/io/mongodb/MongoDbIO.java:
##########
@@ -489,8 +490,16 @@ public List<BoundedSource<Document>> split(
             // maxChunkSize is the Mongo partition size in MB
             LOG.debug("Splitting in chunk of {} MB", desiredBundleSizeBytes / 
1024 / 1024);
             splitVectorCommand.append("maxChunkSize", desiredBundleSizeBytes / 
1024 / 1024);
-            Document splitVectorCommandResult = 
mongoDatabase.runCommand(splitVectorCommand);
-            splitKeys = (List<Document>) 
splitVectorCommandResult.get("splitKeys");
+            try {

Review Comment:
   there should be a test case where we mock in the 115 exception, and verify 
the return of just the singleton list.
   
   In the log where we say the command isn't supported, we should say why it 
isn't supported.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 768128)
    Time Spent: 8h 40m  (was: 8.5h)

> [CosmosDB] com.mongodb.MongoCommandException: Command failed with error 115: 
> Command is not supported
> -----------------------------------------------------------------------------------------------------
>
>                 Key: BEAM-14004
>                 URL: https://issues.apache.org/jira/browse/BEAM-14004
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-mongodb
>    Affects Versions: 2.36.0
>            Reporter: Hector Miuler Malpica Gallegos
>            Priority: P2
>             Fix For: 2.36.0
>
>          Time Spent: 8h 40m
>  Remaining Estimate: 0h
>
> You can't read cosmosdb collections using mongodb api because mongodb api 
> doesn't support the  *{{splitVector}}* command.
>  
>  
> {code:java}
> Sending command '{"splitVector": "test01.payment", "keyPattern": {"_id": 1}, 
> "force": false, "maxChunkSize": 1}' with request id 22 to database test01 on 
> connection [connectionId{localValue:6, serverValue:792577514}] to server 
> cdb-test.documents.azure.com:10255{code}
>  
> {code:java}
> com.mongodb.MongoCommandException: Command failed with error 115: 'Command is 
> not supported.  ConnectionId fb598622-cc64-439a-affe-188c280c8e52  
> ActivityId: fde0dba1-0000-0000-0000-000000000000' on server 
> cdb-test.documents.azure.com:10255. The full response is{"_t": 
> "OKMongoResponse", "ok": 0,     "code": 115, "errmsg": "Command is not 
> supported.  ConnectionId fb598622-cc64-439a-affe-188c280c8e52  ActivityId: 
> fde0dba1-0000-0000-0000-000000000000", "$err": "Command is not supported.  
> ConnectionId fb598622-cc64-439a-affe-188c280c8e52  ActivityId: 
> fde0dba1-0000-0000-0000-000000000000"}        at 
> com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175)
>         at 
> com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:303)
>         at 
> com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:259)
>         at 
> com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)
>         at 
> com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:450)
>         at 
> com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)
>         at 
> com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:226)
>         at 
> com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)
>         at 
> com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)
>         at 
> com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:123)
>         at 
> com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:343)
>         at 
> com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:334)
>         at 
> com.mongodb.operation.CommandOperationHelper.executeCommandWithConnection(CommandOperationHelper.java:220)
>         at 
> com.mongodb.operation.CommandOperationHelper$5.call(CommandOperationHelper.java:206)
>         at 
> com.mongodb.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:463)
>         at 
> com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:203)
>         at 
> com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:198)
>         at 
> com.mongodb.operation.CommandReadOperation.execute(CommandReadOperation.java:59)
>         at 
> com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:194)
>         at 
> com.mongodb.client.internal.MongoDatabaseImpl.executeCommand(MongoDatabaseImpl.java:194)
>         at 
> com.mongodb.client.internal.MongoDatabaseImpl.runCommand(MongoDatabaseImpl.java:163)
>         at 
> com.mongodb.client.internal.MongoDatabaseImpl.runCommand(MongoDatabaseImpl.java:158)
>         at 
> com.mongodb.client.internal.MongoDatabaseImpl.runCommand(MongoDatabaseImpl.java:148)
>         at 
> org.apache.beam.sdk.io.mongodb.MongoDbIO$BoundedMongoDbSource.split(MongoDbIO.java:492)
>         at 
> org.apache.beam.runners.direct.BoundedReadEvaluatorFactory$InputProvider.getInitialInputs(BoundedReadEvaluatorFactory.java:216)
>         at 
> org.apache.beam.runners.direct.ReadEvaluatorFactory$InputProvider.getInitialInputs(ReadEvaluatorFactory.java:88)
>         at 
> org.apache.beam.runners.direct.RootProviderRegistry.getInitialInputs(RootProviderRegistry.java:80)
>         at 
> org.apache.beam.runners.direct.ExecutorServiceParallelExecutor.start(ExecutorServiceParallelExecutor.java:160)
>         at 
> org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:213)
>         at 
> org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:67)
>         at org.apache.beam.sdk.Pipeline.run(Pipeline.java:323)
>         at org.apache.beam.sdk.Pipeline.run(Pipeline.java:309)
>         ...{code}
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to