[Mondrian] Mondrian 4 Unit Test Failures

Julian Hyde julianhyde at gmail.com
Sun Nov 13 17:34:57 EST 2016


Well, it’s your call.

Mondrian 3 has more active development simply because this is the version that Pentaho has chosen to include in its products.

Mondrian 4 has a much better architecture, is well documented in the “Mondrian in Action” book, is supported by tools such as Saiku, and is being used in production by quite a lot of people.

If the people using Mondrian 4 put in just a little time to help maintain the product, frankly I don’t see any problems with the project’s viability.

Julian


> On Nov 11, 2016, at 7:20 PM, Charlie Hubbard <charlie at fuseanalytics.com> wrote:
> 
> Well I have had that experience too.  It just hangs for hours and never finishes.  So at this point is Mondrian 4 source code just broken?  Kinda makes it hard to use.  
> 
> This all feeds my fear that I shouldn't be using Mondrian 4 in my product.  Not a lot of development is being made on it right now, significant work is still going into Mondrian 3 which means in order for Mondrian 4 to reach feature parity make it harder and harder to achieve.  Mondrian 4 has been around for a long time, but it's still in beta and doesn't seem like it's moving towards stable anytime soon.
> 
> I have a sneaking suspicion I should port back to Mondrian 3 until Mondrian 4 is stable.
> 
> Any thoughts?
> 
> On Fri, Nov 11, 2016 at 7:59 PM, Julian Hyde <julianhyde at gmail.com <mailto:julianhyde at gmail.com>> wrote:
> You had a better experience than I did. I did
> 
> $ cp mondrian.properties.template mondrian.properties
> $ mvn clean install
> 
> and it just sat there, using up a lot of memory, burning very little
> CPU, and never finished.
> 
> I don't have time to debug it, but I wish we could use maven-surefire
> (so that it prints test failures as it hits them, not at the end), and
> I wish it would use embedded hsqldb (as described in
> http://jira.pentaho.com/browse/MONDRIAN-2483 <http://jira.pentaho.com/browse/MONDRIAN-2483>) rather than mysql. The
> tests might take a little longer to run, but everyone would be running
> the same environment.
> 
> Julian
> 
> On Fri, Nov 11, 2016 at 9:24 AM, Charlie Hubbard
> <charlie at fuseanalytics.com <mailto:charlie at fuseanalytics.com>> wrote:
> > I switched over to Lagunitas and did a mvn clean install, and it still
> > failed with all of the same errors I was getting before.  I removed my
> > mondrian.properties file and simply copied the mondrian.properties.template
> > -> mondrian.properties.  It wouldn't run without doing that.
> >
> > Charlie
> >
> > Tests run: 3124, Failures: 7, Errors: 1, Skipped: 0, Time elapsed: 744.551
> > sec <<< FAILURE! - in mondrian.test.Main
> >
> > testDrillThroughMultiPositionCompoundSlicer(mondrian.test.DrillThroughTest)
> > Time elapsed: 0.165 sec  <<< FAILURE!
> >
> > junit.framework.ComparisonFailure: expected:<...gender` as `Gender`,
> >
> >     `customer`.`marital_status` as `Marital Status`,
> >
> >     sum(`sales_fact_1997`.`unit_sales`) as `Unit Sales`
> >
> > from
> >
> >     `sales_fact_1997` as `sales_fact_1997`,
> >
> >     `customer` as `customer`,
> >
> >     `time_by_day` as `time_by_day`
> >
> > where
> >
> >     `customer`.`marital_status` = 'M'
> >
> > and
> >
> >     `customer`.`gender` = 'F'
> >
> > and
> >
> >     ((`time_by_day`.`the_year` = 1997 and `time_by_day`.`quarter` = 'Q1' and
> > `time_by_day`.`the_year` = 1997) or (`time_by_day`.`the_year` = 1997 and
> > `time_by_day`.`quarter` = 'Q2' and `time_by_day`.`the_year` = 1997))
> >
> > and
> >
> >     `sales_fact_1997`.`customer_id` = `customer`.`customer_id`
> >
> > and
> >
> >     `sales_fact_1997`.`time_id` = `time_by_day`.`time_id`
> >
> > group by
> >
> >     `customer`.`gender`,...> but was:<...marital_status` as `Marital
> > Status`,
> >
> >     sum(`sales_fact_1997`.`unit_sales`) as `Unit Sales`
> >
> > from
> >
> >     `sales_fact_1997` as `sales_fact_1997`,
> >
> >     `customer` as `customer`,
> >
> >     `time_by_day` as `time_by_day`
> >
> > where
> >
> >     `customer`.`marital_status` = 'M'
> >
> > and
> >
> >     ((`customer`.`gender` = 'F' and `time_by_day`.`the_year` = 1997 and
> > `time_by_day`.`quarter` = 'Q1' and `time_by_day`.`the_year` = 1997) or
> > (`customer`.`gender` = 'F' and `time_by_day`.`the_year` = 1997 and
> > `time_by_day`.`quarter` = 'Q2' and `time_by_day`.`the_year` = 1997))
> >
> > and
> >
> >     `sales_fact_1997`.`customer_id` = `customer`.`customer_id`
> >
> > and
> >
> >     `sales_fact_1997`.`time_id` = `time_by_day`.`time_id`
> >
> > group by...>
> >
> > at junit.framework.Assert.assertEquals(Assert.java:81)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:87)
> >
> > at mondrian.test.DiffRepository.assertEquals(DiffRepository.java:546)
> >
> > at mondrian.test.TestContext.assertSqlEquals(TestContext.java:1982)
> >
> > at
> > mondrian.test.DrillThroughTest.testDrillThroughMultiPositionCompoundSlicer(DrillThroughTest.java:669)
> >
> >
> > testVirtualCubeCmBug(org.olap4j.ConnectionTest)  Time elapsed: 0 sec  <<<
> > FAILURE!
> >
> > junit.framework.AssertionFailedError: expected:<[Warehouse Profit, Profit,
> > Units Ordered, Store Invoice, Unit Sales, Supply Time, Sales Count, Average
> > Warehouse Sale, Profit Per Unit Shipped, Warehouse Cost, Profit last Period,
> > Units Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]> but
> > was:<[Warehouse Profit, Profit, Store Invoice, Units Ordered, Unit Sales,
> > Sales Count, Supply Time, Average Warehouse Sale, Profit Per Unit Shipped,
> > Warehouse Cost, Profit last Period, Customer Count, Promotion Sales, Units
> > Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]>
> >
> > at junit.framework.Assert.fail(Assert.java:47)
> >
> > at junit.framework.Assert.failNotEquals(Assert.java:282)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:64)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:71)
> >
> > at org.olap4j.ConnectionTest.testVirtualCubeCmBug(ConnectionTest.java:2156)
> >
> >
> > testVirtualCubeCmBug(org.olap4j.ConnectionTest)  Time elapsed: 0.001 sec
> > <<< FAILURE!
> >
> > junit.framework.AssertionFailedError: expected:<[Warehouse Profit, Profit,
> > Units Ordered, Store Invoice, Unit Sales, Supply Time, Sales Count, Average
> > Warehouse Sale, Profit Per Unit Shipped, Warehouse Cost, Profit last Period,
> > Units Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]> but
> > was:<[Warehouse Profit, Profit, Store Invoice, Units Ordered, Unit Sales,
> > Sales Count, Supply Time, Average Warehouse Sale, Profit Per Unit Shipped,
> > Warehouse Cost, Profit last Period, Customer Count, Promotion Sales, Units
> > Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]>
> >
> > at junit.framework.Assert.fail(Assert.java:47)
> >
> > at junit.framework.Assert.failNotEquals(Assert.java:282)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:64)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:71)
> >
> > at org.olap4j.ConnectionTest.testVirtualCubeCmBug(ConnectionTest.java:2156)
> >
> >
> > testVirtualCubeCmBug(org.olap4j.ConnectionTest)  Time elapsed: 0 sec  <<<
> > FAILURE!
> >
> > junit.framework.AssertionFailedError: expected:<[Warehouse Profit, Profit,
> > Units Ordered, Store Invoice, Unit Sales, Supply Time, Sales Count, Average
> > Warehouse Sale, Profit Per Unit Shipped, Warehouse Cost, Profit last Period,
> > Units Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]> but
> > was:<[Warehouse Profit, Profit, Store Invoice, Units Ordered, Unit Sales,
> > Sales Count, Supply Time, Average Warehouse Sale, Profit Per Unit Shipped,
> > Warehouse Cost, Profit last Period, Customer Count, Promotion Sales, Units
> > Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]>
> >
> > at junit.framework.Assert.fail(Assert.java:47)
> >
> > at junit.framework.Assert.failNotEquals(Assert.java:282)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:64)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:71)
> >
> > at org.olap4j.ConnectionTest.testVirtualCubeCmBug(ConnectionTest.java:2156)
> >
> >
> > testVirtualCubeCmBug(org.olap4j.ConnectionTest)  Time elapsed: 0.125 sec
> > <<< FAILURE!
> >
> > junit.framework.AssertionFailedError: expected:<[Warehouse Profit, Profit,
> > Units Ordered, Store Invoice, Unit Sales, Supply Time, Sales Count, Average
> > Warehouse Sale, Profit Per Unit Shipped, Warehouse Cost, Profit last Period,
> > Units Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]> but
> > was:<[Warehouse Profit, Profit, Store Invoice, Units Ordered, Unit Sales,
> > Sales Count, Supply Time, Average Warehouse Sale, Profit Per Unit Shipped,
> > Warehouse Cost, Profit last Period, Customer Count, Promotion Sales, Units
> > Shipped, Store Sales, Warehouse Sales, Store Cost, Profit Growth]>
> >
> > at junit.framework.Assert.fail(Assert.java:47)
> >
> > at junit.framework.Assert.failNotEquals(Assert.java:282)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:64)
> >
> > at junit.framework.Assert.assertEquals(Assert.java:71)
> >
> > at org.olap4j.ConnectionTest.testVirtualCubeCmBug(ConnectionTest.java:2156)
> >
> >
> > testMondrian1133(mondrian.test.SteelWheelsSchemaTest)  Time elapsed: 0.003
> > sec  <<< ERROR!
> >
> > mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while
> > creating SQL connection: Jdbc=jdbc:mysql://localhost/steelwheels;
> > JdbcUser=foodmart; JdbcPassword=foodmart
> >
> > at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:992)
> >
> > at mondrian.olap.Util.newInternal(Util.java:2543)
> >
> > at mondrian.olap.Util.newError(Util.java:2559)
> >
> > at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:239)
> >
> > at mondrian.rolap.RolapSchema.<init>(RolapSchema.java:191)
> >
> > at mondrian.rolap.RolapSchemaUpgrader.upgrade(RolapSchemaUpgrader.java:101)
> >
> > at mondrian.rolap.RolapSchemaLoader.loadStage0(RolapSchemaLoader.java:254)
> >
> > at
> > mondrian.rolap.RolapSchemaLoader.createSchema(RolapSchemaLoader.java:4303)
> >
> > at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:210)
> >
> > at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:62)
> >
> > at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:160)
> >
> > at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:84)
> >
> > at mondrian.olap.DriverManager.getConnection(DriverManager.java:112)
> >
> > at mondrian.test.TestContext.getConnection(TestContext.java:394)
> >
> > at mondrian.test.TestContext.executeQuery(TestContext.java:710)
> >
> > at
> > mondrian.test.SteelWheelsSchemaTest.testMondrian1133(SteelWheelsSchemaTest.java:601)
> >
> > Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
> > Unknown database 'steelwheels'
> >
> > at sun.reflect.GeneratedConstructorAccessor207.newInstance(Unknown Source)
> >
> > at
> > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> >
> > at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> >
> > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> >
> > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> >
> > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> >
> > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> >
> > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> >
> > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926)
> >
> > at
> > com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1748)
> >
> > at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
> >
> > at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2508)
> >
> > at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2541)
> >
> > at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2323)
> >
> > at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
> >
> > at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
> >
> > at sun.reflect.GeneratedConstructorAccessor126.newInstance(Unknown Source)
> >
> > at
> > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> >
> > at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> >
> > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> >
> > at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
> >
> > at
> > com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
> >
> > at java.sql.DriverManager.getConnection(DriverManager.java:571)
> >
> > at java.sql.DriverManager.getConnection(DriverManager.java:187)
> >
> > at
> > org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:51)
> >
> > at
> > org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
> >
> > at
> > org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
> >
> > at
> > org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
> >
> > at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:212)
> >
> > ... 36 more
> >
> >
> > On Thu, Nov 10, 2016 at 2:53 AM, Julian Hyde <julianhyde at gmail.com <mailto:julianhyde at gmail.com>> wrote:
> >>
> >> You’re on the “lagunitas” branch, right?
> >>
> >> I would build using “mvn clean install”. That said, I haven’t built in a
> >> while, and I get an error due to missing
> >> "pentaho#mondrian-data-foodmart;1.0.0”. Does anyone else get that error?
> >>
> >> Julian
> >>
> >> On Nov 9, 2016, at 7:13 PM, Charlie Hubbard <charlie at fuseanalytics.com <mailto:charlie at fuseanalytics.com>>
> >> wrote:
> >>
> >> Hi,
> >>
> >> I'm trying to build a jar file from Mondrian 4.  Do I use the maven build
> >> or ant jar?  What do I do about failing tests?  It wants to load Steel
> >> Wheels, OLAP4J tests that don't seem to be there, both of which those fail.
> >> Other tests seem to fail out of the box as well.
> >>
> >> I followed the instructions in the Dev Guide and setup mondrian.properties
> >> file pointing at mysql server.
> >>
> >> Charlie
> >> --
> >> Charlie Hubbard | Chief Technology Officer
> >> Fuse Analytics  | 404.234.8094 <tel:404.234.8094>
> >> _______________________________________________
> >> Mondrian mailing list
> >> Mondrian at pentaho.org <mailto:Mondrian at pentaho.org>
> >> http://lists.pentaho.org/mailman/listinfo/mondrian <http://lists.pentaho.org/mailman/listinfo/mondrian>
> >>
> >>
> >>
> >> _______________________________________________
> >> Mondrian mailing list
> >> Mondrian at pentaho.org <mailto:Mondrian at pentaho.org>
> >> http://lists.pentaho.org/mailman/listinfo/mondrian <http://lists.pentaho.org/mailman/listinfo/mondrian>
> >>
> >
> >
> >
> > --
> > Charlie Hubbard | Chief Technology Officer
> > Fuse Analytics  | 404.234.8094 <tel:404.234.8094>
> >
> > _______________________________________________
> > Mondrian mailing list
> > Mondrian at pentaho.org <mailto:Mondrian at pentaho.org>
> > http://lists.pentaho.org/mailman/listinfo/mondrian <http://lists.pentaho.org/mailman/listinfo/mondrian>
> >
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org <mailto:Mondrian at pentaho.org>
> http://lists.pentaho.org/mailman/listinfo/mondrian <http://lists.pentaho.org/mailman/listinfo/mondrian>
> 
> 
> 
> -- 
> Charlie Hubbard | Chief Technology Officer
> Fuse Analytics  | 404.234.8094
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20161113/6820ad99/attachment-0001.html 


More information about the Mondrian mailing list