accumulo-testing icon indicating copy to clipboard operation
accumulo-testing copied to clipboard

ThriftPropertyException thrown on `cingest createtable`

Open DomGarguilo opened this issue 1 year ago • 3 comments

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 avatar Mar 22 '24 15:03 DomGarguilo

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.

DomGarguilo avatar Mar 22 '24 15:03 DomGarguilo

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.

ddanielr avatar Mar 24 '24 14:03 ddanielr

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

DomGarguilo avatar Mar 27 '24 23:03 DomGarguilo