Uploaded image for project: 'Jira Cloud'
  1. Jira Cloud
  2. JRACLOUD-34339

Under high concurrent load, LESS compiler performs terribly

    XMLWordPrintable

Details

    Description

      NOTE: This bug report is for JIRA Cloud. Using JIRA Server? See the corresponding bug report.

      Symptom

      There is a resource spike (CPU, Memory) after performing plugin activity such as update, install, disable and enable. The performance should be recover after JIRA finished re-building the webresources module - normally takes 3-4 minutes.

      The following thread should be seen in the thread dump as a long running thread

      "http-bio-8080-exec-2036" - Thread t@10349
        java.lang.Thread.State: RUNNABLE
      at org.mozilla.javascript.ScriptRuntime.toInteger(ScriptRuntime.java:1068)
      at org.mozilla.javascript.ScriptRuntime.toInteger(ScriptRuntime.java:1089)
      at org.mozilla.javascript.NativeString.execIdCall(NativeString.java:249)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_47(less-concat.js:850)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_78(less-concat.js:1585)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_74(less-concat.js:1530)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_75(less-concat.js:1539)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_79(less-concat.js:1602)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_71(less-concat.js:1507)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_64(less-concat.js:1297)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_35(less-concat.js:655)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_62(less-concat.js:1250)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_54(less-concat.js:1099)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_35(less-concat.js:655)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_28(less-concat.js:503)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.setup_env_js_1._c_anonymous_2(setup-env.js:29)
      at org.mozilla.javascript.gen.setup_env_js_1.call(setup-env.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_12(less-concat.js:221)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_223(less-concat.js:2702)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.BaseFunction.construct(BaseFunction.java:338)
      at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:2349)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_65(less-concat.js:1330)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_69(less-concat.js:1408)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_35(less-concat.js:655)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_28(less-concat.js:503)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.setup_env_js_1._c_anonymous_2(setup-env.js:29)
      at org.mozilla.javascript.gen.setup_env_js_1.call(setup-env.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_12(less-concat.js:221)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_223(less-concat.js:2702)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.BaseFunction.construct(BaseFunction.java:338)
      at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:2349)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_65(less-concat.js:1330)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_69(less-concat.js:1408)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_35(less-concat.js:655)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_28(less-concat.js:503)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.setup_env_js_1._c_anonymous_2(setup-env.js:29)
      at org.mozilla.javascript.gen.setup_env_js_1.call(setup-env.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_12(less-concat.js:221)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_223(less-concat.js:2702)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.BaseFunction.construct(BaseFunction.java:338)
      at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:2349)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_65(less-concat.js:1330)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_69(less-concat.js:1408)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_35(less-concat.js:655)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
      at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
      at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
      at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
      at org.mozilla.javascript.gen.less_concat_js_2._c_$_18(less-concat.js:261)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
      at org.mozilla.javascript.gen.less_concat_js_2._c_anonymous_28(less-concat.js:503)
      at org.mozilla.javascript.gen.less_concat_js_2.call(less-concat.js)
      at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
      at org.mozilla.javascript.gen.setup_env_js_1._c_anonymous_11(setup-env.js:94)
      at org.mozilla.javascript.gen.setup_env_js_1.call(setup-env.js)
      at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
      at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
      at org.mozilla.javascript.gen.setup_env_js_1.call(setup-env.js)
      at com.atlassian.jira.web.less.LessTransformer$LessCompiler.compile(LessTransformer.java:438)
      at com.atlassian.jira.web.less.LessTransformer$LessResource.transform(LessTransformer.java:220)
      at com.atlassian.plugin.webresource.transformer.CharSequenceDownloadableResource$1.apply(CharSequenceDownloadableResource.java:49)
      at com.atlassian.plugin.webresource.transformer.CharSequenceDownloadableResource$1.apply(CharSequenceDownloadableResource.java:46)
      at com.atlassian.plugin.webresource.transformer.TransformerUtils.transformAndStreamResource(TransformerUtils.java:40)
      at com.atlassian.plugin.webresource.transformer.CharSequenceDownloadableResource.streamResource(CharSequenceDownloadableResource.java:45)
      at com.atlassian.plugin.webresource.transformer.TransformerUtils.transformAndStreamResource(TransformerUtils.java:38)
      at com.atlassian.plugin.webresource.AbstractTransformResource.streamResource(AbstractTransformResource.java:60)
      at com.atlassian.plugin.webresource.transformer.TransformerUtils.transformAndStreamResource(TransformerUtils.java:38)
      at com.atlassian.plugin.webresource.AbstractTransformResource.streamResource(AbstractTransformResource.java:60)
      at com.atlassian.plugin.webresource.AbstractBatchDownloadableResource$2.writeStream(AbstractBatchDownloadableResource.java:115)
      at com.atlassian.plugin.cache.filecache.impl.CachedFile.streamToCache(CachedFile.java:188)
      at com.atlassian.plugin.cache.filecache.impl.CachedFile.doEnter(CachedFile.java:120)
      - locked <503a6451> (a java.lang.Object)
      at com.atlassian.plugin.cache.filecache.impl.CachedFile.stream(CachedFile.java:82)
      at com.atlassian.plugin.cache.filecache.impl.FileCacheImpl.stream(FileCacheImpl.java:92)
      at com.atlassian.plugin.webresource.cache.CacheHandle$Builder$2.stream(CacheHandle.java:48)
      at com.atlassian.plugin.webresource.AbstractBatchDownloadableResource.streamResourceInternal(AbstractBatchDownloadableResource.java:125)
      at com.atlassian.plugin.webresource.AbstractBatchDownloadableResource.serveResource(AbstractBatchDownloadableResource.java:97)
      at com.atlassian.plugin.webresource.servlet.PluginResourceDownload.serveFile(PluginResourceDownload.java:96)
      at com.atlassian.plugin.servlet.AbstractFileServerServlet.doGet(AbstractFileServerServlet.java:33)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      [...]
        Locked ownable synchronizers:
      - locked <368c02dd> (a java.util.concurrent.ThreadPoolExecutor$Worker)
      

      Cause

      There may be a concurrency problem in the way we use Rhino in the LESS compiler, such that is it very blocky/slow under concurrent load.

      The results of LESS compilation are cached. But the cache is cleared (for example) when installing a plugin. At that point, concurrent calls to (different) CSS batches cause many threads to be concurrently entering the LESS compiler.

      Attachments

        Issue Links

          Activity

            People

              andreask@atlassian.com Andreas Knecht (Inactive)
              mquail Matt Quail (Inactive)
              Votes:
              5 Vote for this issue
              Watchers:
              34 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: