Repository: spark
Updated Branches:
  refs/heads/master fbfa9be7e -> 3a07eff5a


[SPARK-22813][BUILD] Use lsof or /usr/sbin/lsof in run-tests.py

## What changes were proposed in this pull request?

In [the environment where `/usr/sbin/lsof` does not 
exist](https://github.com/apache/spark/pull/19695#issuecomment-342865001), 
`./dev/run-tests.py` for `maven` causes the following error. This is because 
the current `./dev/run-tests.py` checks existence of only `/usr/sbin/lsof` and 
aborts immediately if it does not exist.

This PR changes to check whether `lsof` or `/usr/sbin/lsof` exists.

```
/bin/sh: 1: /usr/sbin/lsof: not found

Usage:
 kill [options] <pid> [...]

Options:
 <pid> [...]            send signal to every <pid> listed
 -<signal>, -s, --signal <signal>
                        specify the <signal> to be sent
 -l, --list=[<signal>]  list all signal names, or convert one to a name
 -L, --table            list all signal names in a nice table

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see kill(1).
Traceback (most recent call last):
  File "./dev/run-tests.py", line 626, in <module>
    main()
  File "./dev/run-tests.py", line 597, in main
    build_apache_spark(build_tool, hadoop_version)
  File "./dev/run-tests.py", line 389, in build_apache_spark
    build_spark_maven(hadoop_version)
  File "./dev/run-tests.py", line 329, in build_spark_maven
    exec_maven(profiles_and_goals)
  File "./dev/run-tests.py", line 270, in exec_maven
    kill_zinc_on_port(zinc_port)
  File "./dev/run-tests.py", line 258, in kill_zinc_on_port
    subprocess.check_call(cmd, shell=True)
  File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '/usr/sbin/lsof -P |grep 3156 | grep 
LISTEN | awk '{ print $2; }' | xargs kill' returned non-zero exit status 123
```

## How was this patch tested?

manually tested

Author: Kazuaki Ishizaki <ishiz...@jp.ibm.com>

Closes #19998 from kiszk/SPARK-22813.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/3a07eff5
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/3a07eff5
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/3a07eff5

Branch: refs/heads/master
Commit: 3a07eff5af601511e97a05e6fea0e3d48f74c4f0
Parents: fbfa9be
Author: Kazuaki Ishizaki <ishiz...@jp.ibm.com>
Authored: Tue Dec 19 07:35:03 2017 +0900
Committer: hyukjinkwon <gurwls...@gmail.com>
Committed: Tue Dec 19 07:35:03 2017 +0900

----------------------------------------------------------------------
 dev/run-tests.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/3a07eff5/dev/run-tests.py
----------------------------------------------------------------------
diff --git a/dev/run-tests.py b/dev/run-tests.py
index ef0e788..7e6f7ff 100755
--- a/dev/run-tests.py
+++ b/dev/run-tests.py
@@ -253,9 +253,9 @@ def kill_zinc_on_port(zinc_port):
     """
     Kill the Zinc process running on the given port, if one exists.
     """
-    cmd = ("/usr/sbin/lsof -P |grep %s | grep LISTEN "
-           "| awk '{ print $2; }' | xargs kill") % zinc_port
-    subprocess.check_call(cmd, shell=True)
+    cmd = "%s -P |grep %s | grep LISTEN | awk '{ print $2; }' | xargs kill"
+    lsof_exe = which("lsof")
+    subprocess.check_call(cmd % (lsof_exe if lsof_exe else "/usr/sbin/lsof", 
zinc_port), shell=True)
 
 
 def exec_maven(mvn_args=()):


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to