Greg Harris created KAFKA-18460:
-----------------------------------

             Summary: MetadataSchemaCheckerTool verify-evolution-git is broken 
in Git worktrees
                 Key: KAFKA-18460
                 URL: https://issues.apache.org/jira/browse/KAFKA-18460
             Project: Kafka
          Issue Type: Bug
            Reporter: Greg Harris


I use Worktrees [https://git-scm.com/docs/git-worktree] with Kafka, and 
MetadataSchemaCheckerToolTest.testVerifyEvolutionGit is failing when run within 
a worktree.
{noformat}
10:25:20.609 [Test worker] ERROR 
org.eclipse.jgit.internal.storage.file.FileSnapshot - 
/path/to/kafka/.git/config: Not a directory
java.nio.file.FileSystemException: /path/to/kafka/.git/config: Not a directory
    at 
java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
 ~[?:?]
    at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) 
~[?:?]
    at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) 
~[?:?]
    at 
java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
 ~[?:?]
    at 
java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:149)
 ~[?:?]
    at java.base/java.nio.file.Files.readAttributes(Files.java:1764) ~[?:?]
    at org.eclipse.jgit.util.FileUtils.fileAttributes(FileUtils.java:804) 
~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at org.eclipse.jgit.util.FS.fileAttributes(FS.java:1273) 
~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>(FileSnapshot.java:234)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.internal.storage.file.FileSnapshot.saveNoConfig(FileSnapshot.java:120)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.storage.file.FileBasedConfig.lambda$0(FileBasedConfig.java:119)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at org.eclipse.jgit.util.FileUtils.readWithRetries(FileUtils.java:722) 
~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.storage.file.FileBasedConfig.load(FileBasedConfig.java:115) 
~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.lib.BaseRepositoryBuilder.loadConfig(BaseRepositoryBuilder.java:732)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.lib.BaseRepositoryBuilder.getConfig(BaseRepositoryBuilder.java:709)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.lib.BaseRepositoryBuilder.guessWorkTreeOrFail(BaseRepositoryBuilder.java:744)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.lib.BaseRepositoryBuilder.setupWorkTree(BaseRepositoryBuilder.java:675)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.lib.BaseRepositoryBuilder.setup(BaseRepositoryBuilder.java:602)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.eclipse.jgit.lib.BaseRepositoryBuilder.build(BaseRepositoryBuilder.java:625)
 ~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at org.eclipse.jgit.api.Git.open(Git.java:93) 
~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at org.eclipse.jgit.api.Git.open(Git.java:73) 
~[org.eclipse.jgit-6.4.0.202211300538-r.jar:6.4.0.202211300538-r]
    at 
org.apache.kafka.message.checker.CheckerUtils.getDataFromGit(CheckerUtils.java:131)
 ~[main/:?]
    at 
org.apache.kafka.message.checker.MetadataSchemaCheckerTool.run(MetadataSchemaCheckerTool.java:107)
 ~[main/:?]
    at 
org.apache.kafka.message.checker.MetadataSchemaCheckerToolTest.testVerifyEvolutionGit(MetadataSchemaCheckerToolTest.java:32)
 ~[test/:?]
    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.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:728)
 ~[junit-platform-commons-1.10.2.jar:1.10.2]
    at 
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:218)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:214)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:139)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
 ~[junit-jupiter-engine-5.10.2.jar:5.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 
~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
    at 
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 
~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
    at 
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 
~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
 ~[junit-platform-engine-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
 ~[junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
 ~[junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
 ~[junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
 ~[junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
 [junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
 [junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
 [junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
 [junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
 [junit-platform-launcher-1.10.2.jar:1.10.2]
    at 
org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124)
 [gradle-testing-junit-platform-8.10.2.jar:8.10.2]
    at 
org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99)
 [gradle-testing-junit-platform-8.10.2.jar:8.10.2]
    at 
org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94)
 [gradle-testing-junit-platform-8.10.2.jar:8.10.2]
    at 
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63)
 [gradle-testing-base-infrastructure-8.10.2.jar:8.10.2]
    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.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
 [gradle-messaging-8.10.2.jar:8.10.2]
    at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
 [gradle-messaging-8.10.2.jar:8.10.2]
    at 
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
 [gradle-messaging-8.10.2.jar:8.10.2]
    at 
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92)
 [gradle-messaging-8.10.2.jar:8.10.2]
    at com.sun.proxy.$Proxy4.stop(Unknown Source) [?:?]
    at 
org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:200)
 [gradle-testing-base-infrastructure-8.10.2.jar:8.10.2]
    at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)
 [gradle-testing-base-infrastructure-8.10.2.jar:8.10.2]
    at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
 [gradle-testing-base-infrastructure-8.10.2.jar:8.10.2]
    at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
 [gradle-testing-base-infrastructure-8.10.2.jar:8.10.2]
    at 
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
 [gradle-worker-main-8.10.2.jar:8.10.2]
    at 
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121)
 [gradle-worker-main-8.10.2.jar:8.10.2]
    at 
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
 [gradle-worker-main-8.10.2.jar:8.10.2]
    at 
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
 [gradle-worker.jar:?]
    at 
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
 [gradle-worker.jar:?]
{noformat}
The reason for this appears to be that the version of JGit we're using does not 
support worktrees: [https://github.com/eclipse-jgit/jgit/issues/76] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to