]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
contrib/gcc-changelog: Fix Git.AutoInterrupt - sys.meta_path is None exception
authorTobias Burnus <tburnus@baylibre.com>
Sat, 15 Mar 2025 07:53:18 +0000 (08:53 +0100)
committerTobias Burnus <tburnus@baylibre.com>
Sat, 15 Mar 2025 07:53:18 +0000 (08:53 +0100)
I think the following message is new with Python 3.13, at least I starting
seeing the following exception, which could be fixed by a simple call
to 'repo.close()'.

Seemingly the issue was that the lifetime of the destructor exceeded the
object lifetime.

  Exception ignored in: <function Git.AutoInterrupt.__del__ at 0x7ff995aa4f40>
  Traceback (most recent call last):
    File "/usr/lib/python3.13/site-packages/git/cmd.py", line 790, in __del__
    File "/usr/lib/python3.13/site-packages/git/cmd.py", line 781, in _terminate
    File "/usr/lib64/python3.13/subprocess.py", line 2227, in terminate
  ImportError: sys.meta_path is None, Python is likely shutting down

contrib/ChangeLog:

* gcc-changelog/git_repository.py (parse_git_revisions): Destroy the
Repo object by calling repo.close() at the end of the function.

contrib/gcc-changelog/git_repository.py

index d7650c65e21f8fa2251ba9720439a09594ec769e..2b2efffe77af04d3a8799eb7c5344ff868986228 100755 (executable)
@@ -78,4 +78,5 @@ def parse_git_revisions(repo_path, revisions, ref_name=None):
                                commit_to_info_hook=commit_to_info,
                                ref_name=ref_name)
         parsed_commits.append(git_commit)
+    repo.close()
     return parsed_commits