[ https://issues.apache.org/jira/browse/SUREFIRE-1881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17309082#comment-17309082 ]
Alexander Kriegisch edited comment on SUREFIRE-1881 at 3/26/21, 2:40 AM: ------------------------------------------------------------------------- [~tibordigana], it seems you followed my advice from [this comment|https://issues.apache.org/jira/browse/SUREFIRE-1881?focusedCommentId=17281048&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17281048] to deactivate the Java agent. Maybe you overlooked this sentence: {quote}Optionally (not really necessary), comment out {{Agent.INSTRUMENTATION.retransformClasses(...);}} in {{AgentIT}} to stop the test from failing with an exception due to the non-existent agent. {quote} The {{"AgentIT.test:18 NullPointer Cannot invoke "java.lang.instrument.Instrumentatio..."}} error appears of course if you deactivate the Java agent but don't activate the {{retransformClasses(...)}} call in the test. BTW, I checked with Java 8, 11, 15, 16. The results are consistent. Without SurefireForkNodeFactory it works, only the console logs from the VM are stored in a dump file. As soon as I activate {{SurefireForkNodeFactory}}, the build hangs. I even deactivated my Windows Firewall for all 3 zones (local, domain and public networs) during the test, just in case. was (Author: kriegaex): [~tibordigana], it seems you followed my advice from [this comment|https://issues.apache.org/jira/browse/SUREFIRE-1881?focusedCommentId=17281048&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17281048] to deactivate the Java agent. Maybe you overlooked this sentence: > Optionally (not really necessary), comment out > {{Agent.INSTRUMENTATION.retransformClasses(...);}} in {{AgentIT}} to stop the > test from failing with an exception due to the non-existent agent. The {{"AgentIT.test:18 NullPointer Cannot invoke "java.lang.instrument.Instrumentatio..."}} error appears of course if you deactivate the Java agent but don't activate the {{retransformClasses(...)}} call in the test. BTW, I checked with Java 8, 11, 15, 16. The results are consistent. Without SurefireForkNodeFactory it works, only the console logs from the VM are stored in a dump file. As soon as I activate {{SurefireForkNodeFactory}}, the build hangs. I even deactivated my Windows Firewall for all 3 zones (local, domain and public networs) during the test, just in case. > Java agent printing to native console makes build block when using > SurefireForkNodeFactory > ------------------------------------------------------------------------------------------ > > Key: SUREFIRE-1881 > URL: https://issues.apache.org/jira/browse/SUREFIRE-1881 > Project: Maven Surefire > Issue Type: Bug > Components: Maven Failsafe Plugin, Maven Surefire Plugin > Affects Versions: 3.0.0-M5 > Reporter: Alexander Kriegisch > Assignee: Tibor Digana > Priority: Major > Attachments: image-2021-02-08-12-07-34-183.png, > maven-failsafe-debug-log.txt, screenshot-1.png > > > This is a follow-up to SUREFIRE-1788 which was closed prematurely even though > there still were open issues which were discussed there initially. Basically > the situation is as follows: > * I use Java agents writing to stdOut and stdErr in my tests. > * I was annoyed that Surefire/Failsafe were writing lots of {{[WARNING] > Corrupted STDOUT by directly writing to native stream in forked JVM}} lines > into {{*-jvmRun1.dumpstream}} files. [~tibordigana] then told me to use > {{<forkNode > implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>}} > in my POM in order to fix the issue. > * I tried this in version 3.0.0-M5, but unfortunately, it makes > Surefire/Failsafe freeze if a Java agent prints something to stdOut or > stdErr. This happens both in M5 and in M6-SNAPSHOT after both SUREFIRE-1788 > and SUREFIRE-1809 have been merged in already. > * My [sample > project|https://github.com/kriegaex/Maven_Surefire_PrintToConsoleProblems] > reproduces the issue as soon as you uncomment the option in the POM and run > {{mvn clean verify}}. > * The second issue is: *Not* using this option leads to garbled log output > when a Java agent writes to both stdOut and stdErr before/during tests. See > comments in class > [{{Agent.DummyTransformer}}|https://github.com/kriegaex/Maven_Surefire_PrintToConsoleProblems/blob/master/src/main/java/de/scrum_master/dummy/Agent.java] > for examples for garbled log lines and also comments in > [pom.xml|https://github.com/kriegaex/Maven_Surefire_PrintToConsoleProblems/blob/master/pom.xml#L36] > for further information. > * If the garbled output would also appear with this option activated, cannot > be tested at present due to the Surefire/Failsafe freeze. I will re-test that > after the freeze has been fixed and before this issue can be closed. -- This message was sent by Atlassian Jira (v8.3.4#803005)