Created attachment 1514311 [details] this '((now - priv->last_landfill_check) > priv->janitor_sleep_duration)' should change to if ( now < priv->last_landfill_check ||(now - priv->last_landfill_check) > priv->janitor_sleep_duration) Description of problem: gluster volume heal xx info show stale gfid file for long time (maybe several days) Version-Release number of selected component (if applicable): glusterfs 3.12.3 How reproducible: Steps to Reproduce: 0.do I/O 1.ssh to storage node and change the system time forward 5 days like to 2018/12/19 2.change the time back to normal 3.check the gluster volume heal xx info Actual results: there is stale gfid file for long time Expected results: no stale gfid file for long time Additional info:
*** Bug 1659374 has been marked as a duplicate of this bug. ***
*** Bug 1659371 has been marked as a duplicate of this bug. ***
Marking the issue as low priority right now, as the usecase of changing system is not considered critical. This can happen because we keep the timestamp comparison with epoch values, and once a value is set for higher value, it won't be passing the if condition in case the time is reset back. Best scenario at that time is to restart the brick process.
This bug is moved to https://github.com/gluster/glusterfs/issues/968, and will be tracked there from now on. Visit GitHub issues URL for further details