Your git version is 1.8, but Rally requires at least git 1.9

I configured ESrally with my ElasticSearch. The problem I have is I am unable to run the race command as mentioned here - https://esrally.readthedocs.io/en/stable/race.html

The log says that I am using git 1.8, but I am clearly using git 1.9

[anuj@es-perf-01 benchmarks]$ sudo esrally --distribution-version=6.0.0 --track=geopoint --challenge=append-fast-with-conflicts

____        ____

/ __ ____ / / / __
/ // / __ `/ / / / / /
/ , / // / / / // /
/
/ ||_,///_, /
/____/

[INFO] Writing logs to /root/.rally/logs/rally_out_20180424T132621Z.log
[WARNING] Could not terminate all internal processes within timeout. Please check and force-terminate all Rally processes.
[ERROR] Cannot race. Got an unexpected result during benchmarking: [Poison<<esrally.racecontrol.Setup object at 0x7f623c2e2d30>>: Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/thespian/system/actorManager.py", line 155, in _handleOneMessage
actor_result = self.actorInst.receiveMessage(msg, envelope.sender)
File "/usr/lib/python3.4/site-packages/thespian/actors.py", line 838, in receiveMessage
r = getattr(klass, methodName)(self, message, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 104, in receiveMsg_Setup
self.setup(msg, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 185, in setup
t = track.load_track(self.cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 65, in load_track
repo = track_repo(cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 135, in track_repo
return GitTrackRepository(cfg, fetch, update)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 170, in init
self.repo = repo_class(remote_url, tracks_dir, repo_name, "tracks", offline, fetch)
File "/usr/lib/python3.4/site-packages/esrally/utils/repo.py", line 29, in init
git.fetch(src=self.repo_dir)
File "/usr/lib/python3.4/site-packages/esrally/utils/git.py", line 18, in probe
raise exceptions.SystemSetupError("Your git version is [%s] but Rally requires at least git 1.9. Please update git." % version)
esrally.exceptions.SystemSetupError: ("Your git version is [['git version 1.8.3.1']] but Rally requires at least git 1.9. Please update git.", None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/thespian/system/actorManager.py", line 170, in _handleOneMessage
actor_result = self.actorInst.receiveMessage(copy.deepcopy(msg), envelope.sender)
File "/usr/lib/python3.4/site-packages/thespian/actors.py", line 838, in receiveMessage
r = getattr(klass, methodName)(self, message, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 104, in receiveMsg_Setup
self.setup(msg, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 185, in setup
t = track.load_track(self.cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 65, in load_track
repo = track_repo(cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 135, in track_repo
return GitTrackRepository(cfg, fetch, update)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 170, in init
self.repo = repo_class(remote_url, tracks_dir, repo_name, "tracks", offline, fetch)
File "/usr/lib/python3.4/site-packages/esrally/utils/repo.py", line 29, in init
git.fetch(src=self.repo_dir)
File "/usr/lib/python3.4/site-packages/esrally/utils/git.py", line 18, in probe
raise exceptions.SystemSetupError("Your git version is [%s] but Rally requires at least git 1.9. Please update git." % version)
esrally.exceptions.SystemSetupError: ("Your git version is [['git version 1.8.3.1']] but Rally requires at least git 1.9. Please update git.", None)
].

Getting further help:



[INFO] FAILURE (took 26 seconds)

[anuj@es-perf-01 benchmarks]$ git --version
git version 1.9.5
[anuj@es-perf-01 benchmarks]$

Hi @Anuj_Kulkarni,

I notice that you are running esrally with sudo (there's no reason you should do that though), but you are checking the git version as the anuj user:

[anuj@es-perf-01 benchmarks]$ git --version
git version 1.9.5

It's possible there's a different version of git in the path of the root user. This can be checked using:

sudo su -
git --version
# check the path of git as root too
which git

Or you could just try to start Rally with your own user.

Regards,
Dimitris

Hey thanks for the quick reply.
I was able to confirm that git version as root user is again 1.9

[root@es-perf-01 ~]# git --version
git version 1.9.5

And when I remove 'sudo' from the command, I get another error, which is similar to this - Could not clone from 'https://github.com/elastic/rally-tracks'.
But as opposed to the OP of that post, I can git clone just fine.

[anuj@es-perf-01 ~]$ esrally --distribution-version=6.0.0 --track=geopoint --challenge=append-fast-with-conflicts

____        ____

/ __ ____ / / / __
/ // / __ `/ / / / / /
/ , / // / / / // /
/
/ ||_,///_, /
/____/

[INFO] Writing logs to /home/anuj/.rally/logs/rally_out_20180424T154913Z.log
fatal: destination path './/tracks/default' already exists and is not an empty directory.
fatal: destination path './/tracks/default' already exists and is not an empty directory.
[WARNING] Could not terminate all internal processes within timeout. Please check and force-terminate all Rally processes.
[ERROR] Cannot race. Got an unexpected result during benchmarking: [Poison<<esrally.racecontrol.Setup object at 0x7fb837d8bdd8>>: Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/thespian/system/actorManager.py", line 155, in _handleOneMessage
actor_result = self.actorInst.receiveMessage(msg, envelope.sender)
File "/usr/lib/python3.4/site-packages/thespian/actors.py", line 838, in receiveMessage
r = getattr(klass, methodName)(self, message, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 104, in receiveMsg_Setup
self.setup(msg, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 185, in setup
t = track.load_track(self.cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 65, in load_track
repo = track_repo(cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 135, in track_repo
return GitTrackRepository(cfg, fetch, update)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 170, in init
self.repo = repo_class(remote_url, tracks_dir, repo_name, "tracks", offline, fetch)
File "/usr/lib/python3.4/site-packages/esrally/utils/repo.py", line 26, in init
git.clone(src=self.repo_dir, remote=self.url)
File "/usr/lib/python3.4/site-packages/esrally/utils/git.py", line 36, in clone
raise exceptions.SupplyError("Could not clone from [%s] to [%s]" % (remote, src))
esrally.exceptions.SupplyError: ('Could not clone from [GitHub - elastic/rally-tracks: Track specifications for the Elasticsearch benchmarking tool Rally] to [./\/tracks/default]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/thespian/system/actorManager.py", line 170, in _handleOneMessage
actor_result = self.actorInst.receiveMessage(copy.deepcopy(msg), envelope.sender)
File "/usr/lib/python3.4/site-packages/thespian/actors.py", line 838, in receiveMessage
r = getattr(klass, methodName)(self, message, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 104, in receiveMsg_Setup
self.setup(msg, sender)
File "/usr/lib/python3.4/site-packages/esrally/racecontrol.py", line 185, in setup
t = track.load_track(self.cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 65, in load_track
repo = track_repo(cfg)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 135, in track_repo
return GitTrackRepository(cfg, fetch, update)
File "/usr/lib/python3.4/site-packages/esrally/track/loader.py", line 170, in init
self.repo = repo_class(remote_url, tracks_dir, repo_name, "tracks", offline, fetch)
File "/usr/lib/python3.4/site-packages/esrally/utils/repo.py", line 26, in init
git.clone(src=self.repo_dir, remote=self.url)
File "/usr/lib/python3.4/site-packages/esrally/utils/git.py", line 36, in clone
raise exceptions.SupplyError("Could not clone from [%s] to [%s]" % (remote, src))
esrally.exceptions.SupplyError: ('Could not clone from [GitHub - elastic/rally-tracks: Track specifications for the Elasticsearch benchmarking tool Rally] to [./\/tracks/default]', None)
].

Getting further help:



[INFO] FAILURE (took 26 seconds)

[anuj@es-perf-01 ~]$ git clone GitHub - elastic/rally-tracks: Track specifications for the Elasticsearch benchmarking tool Rally ./\/tracks/default
Cloning into './/tracks/default'...
remote: Counting objects: 2737, done.
remote: Compressing objects: 100% (161/161), done.
remote: Total 2737 (delta 431), reused 569 (delta 371), pack-reused 2084
Receiving objects: 100% (2737/2737), 992.33 KiB | 315.00 KiB/s, done.
Resolving deltas: 100% (1902/1902), done.
Checking connectivity... done.
[anuj@es-perf-01 ~]$

Hello again,

This is most certainly weird as Rally internally just invokes the git command for all those operations.

Let's try to stick making Rally run as normal user (not root), as anyway Elasticsearch can not run as the root user.

I see at the beginning of the run a fatal error:

fatal: destination path './/tracks/default' already exists and is not an empty directory.
fatal: destination path './/tracks/default' already exists and is not an empty directory.

The path looks strange as normally it'd be ~/.rally/benchmarks/tracks/default. Could there be a wrong value for root.dir under [node] in ~/.rally/rally.ini?

To troubleshoot this cleanly, can you make a backup of your existing ~/.rally directory, then delete it entirely and start afresh with esrally configure, please? It's possible the tracks got checked out with root privileges when you were running Rally with sudo. I'd also appreciate the version of Rally (esrally --version) and which Linux distribution and version you are running.

Regards,
Dimitris

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.