DescriptionSweta Anandpara
2015-06-04 07:37:18 UTC
Description of problem:
While executing any of the glusterfind CLI commands, if Ctrl+C is pressed before the command is completed, it results in a crash with the below trace:
[root@dhcp43-48 ~]# glusterfind pre sessn1 nash outn1.txt --output-prefix /tmp/ -N
^CProcess Process-3:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-2:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Traceback (most recent call last):
File "/usr/bin/glusterfind", line 17, in <module>
main()
File "/usr/libexec/glusterfs/glusterfind/main.py", line 519, in main
globals()["mode_" + args.mode](session_dir, args)
File "/usr/libexec/glusterfs/glusterfind/main.py", line 380, in mode_pre
run_cmd_nodes("pre", args, start=start)
File "/usr/libexec/glusterfs/glusterfind/main.py", line 161, in run_cmd_nodes
p.join()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 119, in join
Process Process-1:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
Process Process-4:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "/usr/libexec/glusterfs/glusterfind/main.py", line 65, in node_cmd
execute(cmd, exit_msg="%s - %s failed" % (host, task), logger=logger)
File "/usr/libexec/glusterfs/glusterfind/utils.py", line 164, in execute
(out, err) = p.communicate()
File "/usr/lib64/python2.6/subprocess.py", line 732, in communicate
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "/usr/libexec/glusterfs/glusterfind/main.py", line 65, in node_cmd
execute(cmd, exit_msg="%s - %s failed" % (host, task), logger=logger)
File "/usr/libexec/glusterfs/glusterfind/utils.py", line 164, in execute
(out, err) = p.communicate()
File "/usr/lib64/python2.6/subprocess.py", line 732, in communicate
res = self._popen.wait(timeout)
File "/usr/lib64/python2.6/multiprocessing/forking.py", line 122, in wait
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "/usr/libexec/glusterfs/glusterfind/main.py", line 65, in node_cmd
execute(cmd, exit_msg="%s - %s failed" % (host, task), logger=logger)
File "/usr/libexec/glusterfs/glusterfind/utils.py", line 164, in execute
(out, err) = p.communicate()
File "/usr/lib64/python2.6/subprocess.py", line 732, in communicate
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "/usr/libexec/glusterfs/glusterfind/main.py", line 65, in node_cmd
execute(cmd, exit_msg="%s - %s failed" % (host, task), logger=logger)
File "/usr/libexec/glusterfs/glusterfind/utils.py", line 164, in execute
(out, err) = p.communicate()
File "/usr/lib64/python2.6/subprocess.py", line 732, in communicate
stdout, stderr = self._communicate(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1316, in _communicate
stdout, stderr = self._communicate_with_poll(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1388, in _communicate_with_poll
ready = poller.poll(self._remaining_time(endtime))
KeyboardInterrupt
stdout, stderr = self._communicate(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1316, in _communicate
stdout, stderr = self._communicate_with_poll(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1388, in _communicate_with_poll
ready = poller.poll(self._remaining_time(endtime))
KeyboardInterrupt
stdout, stderr = self._communicate(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1316, in _communicate
stdout, stderr = self._communicate_with_poll(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1388, in _communicate_with_poll
ready = poller.poll(self._remaining_time(endtime))
KeyboardInterrupt
stdout, stderr = self._communicate(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1316, in _communicate
stdout, stderr = self._communicate_with_poll(input, endtime)
File "/usr/lib64/python2.6/subprocess.py", line 1388, in _communicate_with_poll
ready = poller.poll(self._remaining_time(endtime))
KeyboardInterrupt
return self.poll(0)
File "/usr/lib64/python2.6/multiprocessing/forking.py", line 107, in poll
pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt
Version-Release number of selected component (if applicable):
glusterfs-3.7.0-3.el6rhs.x86_64
How reproducible: Always
Additional info:
[root@rhs001 ~]# glusterfind pre new_vol0 vol0 outn1.txt --output-prefix /tmp/
^C
[root@rhs001 ~]# glusterfind create new_vol0 vol0
^C
No trace back observed when keyboard interrupt is encountered in the middle of glusterfind command.
Bug verified on bug glusterfs-3.7.5-8.el7rhgs.x86_64
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/RHBA-2016-0193.html