[LU-6870] lfs changelog --follow doesn't work Created: 17/Jul/15 Updated: 14/May/20 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | John Hammond | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | changelog | ||
| Issue Links: |
|
||||
| Severity: | 3 | ||||
| Rank (Obsolete): | 9223372036854775807 | ||||
| Description |
|
The llapi changelog internals do not interpret the EOF condition correctly and this breaks 'lfs changelog --follow'. t:lustre-release# lctl --device lustre-MDT0000 changelog_register lustre-MDT0000: Registered changelog userid 'cl1' t:lustre-release# touch /mnt/lustre/f0 t:lustre-release# lfs changelog lustre-MDT0000 1 01CREAT 17:28:22.890999977 2015.07.17 0x0 t=[0x200000404:0x36:0x0] j=touch.0 p=[0x200000007:0x1:0x0] f0 2 11CLOSE 17:28:22.896000006 2015.07.17 0x42 t=[0x200000404:0x36:0x0] j=touch.0 t:lustre-release# lfs changelog --follow lustre-MDT0000 1 01CREAT 17:28:22.890999977 2015.07.17 0x0 t=[0x200000404:0x36:0x0] j=touch.0 p=[0x200000007:0x1:0x0] f0 2 11CLOSE 17:28:22.896000006 2015.07.17 0x42 t=[0x200000404:0x36:0x0] j=touch.0 Unknown changelog message type 0:0 Changelog: Protocol error Moreover, since the client side changelogf implementation does not offer blocking reads the llapi handler needs to add a short sleep so that we don't tie up a CPU by spinning on an empty pipe. |