Presto: mongo connector can`t find system.sessions

Created on 27 Sep 2019  路  1Comment  路  Source: prestodb/presto

I am trying to use Presto with MongoDB and having below error after loadTableSchema to the database.
https://github.com/prestodb/presto/blob/master/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoMetadata.java#L114

com.google.common.util.concurrent.UncheckedExecutionException: com.mongodb.MongoQueryException: Query failed with error code 13 and error message 'not authorized on config to execute command { find: "system.sessions", filter: {}, limit: 1, singleBatch: true, $db: "config", lsid: { id: UUID("bb65ba73-c5c3-472c-83bb-893e6190951c") } }' on server 121.201.12.227:27017 at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2052) at com.google.common.cache.LocalCache.get(LocalCache.java:3943) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3967) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4952) at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4958) at com.facebook.presto.mongodb.MongoSession.getTable(MongoSession.java:153) at com.facebook.presto.mongodb.MongoMetadata.getTableMetadata(MongoMetadata.java:278) at com.facebook.presto.mongodb.MongoMetadata.listTableColumns(MongoMetadata.java:130) at com.facebook.presto.metadata.MetadataManager.listTableColumns(MetadataManager.java:543) at com.facebook.presto.metadata.MetadataListing.listTableColumns(MetadataListing.java:93) at com.facebook.presto.connector.system.jdbc.ColumnJdbcTable.cursor(ColumnJdbcTable.java:126) at com.facebook.presto.connector.system.SystemPageSourceProvider$1.cursor(SystemPageSourceProvider.java:124) at com.facebook.presto.split.MappedRecordSet.cursor(MappedRecordSet.java:53) at com.facebook.presto.spi.RecordPageSource.<init>(RecordPageSource.java:37) at com.facebook.presto.connector.system.SystemPageSourceProvider.createPageSource(SystemPageSourceProvider.java:103) at com.facebook.presto.split.PageSourceManager.createPageSource(PageSourceManager.java:56) at com.facebook.presto.operator.ScanFilterAndProjectOperator.getOutput(ScanFilterAndProjectOperator.java:221) at com.facebook.presto.operator.Driver.processInternal(Driver.java:379) at com.facebook.presto.operator.Driver.lambda$processFor$8(Driver.java:283) at com.facebook.presto.operator.Driver.tryWithLock(Driver.java:675) at com.facebook.presto.operator.Driver.processFor(Driver.java:276) at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:1077) at com.facebook.presto.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:162) at com.facebook.presto.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:483) at com.facebook.presto.$gen.Presto_0_219____20190925_074649_1.run(Unknown Source) 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.mongodb.MongoQueryException: Query failed with error code 13 and error message 'not authorized on config to execute command { find: "system.sessions", filter: {}, limit: 1, singleBatch: true, $db: "config", lsid: { id: UUID("bb65ba73-c5c3-472c-83bb-893e6190951c") } }' on server xxx at com.mongodb.operation.FindOperation$1.call(FindOperation.java:722) at com.mongodb.operation.FindOperation$1.call(FindOperation.java:711) at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:470) at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:414) at com.mongodb.operation.FindOperation.execute(FindOperation.java:711) at com.mongodb.operation.FindOperation.execute(FindOperation.java:83) at com.mongodb.Mongo$3.execute(Mongo.java:822) at com.mongodb.FindIterableImpl.first(FindIterableImpl.java:193) at com.facebook.presto.mongodb.MongoSession.guessTableFields(MongoSession.java:467) at com.facebook.presto.mongodb.MongoSession.getTableMetadata(MongoSession.java:383) at com.facebook.presto.mongodb.MongoSession.loadTableSchema(MongoSession.java:178) at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:165) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2273) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046) ... 27 more

The mongo no longer seem to support it at version 3.6
https://docs.mongodb.com/manual/reference/operator/aggregation/listSessions/#pipe._S_listSessions
it recommend to use $listSessions

If not can you kindly take this as an issue since this might be relevant to a lot of presto users.
Thanks in advance!

Most helpful comment

can you help me? @highker @mbasmanova

>All comments

can you help me? @highker @mbasmanova

Was this page helpful?
0 / 5 - 0 ratings