Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,556,671
Community Members
 
Community Events
184
Community Groups

Performance regression running Bitbucket Server and Data Center with Git 2.38.0+

In Git 2.38.0 a change was made to ensure Git can restore pre-merge state after a git-merge. This involves doing more work resulting in increased disk IO and CPU usage. In the context of running Git as a client this is an insignificant impact; however in Bitbucket Server and Data Center this codepath is executed frequently to test the mergeability of pull request and the impact on performance of the system can be substantial. In addition some operations such as the time for the merge button on a pull request to become active may increase from a second or so to 10+ seconds for some repositories (in the case where mergability information was not already calculated and cached).

Note: This is an issue for Git installed on the server, Git 2.38.0+ is still fine for Git clients.

We are tracking our fix for this at Performance regression running Bitbucket with Git 2.38.0+ and encourage you to watch that issue for the latest information.

As a workaround you can install on the server a Git version prior to 2.38. Be sure to install a version that is compatible with the version of Bitbucket Server you are running. The Bitbucket Server/DC Supported Platforms page provides compatibility information (be sure to select the correct version of Bitbucket from the version selector).

1 comment

Jeff Thomas
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
Apr 28, 2023

Update - Earlier this month, we released changes to address this in the following versions:

  • Bitbucket 7.21.11+
  • Bitbucket 8.9.0+ (including future minor releases such as 8.10, etc.)
    However, the changes have not been applied to 8.0 thru 8.8; the expectation is that users on those versions can upgrade to 8.9 which conveniently is an LTS release too. Or just downgrade Git as described in the workaround.

The change involves moving from using `git merge` to `git merge-tree` to perform these tryMerge() operations (i.e. to test the mergeability of a pull request). The performance improvements result in even superior results compared to Git versions prior to 2.38. Here are some numbers for a tryMerge() on one of our larger internal repositories:
Git 2.34.3: 2041ms
Git 2.39.1: 6646ms
Git 2.39.1 with merge-tree: 26ms

If you're on 7.21.11+ of 8.9.0+, upgrading to Git 2.39 should provide a significant performance increase for these operations (after a restart of the application).

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events