[ 
https://issues.apache.org/jira/browse/GROOVY-12465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18128760#comment-18128760
 ] 

ASF GitHub Bot commented on GROOVY-12465:
-----------------------------------------

testlens-app[bot] commented on PR #2990:
URL: https://github.com/apache/groovy/pull/2990#issuecomment-6268388742

   ## 🚨 TestLens detected 1 failed test 🚨
   
   ### Test Summary
   > [!TIP]
   > Inspect all details with the [TestLens 
CLI](https://testlens.app/docs/features/cli): `testlens pr 2990`
   
   #### [Build and test / lts \(17, 
ubuntu-latest\)](https://github.com/apache/groovy/actions/runs/39246876370/job/118040829924?pr=2990)
 > :groovy-lsp:test
   
   | Test | Runs | Flakiness |
   |---|---|--:|
   | GroovyLanguageServerTest > 
publishDiagnosticsIncludeVersionAndClearRemovedUris\(\) | ❌ | 1% 🟡 |
   
   🏷️ Commit: 876d3a1b532d65155fb8bfb9d8e3d641c1b4a938
   ▶️ Tests:  79422 executed
   🟡 Checks: 14/24 completed
   
   ### Test Failures
   
   <details><summary><strong>GroovyLanguageServerTest > 
publishDiagnosticsIncludeVersionAndClearRemovedUris()</strong> 
(:groovy-lsp:test in <a 
href="https://github.com/apache/groovy/actions/runs/39246876370/job/118040829924?pr=2990";>Build
 and test / lts (17, ubuntu-latest)</a>)</summary>
   
   ```
   Assertion failed: 
   
   assert fixture.diagnostics[brokenUri] == []
          |       |          ||          |
          |       |          ||          false
          |       |          
|'file:///tmp/groovy-lsp-drop5999463401509060926/Broken.groovy'
          |       |          [Diagnostic [
          |       |            range = Range [
          |       |              start = Position [
          |       |                line = 0
          |       |                character = 14
          |       |              ]
          |       |              end = Position [
          |       |                line = 0
          |       |                character = 14
          |       |              ]
          |       |            ]
          |       |            severity = Error
          |       |            code = null
          |       |            codeDescription = null
          |       |            source = "groovy"
          |       |            message = Either [
          |       |              left = Missing '}'
          |       |              right = null
          |       |            ]
          |       |            tags = null
          |       |            relatedInformation = null
          |       |            data = null
          |       |          ]]
          |       
['file:///tmp/groovy-lsp-drop5999463401509060926/Broken.groovy':[], 
'file:///home/runner/work/groovy/groovy/subprojects/groovy-lsp/Hello.groovy':[]]
          org.apache.groovy.lsp.internal.LspFixture@242ff747
   
        at 
org.codehaus.groovy.runtime.InvokerHelper.createAssertError(InvokerHelper.java:409)
        at 
org.apache.groovy.lsp.GroovyLanguageServerTest.publishDiagnosticsIncludeVersionAndClearRemovedUris(GroovyLanguageServerTest.groovy:258)
   ```
   
   </details>
   
   ### Rerun Controls
   > [!NOTE]
   > Checks are currently running using the configuration below.
   
   Select tests to mute in this pull request:
   
   🔲 GroovyLanguageServerTest > 
publishDiagnosticsIncludeVersionAndClearRemovedUris\(\) <!

> Bump asm to 9.11.1
> ------------------
>
>                 Key: GROOVY-12465
>                 URL: https://issues.apache.org/jira/browse/GROOVY-12465
>             Project: Groovy
>          Issue Type: Dependency upgrade
>            Reporter: Daniel Sun
>            Assignee: Paul King
>            Priority: Major
>             Fix For: 7.0.0-alpha-1, 6.0.1
>
>
> h3. Frame computation limits and additional tests
> ASM 9.11 adds per-method resource limits to {{ClassWriter}} frame computation 
> ({{setComputeLimits}}). They are on by default: 10 MB and 100M operations, 
> set at about ten times what the largest {{java.*}} method in the JDK needs. A 
> method that goes over fails with {{LimitExceededException}}.
> Groovy computes frames for all generated code ({{COMPUTE_MAXS | 
> COMPUTE_FRAMES}}), and its methods are far more expensive to compute than JDK 
> methods. With ASM's defaults, ordinary code that compiled under ASM 9.10.1 
> fails, even though the methods involved are only 10-20 KB of bytecode:
> * about 424 {{def}} or {{int}} locals with branches, in dynamic or 
> {{@CompileStatic}} code
> * about 300 closures in one method
> * about 425 locals in a script body
> * just 108 {{try/catch/finally}} blocks in a {{@CompileStatic}} method
> Methods right at the 64 KB limit need 5-53 times the default operation budget 
> and up to about 290 MB. They still compile in under a second, so the 64 KB 
> method limit already bounds the worst case.
> h4. Changes
> * {{CompilationUnit}}'s class writer now applies configurable limits, and by 
> default they impose no practical limit, restoring the ASM 9.10.1 behaviour.
> * New {{CompilerConfiguration}} settings {{frameComputationMaxBytes}} and 
> {{frameComputationMaxOperations}}, with the system/configuration properties 
> {{groovy.frame.computation.max.bytes}} and 
> {{groovy.frame.computation.max.operations}}. They let sandboxed or embedded 
> uses bound what one method of untrusted source can consume.
> * When a configured limit is exceeded, the compile error now names these 
> properties.
> h4. Tests
> * New {{gls.sizelimits.MethodSizeTest}}: generated methods about two thirds 
> of the way to the 64 KB code limit, covering dynamic and static locals with 
> branches, static locals of mixed types, closures, try/catch/finally, dynamic 
> and static switch, a large static initializer and a large script body. Each 
> case is compiled and run. Against ASM 9.11.1 with its default limits, 7 of 
> the 9 cases fail. All pass with this change.
> * {{MethodSizeTest.testConfiguredFrameComputationLimit}}: a low configured 
> operation limit fails compilation with {{LimitExceededException}} as the root 
> cause, and the error message names the property.
> * {{CompilerConfigurationTest}}: defaults, system properties and 
> {{Properties}}, copy constructor, the immutable {{DEFAULT}}, and rejection of 
> non-positive values.
> ```



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to