libgit2 / libgit2/libgit2

Massive libgit2 performance regression observed in Kubuntu 25.04 and Windows 11

Open
#7,090 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
10.6k
Forks
2.7k
PR merge metrics
No merged PRs in 30d

Description

Summary

In the version of libgit2 bundled with kubuntu 25.04 (1.9.0+ds-1ubuntu1) there is an enormous performance regression compared with the version bundled with 24.10. I built the library myself to narrow the issue down. I conducted a binary search of git commits and narrowed it down to fb1797de6307d8f705f9079e759860234a10de07, which is the first commit that shows the problem: the parent 93c94446cd69bec6d4a2e61e9384ebfa159d1e19 is fine. (These are between the v1.8.0 and v1.8.1 tags.)

Reproduction

Using kubuntu 25.04 (I have tested with a clean installation):

  • Clone the libgit2 repository
  • Check out revision 93c94446cd69bec6d4a2e61e9384ebfa159d1e19 and build
  • Run ctest -V. Time is normal: my output is here ctest-93c94.txt and the overall time is 194.92 s.
  • Check out revision fb1797de6307d8f705f9079e759860234a10de07 and build
  • Run ctest -V. Time is extremely slow: my output is here ctest-fb1797.txt and the overall time is 996.67 s.

The biggest slowdowns occur in the online::badssl test (test 3 goes from 34.08 s to 434.25 s most of which time was stuck on the badssl test) and test 10 auth_clone which goes from 2.58 s to 402.93 s.

This is absolutely crippling performance in applications that use libgit2, for example Siril uses it to clone or fetch a repository at startup and it has gone from being unnoticeable (< 1 s) to taking approx. 6 minutes.

I'll be happy to provide any further help in terms of testing things, just let me know.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare revisions 93c94446cd69bec6d4a2e61e9384ebfa159d1e19 and fb1797de6307d8f705f9079e759860234a10de07, then run ctest -V on each build. Focus first on online::badssl test 3 and auth_clone test 10, using the attached timing logs to identify the regression. Done means the affected tests no longer show the reported slowdown on Kubuntu 25.04 and Windows 11.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.