PFL known issues tracking ticket
(LU-9349)
|
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.10.0 |
| Fix Version/s: | Lustre 2.10.0 |
| Type: | Technical task | Priority: | Critical |
| Reporter: | James Nunez (Inactive) | Assignee: | Niu Yawei (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | pfl | ||
| Issue Links: |
|
||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||
| Description |
|
I’ve created several composite and non-composite files: # touch /lustre/scratch/nocomp # lfs setstripe -E 1M -E 2M -E 3M /lustre/scratch/threecompfile # lfs setstripe -E 3M /lustre/scratch/onec # lfs setstripe -E 1m -E 4M /lustre/scratch/twoc For non-composite (non-PFL) files, I thought the component count would be 0 or 1, but that’s not the case. Using ‘lfs find –component-count’, I know that the component count for the non-composite file, nocomp, is not 0 and not 1: # lfs getstripe --component-count /lustre/scratch/nocomp # lfs getstripe --component-count /lustre/scratch/onec 1 # lfs getstripe --component-count /lustre/scratch/twoc 2 # lfs getstripe --component-count /lustre/scratch/threecompfile 3 # lfs find --component-count 0 /lustre/scratch # lfs find --component-count 1 /lustre/scratch /lustre/scratch/onec # lfs find ! --component-count 0 /lustre/scratch /lustre/scratch /lustre/scratch/twoc /lustre/scratch/onec /lustre/scratch/nocomp /lustre/scratch/threecompfile # lfs find ! --component-count 1 /lustre/scratch /lustre/scratch /lustre/scratch/twoc /lustre/scratch/nocomp /lustre/scratch/threecompfile It seems like non-composite files should have a count of 1 or, possibly, 0. |
| Comments |
| Comment by Peter Jones [ 02/May/17 ] |
|
Niu Could you please assist with this one? Thanks Peter |
| Comment by Niu Yawei (Inactive) [ 03/May/17 ] |
|
hmm, I think the key problem here is that should we regard non-composite file as component-count=0 file? My original implementation treats them differently, because I don't think it's not proper to define the component count of a non-composite file as 0 or 1. So component count of a non-composite file is neither 0 nor 1, it should match both "! comp_count=0" and "! comp_count=1", isn't it? |
| Comment by Andreas Dilger [ 04/May/17 ] |
|
I think that the command needs to return something in this case, otherwise it makes it difficult to write a script which handles the results. Returning a component count of "0" makes sense to me, since it is not a composite file and it has no (zero) components. |
| Comment by Niu Yawei (Inactive) [ 05/May/17 ] |
|
Then what about --component-id, --component-flags, etc? Should we return error message when user try to use component options for a non-composite file? A side effect of returning error message is it will interfere the output parsing for a mixed options getstripe (when user perform getstripe with mixed options to a set of files) |
| Comment by Andreas Dilger [ 05/May/17 ] |
|
I would be ok to return 0 for component ID (which is invalid for composite files), and 0 for component flags (since no flags are set). Returning 0 for component count is also a simple way for scripts to know that this is not a composite file, if they want to scan the filesystem for non-PFL files. |
| Comment by Niu Yawei (Inactive) [ 08/May/17 ] |
|
Is this change going to be limited in the output of 'lfs getstripe' or are we going to update 'lfs find' as well? We need some extra effort if the 'lfs find' is going to be updated as well, for example, if someone try to find component count < 5 files by 'lfs find --component-count=-5', should the plain file (with component-count=0) being matched? I think it's reasonable to match plain file for such kind of 'find' if we regard plain as kind of single component file (with comp_cnt=1, comp_id=0, comp_flags=init, comp_start=0, comp_end=eof), and it could be differentiated with real single component file by comp_id=0. Another problem is that 'lfs getstripe --component-xxx=optional_args' may print nothing as well (when no component satisfy criterion), should we print an error message or just leave it as-is? I prefer to keep it as-is. |
| Comment by Niu Yawei (Inactive) [ 09/May/17 ] |
|
I think current candidate solutions are: Andreas, Bobi, which one do you prefer? I prefer 4 or 5. |
| Comment by Zhenyu Xu [ 09/May/17 ] |
|
I vote 4. |
| Comment by Andreas Dilger [ 10/May/17 ] |
|
My first preference would be #1 with comp_end=eof, but second choice would be #4. |
| Comment by John Hammond [ 10/May/17 ] |
|
I vote 4. |
| Comment by Jinshan Xiong (Inactive) [ 10/May/17 ] |
|
I vote 4. The reason is that non-PFL file should be handled exactly the same way as single component PFL file. |
| Comment by Gerrit Updater [ 11/May/17 ] |
|
Niu Yawei (yawei.niu@intel.com) uploaded a new patch: https://review.whamcloud.com/27060 |
| Comment by Gerrit Updater [ 03/Jun/17 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/27060/ |
| Comment by Peter Jones [ 03/Jun/17 ] |
|
Landed for 2.10 |