[ 
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:29 AM:
-------------------------------------------------------------------------

[~tibordigana], I explained to you how you can reproduce the problem using my 
sample repository without even using a Java agent. So there is not 
inter-process communication problem involving the agent, rather one between 
Surefire and the forked test JVM. Start reading this comment again, read after 
"Need more proof?".

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.

I forgot to mention: This error {{"AgentIT.test:18 NullPointer Cannot invoke 
"java.lang.instrument.Instrumentatio..."}} appears of course if you deactivate 
the Java agent but don't activate the 
{{Agent.INSTRUMENTATION.retransformClasses(...)}} call in the test. I also 
explained that in the comment I pointed to. But like I said, this message only 
appears for me when I do not use the {{SurefireForkNodeFactory}}, because 
otherwise the build hangs.


was (Author: kriegaex):
[~tibordigana], I explained to you how you can reproduce the problem using my 
sample repository without even using a Java agent. So there is not 
inter-process communication problem involving the agent, rather one between 
Surefire and the forked test JVM. Start reading this comment again, read after 
"Need more proof?".

 

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)

Reply via email to