Description of problem: server.statedump-path is the path where statedumps are stored, by default it is /var/run/gluster. And can be set to any valid directory path. It was observed that server.statedump-path was also accepting file, non-existent file and non-existent paths as well. And statedump command was successful even when statedumps with all the three invalid paths. Default: ################################################################################ # gluster v get rep all | grep server.statedump-path server.statedump-path /var/run/gluster/ ################################################################################ Setting it to a file and taking statedumps:(file exists) ################################################################################ # ls -l a.txt -rw-r--r--. 1 root root 0 Jul 1 16:38 a.txt # gluster v set rep server.statedump-path /root/a.txt volume set: success # gluster v statedump rep volume statedump: success # cat a.txt ################################################################################ Setting it to a file which doesn't exists and taking statedumps: ################################################################################ # gluster v set rep server.statedump-path /root/haha.txt volume set: success # gluster v statedump rep volume statedump: success # gluster v get rep all | grep server.statedump-path server.statedump-path /root/haha.txt ################################################################################ Setting to a dir which doesn't exists: ################################################################################ # gluster v set rep server.statedump-path /root/kshithij/ volume set: success # gluster v statedump rep volume statedump: success # gluster v get rep all | grep server.statedump-path server.statedump-path /root/kshithij/ ################################################################################ Version-Release number of selected component (if applicable): glusterfs-6.0-6 How reproducible: constantly Steps to Reproduce: 1.Create a volume of type replica (1x3). 2.Set server.statedump-path to: a. A file b. A non-existent file c. A non-existent paths 3.Take statedunp using the gluster statedump command: # gluster v statedump rep Actual results: glusterd allowing to set server.statedump-path to file, non-existent file and non-existent paths. Expected results: glusterd shouldn't allow to set server.statedump-path to file, non-existent file and non-existent paths. Additional info:
I am working on this issue and trying to write the appropriate validate function to check for the correct and valid path. I will try to push the patch with the correct code ASAP. Thanks, Yati
Though the non-existing directory is still accepted as the valid value for gluster volume option of server.statedump-path, leaving this issue open will not impact any of the use case. This is very rare use case which is again an incorrect action from admin to provide the non-existing path to the value. When the admin/user after triggering the statedump, will definitely visit the directory and find that no such directory exists. When creating the directory, and next attempt of statedump always works fine. To summarize, the default location of statedump is /var/run/gluster and changing this to any new location works as long as the new location exists in the file path. Considering the information above, it was concluded that this bug would be CLOSED