diff options
author | Lakshmipathi <lakshmipathi@gluster.com> | 2011-09-15 15:07:26 +0530 |
---|---|---|
committer | Lakshmipathi.G <lakshmipathi@gluster.com> | 2011-09-15 15:07:26 +0530 |
commit | 37500616aadfa94ab816e71a0c18df3d91b5e42f (patch) | |
tree | 8de148217da0473969d31ec956169f91783acf91 | |
parent | 9f10e75b5cd5ef1dc2a0d166d6de6f8c0ef662a0 (diff) |
gsyncd python script for checking mtab race
-rw-r--r-- | python_pgms/.INFO.swp | bin | 0 -> 4096 bytes | |||
-rw-r--r-- | python_pgms/INFO | 1 | ||||
-rw-r--r-- | python_pgms/gsyncd_mtab_race/mtab_gsync.py | 29 |
3 files changed, 30 insertions, 0 deletions
diff --git a/python_pgms/.INFO.swp b/python_pgms/.INFO.swp Binary files differnew file mode 100644 index 0000000..a4f1647 --- /dev/null +++ b/python_pgms/.INFO.swp diff --git a/python_pgms/INFO b/python_pgms/INFO index dcfa97f..5dbce14 100644 --- a/python_pgms/INFO +++ b/python_pgms/INFO @@ -1,2 +1,3 @@ python_pgms/cloud-on-fly ---> cloud seed programs which is used for testing glusterfs of versions < 3.1.x +python_pgms/gsyncd_mtab_race ---> Bug 2690 for more details. Invoke it as mtab_gsync.py <vol-name> diff --git a/python_pgms/gsyncd_mtab_race/mtab_gsync.py b/python_pgms/gsyncd_mtab_race/mtab_gsync.py new file mode 100644 index 0000000..c2fe7e6 --- /dev/null +++ b/python_pgms/gsyncd_mtab_race/mtab_gsync.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +import os, sys, tempfile, select, time + +def connect(vol, sleeptime=None): + d = tempfile.mkdtemp() + try: + argv = ["glusterfs", "-LDEBUG", "-l/tmp/gl0.log", '-s', "localhost", + '--volfile-id', vol, '--client-pid=-1', d] + if os.spawnvp(os.P_WAIT, argv[0], argv): + raise RuntimeError("command failed: " + " ".join(argv)) + print >> sys.stderr, 'auxiliary glusterfs mount in place' + os.chdir(d) + argv = ['umount', '-l', d] + if sleeptime != None: + time.sleep(sleeptime) + if os.spawnvp(os.P_WAIT, argv[0], argv): + raise RuntimeError("command failed: " + " ".join(argv)) + finally: + try: + os.rmdir(d) + except: + print >> sys.stderr, 'stale mount possibly left behind on ' + d + print >> sys.stderr, 'auxiliary glusterfs mount prepared' + +args = sys.argv[1:2] +if len(sys.argv) > 2: + args.append(float(sys.argv[2])) +connect(*args) |