wardlican opened a new issue, #4151: URL: https://github.com/apache/amoro/issues/4151
### What happened? <img width="1837" height="880" alt="Image" src="https://github.com/user-attachments/assets/17894b53-6c3b-4548-81f7-b6300a94f27a" /> ### Affects Versions master ### What table formats are you seeing the problem on? _No response_ ### What engines are you seeing the problem on? _No response_ ### How to reproduce _No response_ ### Relevant log output ```shell 04:05:12.085 ERROR org.apache.amoro.server.DefaultOptimizingService: OptimizerGroupKeeper has encountered a problem. java.lang.RuntimeException: No resources available at org.apache.amoro.server.TestOptimizerGroupKeeper$MockOptimizerContainer.doScaleOut(TestOptimizerGroupKeeper.java:359) ~[test-classes/:?] at org.apache.amoro.server.manager.AbstractOptimizerContainer.requestResource(AbstractOptimizerContainer.java:62) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$OptimizerGroupKeeper.processTask(DefaultOptimizingService.java:834) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$OptimizerGroupKeeper.processTask(DefaultOptimizingService.java:775) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$AbstractKeeper.run(DefaultOptimizingService.java:571) [classes/:?] at java.lang.Thread.run(Thread.java:829) [?:?] 04:05:12.106 ERROR org.apache.amoro.server.DefaultOptimizingService: OptimizerGroupKeeper has encountered a problem. java.lang.RuntimeException: No resources available at org.apache.amoro.server.TestOptimizerGroupKeeper$MockOptimizerContainer.doScaleOut(TestOptimizerGroupKeeper.java:359) ~[test-classes/:?] at org.apache.amoro.server.manager.AbstractOptimizerContainer.requestResource(AbstractOptimizerContainer.java:62) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$OptimizerGroupKeeper.processTask(DefaultOptimizingService.java:834) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$OptimizerGroupKeeper.processTask(DefaultOptimizingService.java:775) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$AbstractKeeper.run(DefaultOptimizingService.java:571) [classes/:?] at java.lang.Thread.run(Thread.java:829) [?:?] 04:05:12.136 ERROR org.apache.amoro.server.DefaultOptimizingService: OptimizerGroupKeeper has encountered a problem. java.lang.RuntimeException: No resources available at org.apache.amoro.server.TestOptimizerGroupKeeper$MockOptimizerContainer.doScaleOut(TestOptimizerGroupKeeper.java:359) ~[test-classes/:?] at org.apache.amoro.server.manager.AbstractOptimizerContainer.requestResource(AbstractOptimizerContainer.java:62) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$OptimizerGroupKeeper.processTask(DefaultOptimizingService.java:834) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$OptimizerGroupKeeper.processTask(DefaultOptimizingService.java:775) ~[classes/:?] at org.apache.amoro.server.DefaultOptimizingService$AbstractKeeper.run(DefaultOptimizingService.java:571) [classes/:?] at java.lang.Thread.run(Thread.java:829) [?:?] 04:05:12.176 WARN org.apache.amoro.server.DefaultOptimizingService: Resource Group:test-keeper-group-3, creating optimizer 4 times in a row, optimizers still below min-parallel:2, will reset min-parallel to 0 04:05:12.212 INFO org.apache.amoro.server.DefaultOptimizingService: Optimizer OptimizerInstance{token=75daf489-b854-4d50-a398-4efaf817b84d, startTime=1774843511411, touchTime=1774843511412} has been expired, unregister it 04:05:12.279 INFO org.apache.amoro.server.catalog.DefaultCatalogManager: Dispose catalog: test_catalog 04:05:12.279 WARN org.apache.amoro.server.DefaultOptimizingService: ResourceGroup:test-keeper-group-3 may have been deleted, stop keeping it Error: Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.046 s <<< FAILURE! - in org.apache.amoro.server.TestOptimizerGroupKeeper Error: TestOptimizerGroupKeeper.testMinParallelismResetToOptimizerParallelWhenNoMoreResource Time elapsed: 0.228 s <<< FAILURE! org.opentest4j.AssertionFailedError: test-keeper-group-4:max scale-out attempts should be exhausted when no resources available ==> expected: <3> but was: <5> at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197) at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182) at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:576) at org.apache.amoro.server.TestOptimizerGroupKeeper.testMinParallelismResetToOptimizerParallelWhenNoMoreResource(TestOptimizerGroupKeeper.java:302) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:54) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:54) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:54) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42) at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80) at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:55) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:223) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:175) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:139) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:456) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:169) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:595) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:581) ``` ### Anything else _No response_ ### Are you willing to submit a PR? - [x] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's Code of Conduct -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
