Summary
This article discusses how to resolve an issue with users not being able to navigate and access views (VDS) in the Dremio web UI, despite having been granted access and privileges to those views.
NOTE: This issue does not apply to accessing or querying views via client applications, including ODBC/PowerBI, nor via the RESTful API.
Reported Issue
Users are unable to navigate through spaces and folders in the Dremio web UI to access views (VDS') where correct user access and minimum SELECT privileges have been granted to those views and/or the spaces and folders that contain them. The users can, however, run a query against the VDS if they use the fully qualified VDS path in the SQL editor window.
Relevant Versions
This issue applies to Dremio versions 24.x versions up to and including v24.3.4.
Troubleshooting Steps
1. Confirm the user trying to access the view has been given sufficient access either by privileges directly on the actual view(s) in question or the spaces/folders on top of the view.
2. At the time of the issue when the user cannot access the view, review the Dremio coordinator server.log and check to see if the following log ERROR message is reported.
ERROR c.d.s.n.l.CatalogListingManager - Catalog listing manager failed
For example:
2024-10-11 13:12:29,566 [dremio-general-2979] ERROR c.d.s.n.l.CatalogListingManager - Catalog listing manager failed
java.lang.IllegalStateException: Duplicate key com.dremio.service.namespace.proto.NameSpaceContainer@2295aa3d
at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
at java.util.HashMap.merge(HashMap.java:1255)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
at com.dremio.service.namespace.listing.CatalogListingManager.createNamespaceContainerCache(CatalogListingManager.java:210)
at com.dremio.service.namespace.listing.CatalogListingManager.processEvents(CatalogListingManager.java:155)
at com.dremio.service.namespace.listing.CatalogListingManager.run(CatalogListingManager.java:109)
at com.dremio.common.WakeupHandler$1.run(WakeupHandler.java:78)
at com.dremio.context.RequestContext.run(RequestContext.java:109)
at com.dremio.common.concurrent.ContextMigratingExecutorService.lambda$decorate$4(ContextMigratingExecutorService.java:227)
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:750)
Cause
This is a known issue (DX-88683) with privileges. The privilege is correctly assigned to the user such that they can query any dataset under a space or folder with permissions (via SQL Runner / client) but cannot list it in the UI (catalog listing issue).
This is issue is fixed in the next minor release up from your version - v24.3.5 per the below release note linked below under "Additional Resources".
Steps to Resolve
Upgrade to Dremio versions 24.3.5 and beyond.
Additional Resources
Dremio v24.3.5 Release Notes: https://docs.dremio.com/current/release-notes/version-240-release#issues-fixed-8