Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-48349

Cache permission id to avoid allocating of new strings

        [JENKINS-48349] Cache permission id to avoid allocating of new strings

        Oleg Nenashev added a comment -

        jimilian before marking is as LTS candidate, the changelog on Jenkins.io needs to be updated

        Oleg Nenashev added a comment - jimilian before marking is as LTS candidate, the changelog on Jenkins.io needs to be updated

        Oleg Nenashev added a comment -

        BTW, The change has been released in Jenkins 2.92

        Oleg Nenashev added a comment - BTW, The change has been released in Jenkins 2.92

        Code changed in jenkins
        User: Alexander Akbashev
        Path:
        core/src/main/java/hudson/security/Permission.java
        http://jenkins-ci.org/commit/jenkins/8fa79061bb0beaf93be4e05620463fd363ac5b30
        Log:
        [FIX JENKINS-48349] Cache permission id to avoid allocating of new strings

        Every request that comes from Jelly is checked against Permissions.
        As result it leads to a call of `getId` method that produces the new string.
        Usually it's not a problem, but in case of stop-the-world pause user requests are accumulated.
        So, once pause is finished, we forcibly allocated tons of strings for
        every request. That leads to new stop-the-world pause. (And this cycle
        can repeat multiple times)

        (cherry picked from commit b2c40cb9e0db72c978b3a50be0d4c467cb33eb20)

        SCM/JIRA link daemon added a comment - Code changed in jenkins User: Alexander Akbashev Path: core/src/main/java/hudson/security/Permission.java http://jenkins-ci.org/commit/jenkins/8fa79061bb0beaf93be4e05620463fd363ac5b30 Log: [FIX JENKINS-48349] Cache permission id to avoid allocating of new strings Every request that comes from Jelly is checked against Permissions. As result it leads to a call of `getId` method that produces the new string. Usually it's not a problem, but in case of stop-the-world pause user requests are accumulated. So, once pause is finished, we forcibly allocated tons of strings for every request. That leads to new stop-the-world pause. (And this cycle can repeat multiple times) (cherry picked from commit b2c40cb9e0db72c978b3a50be0d4c467cb33eb20)

          oleg_nenashev Oleg Nenashev
          jimilian Alexander A
          Votes:
          0 Vote for this issue
          Watchers:
          4 Start watching this issue

            Created:
            Updated:
            Resolved: