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.

Reply via email to