Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-20064

Bitbucket DC should offer persistent JVM configuration that survives Bitbucket upgrades

    • Icon: Suggestion Suggestion
    • Resolution: Unresolved
    • None
    • Architecture
    • None
    • 17
    • 7
    • We collect Bitbucket feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      Bitbucket DC should offer a persistent JVM configuration, that would survive the subsequent upgrades of Bitbucket DC.

      Currently, the most common approach is to edit $BITBUCKET_INSTALL_DIR/bin/_start-webapp.sh where specific JVM arguments can be added. However:

      • It is risky. These script customisations will be lost as soon as Bitbucket DC is upgraded. The new Product version will be installed in a new folder, where a fresh copy of _start-webapp.sh will be created and used.
        You will need to remember to re-customise this script after each upgrade, which is error prone.
        If you forget, upgraded Bitbucket DC will be started with default JVM configuration, including -Xms512m -Xmx1g which is too low for most large deployments, risking an outage due to the java.lang.OutOfMemoryError
      • Modifying Bitbucket's startup scripts is generally not the best practice.
        It would have been better to keep these customisations in a separate configuration file, that Bitbucket's scripts could reference, and where the custom JVM arguments would not be wiped off by the next upgrade.

      Bitbucket DC should offer an easy way to configure persistent custom JVM arguments.

      • Some of these JVM arguments may need to be applied across the entire DC cluster, eg.
        -Xms... -Xmx...
        -Dhttp.proxyHost=... -Dhttps.proxyHost=...
        -Dhttp.proxyPort=... -Dhttps.proxyPort=...
        -Dhttp.nonProxyHosts=...
        

        etc.

      • Other custom JVM arguments may have to be node-specific, eg.
        -Dcluster.node.name=...
        

      Workaround

      At present, there is no known way to configure custom JVM arguments that would not be removed by the next Bitbucket upgrade.
      The only workaround is to re-apply these custom JVM arguments after every upgrade.

            [BSERV-20064] Bitbucket DC should offer persistent JVM configuration that survives Bitbucket upgrades

            There are no comments yet on this issue.

              Unassigned Unassigned
              msuchecki Marek Suchecki
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: