Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@naoNao89
Copy link
Contributor

@naoNao89 naoNao89 commented Oct 18, 2025

This PR fixes tail's follow-name mode on macOS and BSD by extending the parent directory watching workaround to kqueue platforms. Previously this only worked on Linux with inotify. Now tail properly tracks files that get renamed or recreated, fixing test_follow_name_move_create1 and test_follow_name_move1.

I've also cleaned up test coverage by enabling the stat stdin pipe test on all Unix platforms and documenting why three tests stay disabled on FreeBSD and OpenBSD. Those failures are due to platform-specific permission models around dev stdout and dangling symlinks, not actual bugs. All three tests pass on macOS which also uses kqueue, confirming the issues are FreeBSD and OpenBSD specific. The original test disabling was done in commit 391709c.

Fixes #3778.

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch from 809be25 to 17d8631 Compare October 18, 2025 08:14
@naoNao89 naoNao89 marked this pull request as draft October 18, 2025 08:35
@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch 2 times, most recently from 5021374 to 702afb8 Compare October 19, 2025 08:19
@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

2 similar comments
@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)

1 similar comment
@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)

const DELAY_FOR_TAIL_NORMAL: u64 = 3000; // For default tail -f (1s interval)
// For tail with -s.1 (100ms sleep): use 3x = 300ms
const DELAY_FOR_TAIL_FAST: u64 = 300; // For tail -s.1 (100ms interval)
// For tail with -s.1 (100ms sleep): use 6x = 600ms for stability
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please explain why :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

basically 3x wasn't enough for CI, bumped to 6x to handle platform differences

naoNao89 added a commit to naoNao89/coreutils that referenced this pull request Oct 20, 2025
Addresses review feedback from @sylvestre on PR uutils#8949.

Adds detailed explanation for why DELAY_FOR_TAIL_FAST uses 6x multiplier
(600ms) instead of 3x (300ms):

- Event notification delays vary significantly across platforms
- tail event loop processing adds overhead per iteration
- File system operations take longer in CI environments
- Empirically determined from flaky test analysis

The 6x multiplier provides reliable buffer while keeping tests fast.
@codspeed-hq
Copy link

codspeed-hq bot commented Oct 20, 2025

CodSpeed Performance Report

Merging #8949 will improve performances by 3.04%

Comparing naoNao89:fix/freebsd-tail-tests-3778 (8a2020f) with main (677fd95)1

Summary

⚡ 2 improvements
✅ 123 untouched

Benchmarks breakdown

Benchmark BASE HEAD Change
du_human_balanced_tree[(5, 4, 10)] 10.5 ms 10.1 ms +3.04%
du_max_depth_balanced_tree[(6, 4, 10)] 33.3 ms 32.5 ms +2.46%

Footnotes

  1. No successful run was found on main (8983b90) during the generation of this report, so 677fd95 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)

1 similar comment
@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/timeout/timeout (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/rm/rm1 (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/rm/rm1 (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/basenc/base64. tests/basenc/base64 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/basenc/basenc. tests/basenc/basenc is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cat/cat-self. tests/cat/cat-self is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cksum/b2sum. tests/cksum/b2sum is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cksum/cksum. tests/cksum/cksum is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cksum/cksum-a. tests/cksum/cksum-a is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cksum/cksum-base64. tests/cksum/cksum-base64 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cksum/cksum-c. tests/cksum/cksum-c is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/cksum/cksum-raw. tests/cksum/cksum-raw is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/du/files0-from. tests/du/files0-from is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/od/od. tests/od/od is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/stdbuf (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/rm/rm1 (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/timeout/timeout (passes in this run but fails in the 'main' branch)
Congrats! The gnu test tests/csplit/csplit-suppress-matched is no longer failing!
Congrats! The gnu test tests/du/long-from-unreadable is no longer failing!
Congrats! The gnu test tests/expr/expr-multibyte is no longer failing!
Note: The gnu test tests/tail/inotify-dir-recreate is now being skipped but was previously passing.

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/wait. tests/tail/wait is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch from 57b5a87 to 43c39a7 Compare October 21, 2025 11:32
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/descriptor-vs-rename. tests/tail/descriptor-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/descriptor-vs-rename. tests/tail/descriptor-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/wait. tests/tail/wait is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/timeout/timeout (passes in this run but fails in the 'main' branch)

naoNao89 added a commit to naoNao89/coreutils that referenced this pull request Oct 22, 2025
Implement comprehensive fix for parent-directory watching in tail --follow=name
mode, addressing issues identified in PR uutils#8949 where dual-watch setup (file +
parent directory) breaks descriptor mode tests on Linux.

Key Changes:

1. Watch Source Tracking (Phase 1)
- Add WatchSource enum to identify event origins (File vs ParentDirectory)
- Add WatchedPath struct to track file and parent directory paths
- Refactor FileHandling to store watch metadata per monitored file

2. Event Path Resolution (Phase 2)
- Implement resolve_event_paths() to map events to affected files
- Add event_affects_file() helper to check parent event relevance
- Properly handle events from both file and parent directory watches

3. Event Loop Integration (Phase 3)
- Replace manual event resolution with systematic approach
- Wire resolve_event_paths() into main follow loop
- Process events based on watch source tracking

4. Seekable Reader (Phase 4)
- Add BufReadSeek trait combining BufRead + Seek + Send
- Refactor PathData::reader from Box<dyn BufRead> to Box<dyn BufReadSeek>
- Add NonSeekableReader wrapper for stdin compatibility
- Fix limitation preventing file growth detection after rename

Platform-Specific Behavior:
- Linux (inotify): Parent watching ACTIVE for --follow=name
- macOS/BSD (kqueue): Parent watching INACTIVE (not beneficial)
- Changes isolated via cfg!(target_os = "linux")

Test Results:
- macOS: 114/114 tests passing (100%)
- Linux: Base branch shows 13 failures (validates our fix approach)
- Zero regressions on macOS
- 1 expected warning (unused field)

Documentation:
- TAIL_INVESTIGATION.md: Problem analysis and findings
- TAIL_PARENT_WATCH_DESIGN.md: Architectural design
- IMPLEMENTATION_COMPLETE.md: Complete implementation summary
- LINUX_VALIDATION_RESULTS.md: Validation results and comparison

Fixes uutils#3778
Related to PR uutils#8949
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/descriptor-vs-rename. tests/tail/descriptor-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/wait. tests/tail/wait is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/timeout/timeout (passes in this run but fails in the 'main' branch)

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch from 728f06e to 2bc52d3 Compare October 22, 2025 06:24
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/tail/symlink is no longer failing!

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Congrats! The gnu test tests/tail/symlink is no longer failing!

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Congrats! The gnu test tests/tail/symlink is no longer failing!

Watch parent directory to detect file recreation after rm/mv operations. Adds platform-specific handling for inotify (Linux) and kqueue (BSD/macOS).

Fixes uutils#3778
@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch from a44f087 to e54c336 Compare October 23, 2025 10:40
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/tail/symlink is no longer failing!

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Congrats! The gnu test tests/tail/symlink is no longer failing!

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch from ddbe063 to 9970fd3 Compare October 24, 2025 00:28
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-headers. tests/tail/F-headers is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/F-vs-missing. tests/tail/F-vs-missing is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/append-only. tests/tail/append-only is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert-2. tests/tail/assert-2 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/descriptor-vs-rename. tests/tail/descriptor-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse2. tests/tail/inotify-hash-abuse2 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/pid. tests/tail/pid is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/tail-n0f. tests/tail/tail-n0f is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/wait. tests/tail/wait is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch 2 times, most recently from a96184d to f0e6d85 Compare October 24, 2025 03:33
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)

@naoNao89 naoNao89 force-pushed the fix/freebsd-tail-tests-3778 branch from f0e6d85 to e54c336 Compare October 24, 2025 03:59
- Add last_messages HashMap to track message timing
- Suppress duplicate messages within 100ms window
- Fixes duplicate stderr messages in follow_name tests
- Add handle_rename method to update file associations after renames
- Import MetadataExt for inode comparison
- Update reader after rename events to reflect new file state
- Addresses STDOUT content under wrong headers issue
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/tail/symlink is no longer failing!

1 similar comment
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/tail/symlink is no longer failing!

- Remove handle_rename method that was causing regressions
- Keep only simple deduplication for stderr messages
- Remove unused imports and methods
- Focus on minimal, targeted fixes
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/retry. tests/tail/retry is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/truncate. tests/tail/truncate is passing on 'main'. Maybe you have to rebase?
Congrats! The gnu test tests/tail/symlink is no longer failing!

- Add update_reader_with_positioning() method for proper file positioning after truncate events
- Implement synthetic event tracking to prevent duplicate 'has appeared' messages
- Fix truncate event handling to use bounded_tail positioning logic
- Remove unused imports and fix compiler warnings
- Ensure proper file reader positioning for test_follow_name_truncate* and test_retry4 tests

Resolves truncate test failures and improves event deduplication.
- Remove premature reset of last_event_was_synthetic after real events
- Only reset synthetic flag after processing synthetic events
- Prevents extra 'has appeared' messages in rename tests

Fixes test_follow_name_move* and test_follow_name_move_retry* failures.
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-rotate. tests/tail/inotify-rotate is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

- Simplified update_reader() to always reopen files for replacements
- Fixed duplicate path reads by adding else branch for normal modify events
- Improved file replacement detection and content reading

This addresses issues with rename events where files weren't being
properly reopened and content was being read multiple times.
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)

naoNao89 added a commit to naoNao89/coreutils that referenced this pull request Oct 30, 2025
This commit removes the --debug flag implementation to be handled
in a separate PR (uutils#8949). The current PR now focuses solely on:
- Adding SHA3/SHAKE algorithm support
- Enabling --length parameter for SHA3/SHAKE
- Fixing error messages for cksum context

The --debug flag will be implemented in a follow-up PR.
@naoNao89 naoNao89 closed this by deleting the head repository Nov 6, 2025
@naoNao89 naoNao89 reopened this Nov 7, 2025
@github-actions
Copy link

github-actions bot commented Nov 7, 2025

GNU testsuite comparison:

GNU test failed: tests/tail/F-vs-rename. tests/tail/F-vs-rename is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/assert. tests/tail/assert is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tail/inotify-hash-abuse. tests/tail/inotify-hash-abuse is passing on 'main'. Maybe you have to rebase?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Freebsd: some tests are failing

2 participants