Bug 1228164

Summary: [Snapshot] Python crashes with trace back notification when shared storage is unmount from Storage Node
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Anil Shah <ashah>
Component: snapshotAssignee: Avra Sengupta <asengupt>
Status: CLOSED ERRATA QA Contact: senaik
Severity: high Docs Contact:
Priority: high    
Version: rhgs-3.1CC: annair, asengupt, asrivast, rhs-bugs, rjoseph, storage-qa-internal
Target Milestone: ---Keywords: Triaged
Target Release: RHGS 3.1.0   
Hardware: x86_64   
OS: Linux   
Whiteboard: Scheduler
Fixed In Version: glusterfs-3.7.1-2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1228613 (view as bug list) Environment:
Last Closed: 2015-07-29 04:56:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1202842, 1223636, 1228613, 1230167    

Description Anil Shah 2015-06-04 10:33:55 UTC
Description of problem:

Once you unmount shared storage volume from storage nodes, link file entry in /etc/cron.d/ folder checks for  /var/run/gluster/shared_storage/snaps/glusterfs_snap_cron_tasks file and keep sending notification to user whenever any command is executed through helper script

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

[root@darkknight cron.d]# rpm -qa | grep glusterfs
glusterfs-3.7.0-3.el6rhs.x86_64
glusterfs-server-3.7.0-3.el6rhs.x86_64
glusterfs-api-3.7.0-3.el6rhs.x86_64
glusterfs-geo-replication-3.7.0-3.el6rhs.x86_64
glusterfs-libs-3.7.0-3.el6rhs.x86_64
glusterfs-fuse-3.7.0-3.el6rhs.x86_64
glusterfs-cli-3.7.0-3.el6rhs.x86_64
glusterfs-client-xlators-3.7.0-3.el6rhs.x86_64


How reproducible:

100%

Steps to Reproduce:
1. Create 2*2 distributed replicate volume.

2. Create  shared storage replicate volume on storage node which is not part of volume whose snapshot is scheduled. and mount on each storage node on path /var/run/gluster/shared_storage 
3. initialize scheduler on each storage node e.g run snap_scheduler.py init  command 
4. Enable scheduler on storage nodes e.g run snap_scheduler.py enable 
5. Unmount shared storage from all storage nodes.


Actual results:

[root@darkknight ~]# snap_scheduler.py list
snap_scheduler: Failed: Shared storage is not mounted at /var/run/gluster/shared_storage
You have new mail in /var/spool/mail/root


[root@darkknight ~]# snap_scheduler.py list
snap_scheduler: Failed: Shared storage is not mounted at /var/run/gluster/shared_storage
[root@darkknight ~]# snap_scheduler.py status
snap_scheduler: Failed: Shared storage is not mounted at /var/run/gluster/shared_storage
[root@darkknight ~]# snap_scheduler.py list
snap_scheduler: Failed: Shared storage is not mounted at /var/run/gluster/shared_storage
You have new mail in /var/spool/mail/root
[root@darkknight ~]# tailf /var/spool/mail/root 
Message-Id: <20150604102802.173A93CA0050>
Date: Thu,  4 Jun 2015 15:58:02 +0530 (IST)

Traceback (most recent call last):
  File "/usr/sbin/gcron.py", line 151, in <module>
    main()
  File "/usr/sbin/gcron.py", line 123, in main
    if os.lstat(GCRON_TASKS).st_mtime > \
OSError: [Errno 2] No such file or directory: '/var/run/gluster/shared_storage/snaps/glusterfs_snap_cron_tasks'


From root  Thu Jun  4 15:59:01 2015
Return-Path: <root>
X-Original-To: root
Delivered-To: root
Received: by darkknight.localdomain (Postfix, from userid 0)
	id 430EE3CA003F; Thu,  4 Jun 2015 15:59:01 +0530 (IST)
From: root (Cron Daemon)
To: root
Subject: Cron <root@darkknight> PATH=$PATH:/usr/local/sbin:/usr/sbin gcron.py --update
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20150604102901.430EE3CA003F>
Date: Thu,  4 Jun 2015 15:59:01 +0530 (IST)

Traceback (most recent call last):
  File "/usr/sbin/gcron.py", line 151, in <module>
    main()
  File "/usr/sbin/gcron.py", line 123, in main
    if os.lstat(GCRON_TASKS).st_mtime > \
OSError: [Errno 2] No such file or directory: '/var/run/gluster/shared_storage/snaps/glusterfs_snap_cron_tasks'



Expected results:

Proper clean should be done once you unmount shared storage

Additional info:

[root@darkknight ~]# gluster v info  vol0
 
Volume Name: vol0
Type: Distributed-Replicate
Volume ID: 5f93429a-056a-42d4-9d52-199df0ff1187
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.70.33.214:/rhs/brick1/b1
Brick2: 10.70.33.219:/rhs/brick1/b2
Brick3: 10.70.33.225:/rhs/brick1/b3
Brick4: 10.70.44.13:/rhs/brick1/b4
Options Reconfigured:
features.quota-deem-statfs: on
features.barrier: disable
features.inode-quota: on
features.quota: on
features.uss: enable
performance.readdir-ahead: on
snap-activate-on-create: enable

Comment 3 Anil Shah 2015-07-02 11:59:56 UTC
[root@darkknightrises cron.d]# snap_scheduler.py list
snap_scheduler: Failed: Shared storage is not mounted at /var/run/gluster/shared_storage
[root@darkknightrises cron.d]# 


Couldn't see any python crashes.
Bug verified on build glusterfs-3.7.1-6.el6rhs

Comment 4 errata-xmlrpc 2015-07-29 04:56:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-1495.html