This is an automated email from the ASF dual-hosted git repository. ppkarwasz pushed a commit to branch feat/fix-file-channel-windows in repository https://gitbox.apache.org/repos/asf/logging-flume.git
commit 6088aa42c867da1652ffa6c23a620085344f13e7 Author: Piotr P. Karwasz <[email protected]> AuthorDate: Thu Jul 30 16:32:42 2026 +0200 Skip Taildir tests on non-POSIX file systems TaildirSource tracks files by inode, so its tests cannot pass when the default file system lacks a `unix` attribute view (e.g. on Windows). Document that requirement in the user guide. Assisted-By: Claude Fable 5 <[email protected]> --- .../apache/flume/source/taildir/TestTaildirEventReader.java | 11 +++++++++++ .../org/apache/flume/source/taildir/TestTaildirSource.java | 11 +++++++++++ src/site/antora/modules/ROOT/pages/FlumeUserGuide.adoc | 5 ++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirEventReader.java b/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirEventReader.java index bb198640..54d57380 100644 --- a/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirEventReader.java +++ b/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirEventReader.java @@ -31,18 +31,29 @@ import com.google.common.collect.Table; import com.google.common.io.Files; import java.io.File; import java.io.IOException; +import java.nio.file.FileSystems; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.flume.Event; import org.junit.After; +import org.junit.Assume; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class TestTaildirEventReader { private File tmpDir; private String posFilePath; + @BeforeClass + public static void requireUnixFileAttributeView() { + // ReliableTaildirEventReader tracks files by inode via the `unix:ino` file attribute + Assume.assumeTrue( + "The default file system does not provide a `unix` file attribute view", + FileSystems.getDefault().supportedFileAttributeViews().contains("unix")); + } + public static String bodyAsString(Event event) { return new String(event.getBody()); } diff --git a/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java b/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java index 2991bfb7..4c8ec6a6 100644 --- a/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java +++ b/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java @@ -39,6 +39,7 @@ import com.google.common.collect.Lists; import com.google.common.io.Files; import java.io.File; import java.io.IOException; +import java.nio.file.FileSystems; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -58,7 +59,9 @@ import org.apache.flume.lifecycle.LifecycleController; import org.apache.flume.lifecycle.LifecycleState; import org.apache.flume.util.Whitebox; import org.junit.After; +import org.junit.Assume; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; @@ -68,6 +71,14 @@ public class TestTaildirSource { private File tmpDir; private String posFilePath; + @BeforeClass + public static void requireUnixFileAttributeView() { + // TaildirSource tracks files by inode via the `unix:ino` file attribute + Assume.assumeTrue( + "The default file system does not provide a `unix` file attribute view", + FileSystems.getDefault().supportedFileAttributeViews().contains("unix")); + } + @Before public void setUp() { source = new TaildirSource(); diff --git a/src/site/antora/modules/ROOT/pages/FlumeUserGuide.adoc b/src/site/antora/modules/ROOT/pages/FlumeUserGuide.adoc index 72d2428c..397c8027 100644 --- a/src/site/antora/modules/ROOT/pages/FlumeUserGuide.adoc +++ b/src/site/antora/modules/ROOT/pages/FlumeUserGuide.adoc @@ -1680,7 +1680,10 @@ This deserializer reads a Binary Large Object (BLOB) per event, typically one BL [NOTE] ==== -*This source is provided as a preview feature. It does not work on Windows.* +*This source is provided as a preview feature.* + +This source tracks files by their inode number and therefore requires a file system that provides the `unix` file attribute view. +In particular, it does not work on Windows. ==== Watch the specified files, and tail them in nearly real-time once detected new lines appended to the each files.
