apache / accumulo-testing

Apache Accumulo Testing
https://accumulo.apache.org
Apache License 2.0
15 stars 40 forks source link

ThriftPropertyException thrown on `cingest createtable` #272

Closed DomGarguilo closed 3 weeks ago

DomGarguilo commented 8 months ago

When trying to run ./bin/cingest createtable, I get the following exception saying that "Zookeeper property is not mutable: compaction.service.cs1.planner"

Using /home/dgarguilo/github/accumulo-testing/conf/env.sh for setup
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2024-03-22T11:24:53,795 [testing.continuous.CreateTable] DEBUG: prop: compaction.service.cs1.planner=org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner
2024-03-22T11:24:53,796 [testing.continuous.CreateTable] DEBUG: prop: compaction.service.cs1.planner.opts.executors=[{"name":"small","type":"internal","maxSize":"16M","numThreads":8},{"name":"medium","type":"internal","maxSize":"128M","numThreads":4},{"name":"large","type":"internal","numThreads":2}]
2024-03-22T11:24:53,796 [testing.continuous.CreateTable] DEBUG: prop: table.compaction.dispatcher=org.apache.accumulo.core.spi.compaction.SimpleCompactionDispatcher
2024-03-22T11:24:53,796 [testing.continuous.CreateTable] DEBUG: prop: table.compaction.dispatcher.opts.service=cs1
2024-03-22T11:24:54,019 [testing.continuous.CreateTable] ERROR: Failed to set tserver props
Exception in thread "main" java.lang.Exception: org.apache.accumulo.core.client.AccumuloException: ThriftPropertyException(property:Modify properties, value:failed, description:Zookeeper property is not mutable: compaction.service.cs1.planner)
    at org.apache.accumulo.testing.continuous.CreateTable.createTable(CreateTable.java:78)
    at org.apache.accumulo.testing.continuous.CreateTable.main(CreateTable.java:51)
Caused by: org.apache.accumulo.core.client.AccumuloException: ThriftPropertyException(property:Modify properties, value:failed, description:Zookeeper property is not mutable: compaction.service.cs1.planner)
    at org.apache.accumulo.core.rpc.clients.ManagerThriftClient.executeVoidTableCommand(ManagerThriftClient.java:131)
    at org.apache.accumulo.core.rpc.clients.ManagerThriftClient.executeVoid(ManagerThriftClient.java:144)
    at org.apache.accumulo.core.clientImpl.InstanceOperationsImpl.tryToModifyProperties(InstanceOperationsImpl.java:128)
    at org.apache.accumulo.core.clientImpl.InstanceOperationsImpl.modifyProperties(InstanceOperationsImpl.java:146)
    at org.apache.accumulo.testing.continuous.CreateTable.createTable(CreateTable.java:75)
    ... 1 more
Caused by: ThriftPropertyException(property:Modify properties, value:failed, description:Zookeeper property is not mutable: compaction.service.cs1.planner)
    at org.apache.accumulo.core.manager.thrift.ManagerClientService$modifySystemProperties_result$modifySystemProperties_resultStandardScheme.read(ManagerClientService.java:21401)
    at org.apache.accumulo.core.manager.thrift.ManagerClientService$modifySystemProperties_result$modifySystemProperties_resultStandardScheme.read(ManagerClientService.java:21359)
    at org.apache.accumulo.core.manager.thrift.ManagerClientService$modifySystemProperties_result.read(ManagerClientService.java:21284)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:93)
    at org.apache.accumulo.core.manager.thrift.ManagerClientService$Client.recv_modifySystemProperties(ManagerClientService.java:570)
    at org.apache.accumulo.core.manager.thrift.ManagerClientService$Client.modifySystemProperties(ManagerClientService.java:555)
    at org.apache.accumulo.core.clientImpl.InstanceOperationsImpl.lambda$tryToModifyProperties$4(InstanceOperationsImpl.java:129)
    at org.apache.accumulo.core.rpc.clients.ManagerThriftClient.executeVoidTableCommand(ManagerThriftClient.java:108)
    ... 5 more

I am not sure why this is happening but its coming from this line: https://github.com/apache/accumulo-testing/blob/ce95056c57d3eff61400486b4a9da8fd73dbe67e/src/main/java/org/apache/accumulo/testing/continuous/CreateTable.java#L75

DomGarguilo commented 8 months ago

This happens when the accumulo version is set to 2.1.2 in the pom. The bug mentioned in #273 is blocking me from being able to use createtable when the accumulo version is set to 3.1.0-SNAPSHOT.

ddanielr commented 8 months ago

The compaction.service prefix was added in 2.1.3. Since older versions don't have compaction.service defined as a valid prefix, it's throwing that mutable error. That error message could probably be updated to throw a better error if the prefix is non-mutable and also not considered "valid".

To work around this in 2.1.2, the property file needs to use the old tserver.compaction.major.service prefix to define compaction services.

See https://github.com/apache/accumulo-testing/commit/725b723cb2c1e9310fc67298526a47d30a743a80 for the required changes to accumulo.properties.

DomGarguilo commented 8 months ago

To work around this in 2.1.2, the property file needs to use the old tserver.compaction.major.service prefix to define compaction services.

I wonder if a branch for 2.1 should be created in accumulo-testing

ddanielr commented 3 weeks ago

Created a 2.1 branch of accumulo-testing based off the 2.1.4-SNAPSHOT and fixed these compaction property errors for 2.1 Confirmed error no longer populates in 2.1.