Bug 1206065 - [Backup]: Crash seen when 'glusterfind create' command is run on a non-existent volume
Summary: [Backup]: Crash seen when 'glusterfind create' command is run on a non-exist...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: glusterfind
Version: mainline
Hardware: x86_64
OS: Linux
urgent
urgent
Target Milestone: ---
Assignee: Aravinda VK
QA Contact: bugs@gluster.org
URL:
Whiteboard:
Depends On:
Blocks: qe_tracker_everglades
TreeView+ depends on / blocked
 
Reported: 2015-03-26 09:16 UTC by Sweta Anandpara
Modified: 2015-05-14 17:35 UTC (History)
6 users (show)

Fixed In Version: glusterfs-3.7.0beta1
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-05-14 17:27:02 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)

Description Sweta Anandpara 2015-03-26 09:16:12 UTC
Description of problem:

'Glusterfind create' creates a directory for every session that is created, and a subdirectory under it, with the volume name. When the command is given for a non-existent volume, 'glusterfind create' command fails, as expected. But a sub-directory is created under the session directory with the non-existent-volume name.

Version-Release number of selected component (if applicable):

Glusterfs upstream nightly glusterfs-server-3.7dev-0.777.git2308c07.el6.x86_64

How reproducible: Always


Steps to Reproduce:

1. Have a cluster, with 2*2 gluster vol 'ozone'

2. Run the glusterfind create command with non-existent volume name.
glusterfind create <sessionName> <volumeName>
glusterfind create session1 oz

3. The command fails. Check at /etc/glusterfs/glusterd.vol as to what is the working directory. Check in that location if a directory with the name 'session1' is created and if that is empty.

Actual results:
Sub-directory 'oz' is created under $session_dir

Expected results: 
No sub-directory should not be created, if the glusterfind create command has failed.

Additional info: 

[root@dhcp43-140 ~]# gluster v i
 
Volume Name: ozone
Type: Distributed-Replicate
Volume ID: cd2a06e9-fea0-4e69-98f9-9fd46e915c46
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.70.43.140:/rhs/brick1/dd
Brick2: 10.70.42.75:/rhs/brick1/dd
Brick3: 10.70.43.140:/rhs/brick2/dd
Brick4: 10.70.42.75:/rhs/brick2/dd
Options Reconfigured:
changelog.changelog: on
storage.build-pgfid: on
[root@dhcp43-140 ~]#
[root@dhcp43-140 ~]# glusterfind create session1 ozn
Failed to set volume option build-pgfid on: volume set: failed: Volume ozn does not exist
[root@dhcp43-140 ~]#
[root@dhcp43-140 ~]# glusterfind create session1 ozone
[root@dhcp43-140 ~]# cd /etc/glusterfs/
glusterd.vol                glusterfs-logrotate         gluster-rsyslog-7.2.conf    logger.conf.example
glusterfs-georep-logrotate  gluster-rsyslog-5.8.conf    group-virt.example          
[root@dhcp43-140 ~]# cat /etc/glusterfs/glusterd.vol 
volume management
    type mgmt/glusterd
    option working-directory /var/lib/glusterd
    option transport-type socket,rdma
    option transport.socket.keepalive-time 10
    option transport.socket.keepalive-interval 2
    option transport.socket.read-fail-log off
    option ping-timeout 30
#   option base-port 49152
end-volume
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# cd /var/lib/glusterd/glusterfind/session1/oz
ozn/   ozone/ 
[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# glusterfind create session1 oz
Failed to set volume option build-pgfid on: volume set: failed: Volume oz does not exist

[root@dhcp43-140 ~]# 
[root@dhcp43-140 ~]# cd /var/lib/glusterd/glusterfind/session1/oz
oz/    ozn/   ozone/ 
[root@dhcp43-140 ~]#

Comment 1 Sweta Anandpara 2015-03-27 11:34:53 UTC
Found crash logs when I re did the scenario. 

Had a brand new setup, and executed the below command:
glusterfind create <sessionName> <non-existent-volume-name>

That is when a crash is seen:
Traceback (most recent call last):
  File "/usr/bin/glusterfind", line 17, in <module>
    main()
  File "/usr/libexec/glusterfs/glusterfind/main.py", line 468, in main
    globals()["mode_" + args.mode](session_dir, args)
  File "/usr/libexec/glusterfs/glusterfind/main.py", line 442, in mode_list
    human_time(last_processed).ljust(25)))
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 54, in human_time
    return datetime.fromtimestamp(float(ts)).strftime("%Y-%m-%d %H:%M:%S")
TypeError: float() argument must be a string or a number

Changing the title of this bug. The side-effect of this issue is the one that was originally mentioned - a subdirectory getting created in $SESSION_DIR.

Pasted below are the logs:

[root@dhcp43-48 rhs_upstream3.1]# glusterfind list
[root@dhcp43-48 rhs_upstream3.1]# glusterfind create
usage: glusterfind create [-h] [--debug] [--force] session volume
glusterfind create: error: too few arguments

[root@dhcp43-48 rhs_upstream3.1]# glusterfind create sess nashh
Failed to set volume option build-pgfid on: volume set: failed: Volume nashh does not exist

[root@dhcp43-48 rhs_upstream3.1]# glusterfind list
SESSION                   VOLUME                    SESSION TIME             
---------------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/bin/glusterfind", line 17, in <module>
    main()
  File "/usr/libexec/glusterfs/glusterfind/main.py", line 468, in main
    globals()["mode_" + args.mode](session_dir, args)
  File "/usr/libexec/glusterfs/glusterfind/main.py", line 442, in mode_list
    human_time(last_processed).ljust(25)))
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 54, in human_time
    return datetime.fromtimestamp(float(ts)).strftime("%Y-%m-%d %H:%M:%S")
TypeError: float() argument must be a string or a number
[root@dhcp43-48 rhs_upstream3.1]# 
[root@dhcp43-48 rhs_upstream3.1]# 
[root@dhcp43-48 rhs_upstream3.1]#

Comment 2 Anand Avati 2015-03-31 13:00:30 UTC
REVIEW: http://review.gluster.org/10072 (tools/glusterfind: Validate Volume name before session Create) posted (#1) for review on master by Aravinda VK (avishwan@redhat.com)

Comment 3 Anand Avati 2015-04-01 10:28:29 UTC
REVIEW: http://review.gluster.org/10072 (tools/glusterfind: Validate Volume name before session Create) posted (#2) for review on master by Aravinda VK (avishwan@redhat.com)

Comment 4 Anand Avati 2015-04-01 17:35:24 UTC
COMMIT: http://review.gluster.org/10072 committed in master by Venky Shankar (vshankar@redhat.com) 
------
commit 0d36d4f6bab80dab2137e4049ee64e7cec180161
Author: Aravinda VK <avishwan@redhat.com>
Date:   Tue Mar 31 18:26:48 2015 +0530

    tools/glusterfind: Validate Volume name before session Create
    
    Do not create Session directories if Volume does not exists.
    
    Change-Id: I60c9107135c2bed2a7198582267b2328dec7e868
    Signed-off-by: Aravinda VK <avishwan@redhat.com>
    BUG: 1206065
    Reviewed-on: http://review.gluster.org/10072
    Reviewed-by: Kotresh HR <khiremat@redhat.com>
    Reviewed-by: Venky Shankar <vshankar@redhat.com>
    Tested-by: Venky Shankar <vshankar@redhat.com>

Comment 5 Niels de Vos 2015-05-14 17:27:02 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.0, please open a new bug report.

glusterfs-3.7.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10939
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user

Comment 6 Niels de Vos 2015-05-14 17:28:33 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.0, please open a new bug report.

glusterfs-3.7.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10939
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user

Comment 7 Niels de Vos 2015-05-14 17:35:17 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.0, please open a new bug report.

glusterfs-3.7.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10939
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user


Note You need to log in before you can comment on or make changes to this bug.