Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Typo in GitConfig._SaveJson causing the repo init to crash #190

Open
GoogleCodeExporter opened this issue May 25, 2015 · 2 comments
Open

Comments

@GoogleCodeExporter
Copy link

Affected Version: master:3eb87cec5cae5f43becfe9fd1ff94de855cac08c
Introduced in: master:85b24acd6a11af3d84cc71fc35ebdb6d3c78065f
Environment: All

What steps will reproduce the problem?
1. in clean repository
2. repo init -u <manifest url> --repo-branch stable --no-repo-verify
3. repo sync
4. delete the repository including .repo subdir
2. repo init -u <manifest url> --repo-branch master --no-repo-verify 

What is the expected output? What do you see instead?

Expected: .repo is created succesfully
Result:
m:29418/dpd_hive-repo  --repo-branch master --no-repo-verify -b master
Get ssh://xxxxxxx/xxxxxx
remote: Counting objects: 2841, done
remote: Finding sources: 100% (2841/2841)
remote: Total 2841 (delta 1699), reused 2841 (delta 1699)
Receiving objects: 100% (2841/2841), 1.90 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1699/1699), done.
From ssh://xxxxxxxxx/xxxxxx
 * [new branch]      maint      -> origin/maint
 * [new branch]      master     -> origin/master
 * [new branch]      stable     -> origin/stable
Traceback (most recent call last):
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/main.py", line 500, in <module>
    _Main(sys.argv[1:])
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/main.py", line 476, in _Main
    result = repo._Run(argv) or 0
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/main.py", line 155, in _Run
    result = cmd.Execute(copts, cargs)
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/subcmds/init.py", line 390, in Execute
    self._SyncManifest(opt)
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/subcmds/init.py", line 149, in _SyncManifest
    print('Get %s' % GitConfig.ForUser().UrlInsteadOf(opt.manifest_url),
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/git_config.py", line 218, in UrlInsteadOf
    for new_url in self.GetSubSections('url'):
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/git_config.py", line 205, in GetSubSections
    return self._sections.get(section, set())
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/git_config.py", line 229, in _sections
    for name in self._cache.keys():
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/git_config.py", line 246, in _cache
    self._cache_dict = self._Read()
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/git_config.py", line 253, in _Read
    self._SaveJson(d)
  File "/home/jenkins/jobs/trigger_post_commit_llvm_master/workspace/.repo/repo/git_config.py", line 283, in _SaveJson
    if os.path.exists(self.json):
AttributeError: 'GitConfig' object has no attribute 'json'

Please provide any additional information below.

Looking at the source code - it appears to be a typo:

  def _SaveJson(self, cache):
    try:
      fd = open(self._json, 'w')
      try:
        json.dump(cache, fd, indent=2)
      finally:
        fd.close()
    except (IOError, TypeError):
      if os.path.exists(self.json):   <=------------ here
        os.remove(self._json)


Original issue reported on code.google.com by vladi...@gmail.com on 21 Dec 2014 at 5:56

@GoogleCodeExporter
Copy link
Author

I confirm that after the suggested change the issue disappears.
The jenkins gerrit repo polling works as expected.

Original comment by patrick....@gmail.com on 29 Jan 2015 at 9:41

@GoogleCodeExporter
Copy link
Author

I got this error while building in Jenkins. The problem was, that Jenkins 
didn't have the permissions to save the file. Once I fixed the directory 
permissions, repo didn't run into the exception anymore. Nevertheless there is 
a typo in the exception branch.

Original comment by henrik.n...@gmail.com on 19 Feb 2015 at 1:03

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant