[LU-4140] Volatile files have CREATE changelog record but nothing to tell it is removed. Created: 24/Oct/13 Updated: 19/Feb/15 Resolved: 05/Jun/14 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.4.2, Lustre 2.5.1 |
| Fix Version/s: | Lustre 2.6.0, Lustre 2.5.4 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Aurelien Degremont (Inactive) | Assignee: | Bruno Faccini (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | HSM | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 11237 | ||||||||
| Description |
|
When volatile files are created, a CREATE changelog record is emitted. But no record says that file was also immediately unlinked. Either we need a UNLINK record for that FID, or a special flag in CLOSE record. By the way, I do not think lustre_rsync is handling volatile files, but more especially it should handled LAYOUT records rather than volatile files. |
| Comments |
| Comment by Jodi Levi (Inactive) [ 24/Oct/13 ] |
|
Bruno, |
| Comment by Oleg Drokin [ 24/Oct/13 ] |
|
I am of the opinion that the CREATE record should not be added for volatile files at all because those files are not supposed to have any names at all, they are by definition invisible in the namespace (or should be). As such we should just fix the bug of adding the create record |
| Comment by Jinshan Xiong (Inactive) [ 24/Oct/13 ] |
|
Indeed, let's not add CREATE changelog for volatile files. |
| Comment by Bruno Faccini (Inactive) [ 24/Oct/13 ] |
|
Ok! Will do. |
| Comment by Aurelien Degremont (Inactive) [ 27/Oct/13 ] |
|
Please note that all other Changelog record are also raised when dealing with a volatile file. If you do SETATTR or change HSM flags, etc... this will raise also records for the volatile FID. If we just remove CREATE record, there will be other records for a FID that has never been created, from a CL point of view |
| Comment by Bruno Faccini (Inactive) [ 04/Nov/13 ] |
|
Sorry I am late on this, but if I fully understand, we just want to avoid any ChangeLog record for volatile files ??… |
| Comment by jacques-charles lafoucriere [ 05/Nov/13 ] |
|
After a volatile is created, many action like layout swap, or access by FID will involve the volatile FID. So removing all the CL will be difficult. IMO we have to keep the CREATE event, with a Volatile flag or followed by an unlink event. The issue with the second is that the unlink is fake, in particular the directory mtime will not change. So an unlink event with a volatile flag ? |
| Comment by Bruno Faccini (Inactive) [ 12/Feb/14 ] |
|
Ok, I am VERY late on this ticket, and by re-reading it, I understand that even if generated, the CL records for the Volatile are useless, but am I right ? If yes, I wonder if it could be possible to easily detect them from the CL layer/routines and simply avoid them all ? If not, I will be back with the "volatile flag" proposal, and this for all CL records/events ? |
| Comment by jacques-charles lafoucriere [ 21/Feb/14 ] |
|
> even if generated, the CL records for the Volatile are useless, but am I right ? >If yes, I wonder if it could be possible to easily detect them from the CL layer/routines and simply avoid them all ? >If not, I will be back with the "volatile flag" proposal, and this for all CL records/events ? |
| Comment by Aurelien Degremont (Inactive) [ 21/Feb/14 ] |
It depends what you want to track. So far, there is no important feature requiring them. But you can imagine several use cases where dropping them could be an issue. Especially on different accounting cases. This offers a way to create stealth files and uses disk space without any changelog speaking of it.
It could be detected as it has a special name, but this would be ugly.
Currently the issue is more than some events are raised but not others. In this specific cases no REMOVE events for VOLATILE file. It seems the issue is no CL events for open-unlink files, even it they are not volatile ones. To be checked but maybe this is the real bug. This is something important IMHO, but it does not need to be a blocker for 2.5.1 |
| Comment by Bruno Faccini (Inactive) [ 12/Mar/14 ] |
|
Hello Aurelien, I am back on this now, and I will check the issue you raised about "no CL events for open-unlink files, even it they are not volatile ones", and let you know soon. |
| Comment by Bruno Faccini (Inactive) [ 09/Apr/14 ] |
|
I have been able to confirm that this issue is linked to the fact that volatile file usage is causing MDT objects orphans/leak. I will (finaly/hopefully?) have time now to push a patch to fix ... |
| Comment by Andreas Dilger [ 22/Apr/14 ] |
|
I've reopened |
| Comment by Andreas Dilger [ 29/May/14 ] |
|
I pushed http://review.whamcloud.com/10179 to try and fix the volatile file problem, and also avoid creating ChangeLog entries for volatile files. |
| Comment by Bruno Faccini (Inactive) [ 03/Jun/14 ] |
|
I did some extended testing and it appears that with this patch there is no longer a "i_am_nobody" orphan inode left for each hsm_release operation nor a ".^L^S^T^R:VOLATILE:: ..." one for each hsm_restore operation, this is for |
| Comment by Jodi Levi (Inactive) [ 05/Jun/14 ] |
|
Patch landed to Master. |