Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
3
-
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.