Pentaho Analysis - Mondrian
  1. Pentaho Analysis - Mondrian
  2. MONDRIAN-722

If ignoreInvalidMembers=true, should ignore grants with invalid members

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Severe Severe
    • Resolution: Fixed
    • Affects Version/s: 3.1.6 (3.5.2 GA Suite Release)
    • Component/s: None
    • Labels:
      None
    • Customer Case:

      Description

      If a member does not exist (literally no data), the following exception occurs when attempting to load the schema/cube.

      mondrian.olap.MondrianException: Mondrian Error:Member '[Store].[USA].[CA]' not found
          at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:813)
          at mondrian.olap.Util.lookupCompound(Util.java:639)
          at mondrian.rolap.RolapSchemaReader.lookupCompound(RolapSchemaReader.java:392)
          at mondrian.rolap.RolapCube$RolapCubeSchemaReader.getMemberByUniqueName(RolapCube.java:2723)
          at mondrian.rolap.RolapSchemaReader.getMemberByUniqueName(RolapSchemaReader.java:361)
          at mondrian.rolap.RolapSchema.createRole(RolapSchema.java:627)
          at mondrian.rolap.RolapSchema.load(RolapSchema.java:445)
          at mondrian.rolap.RolapSchema.load(RolapSchema.java:308)
          at mondrian.rolap.RolapSchema.(RolapSchema.java:209)
          at mondrian.rolap.RolapSchema.(RolapSchema.java:53)
          at mondrian.rolap.RolapSchema$Pool.get(RolapSchema.java:964)
          at mondrian.rolap.RolapSchema$Pool.get(RolapSchema.java:769)
          at mondrian.rolap.RolapConnection.(RolapConnection.java:170)
          at mondrian.rolap.RolapConnection.(RolapConnection.java:92)
          at mondrian.olap.DriverManager.getConnection(DriverManager.java:110)
          at org.pentaho.platform.plugin.services.connections.mondrian.MDXConnection.init(MDXConnection.java:214)
          at org.pentaho.platform.plugin.services.connections.mondrian.MDXConnection.init(MDXConnection.java:136)
          at org.pentaho.platform.plugin.services.connections.mondrian.MDXConnection.setProperties(MDXConnection.java:96)
          at com.pentaho.analyzer.service.impl.OlapConnectionManagerImpl.createConnection(SourceFile:90)

      I removed CA from foodmart > store > store_state
      I created the following role:

      <Role name="cto">
        <SchemaGrant access="none">
          <CubeGrant cube="Sales" access="all">
            <HierarchyGrant hierarchy="[Store]" access="custom"
                topLevel="[Store].[Store Country]">
              <MemberGrant member="[Store].[USA].[CA]" access="all"/>
              <MemberGrant member="[Store].[USA].[CA].[Los Angeles]" access="none"/>
            </HierarchyGrant>
            <HierarchyGrant hierarchy="[Customers]" access="custom"
                topLevel="[Customers].[State Province]" bottomLevel="[Customers].[City]">
              <MemberGrant member="[Customers].[USA].[CA]" access="all"/>
              <!-- MemberGrant member="[Customers].[USA].[CA].[Los Angeles]" access="none"/ -->
            </HierarchyGrant>
            <HierarchyGrant hierarchy="[Gender]" access="none"/>
          </CubeGrant>
        </SchemaGrant>
      </Role>

      Logged in as a cto and got the exception. I also logged in as an admin and got the same exception. I understand that for a cto role, I could get this exception. But in a multi-tenant environment, this is not acceptable, as other tenants will not care that that member does not exist.

        Activity

        Hide
        Julian Hyde added a comment -
        Fixed in change 13599.
        Show
        Julian Hyde added a comment - Fixed in change 13599.

          People

          • Assignee:
            Rahul Gurjar
            Reporter:
            Brian Hagan (Inactive)
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: