I will note that the test you highlighted is one that frequently fails in CI, so that looks like a good investigation point.
On Mon, Nov 9, 2020 at 12:33 Matt Sicker <boa...@gmail.com> wrote: > This is in the new test framework. I may have missed an edge case while > porting over tests since I haven’t finished that yet (got side tracked by > some issues raised in the rolling appender code, then some other items). > I’ve been adapting our test tooling to use the JUnit 5 extension API which > is fairly different from the v4 API, and I don’t think I’ve even ported > over all the functionality of LoggerContextRule yet. > > On Mon, Nov 9, 2020 at 11:08 Gary Gregory <garydgreg...@gmail.com> wrote: > >> Matt & all: >> >> The last failing test I have on Windows fails, always, from the Maven >> command line or Eclipse: >> >> > > > [ERROR] Failures: >> > > > [ERROR] FileOutputTest.testConfig target\status.log failed with >> > > > java.nio.file.FileSystemException: target\status.log: The process >> > cannot >> > > > access the file because it is being used by another process. >> >> It obviously must not clean up after itself. There is a new annotation >> called LoggerContextSource which documents loading a config file but >> mentions nothing of unloading it. >> >> There is something called ReconfigurationPolicy which defaults to NEVER >> but >> that's not the same as shutting down or is it? >> >> Whatever I set the policy to for this test, the error is the same. So is >> the problem in this new test f/w or in the main code? >> >> Gary >> >> >> >> On Sun, Nov 8, 2020 at 8:21 PM Matt Sicker <boa...@gmail.com> wrote: >> >> > There could be a bug that wasn’t encountered other than in CI related to >> > the test changes. >> > >> > ---------- Forwarded message --------- >> > From: Gary Gregory <garydgreg...@gmail.com> >> > Date: Sun, Nov 8, 2020 at 16:55 >> > Subject: Re: [VOTE] Release Log4j 2.14.0-rc1 >> > To: Apache Logging Developers List <dev@logging.apache.org> >> > >> > >> > On Sun, Nov 8, 2020 at 12:03 PM Matt Sicker <boa...@gmail.com> wrote: >> > >> > > There’s a system property you can override in the tests to increase >> the >> > > file cleanup timeout which seems to help ensure the tests end up >> passing >> > in >> > > >> > >> > I'm sorry to say that my experience with this RC on both Macos and >> Windows >> > feels like our build is more brittle than ever. >> > >> > I found the timeout setting and set it to 2000 and then 10000 millis >> which >> > did not help but then I got weird errors about formatting specifiers not >> > being parsed. So I have no idea if the Core dat file was properly built. >> > That's one thing. >> > >> > A separate issue I'd like to bring up is that this setting exists at >> all. >> > At some point in the near past it seems that some tests were rewritten >> > based on annotations and test classes that use this sleep setting. >> > >> > BUT at some further point in the past, I had a lot of tests running >> with a >> > custom Log4j JUnit logger context Rule that set up and tore down Log4j >> such >> > that when a test was done, log4j was shutdown which meant that log files >> > were actually and certainly closed. IIRC that is. If we've changed this >> > basic premise and decoupled the end of a test with shutting down its >> logger >> > context such that a delay is now _required_ to properly close resources >> > outside of Log4j closing them, then that's a problem and a >> self-inflicted >> > wound IMO. >> > >> > Now I must apologize for not digging into this new test framework now to >> > suss out exactly what is going on, but I am hoping someone can help me >> > understand what's going on here. >> > >> > TY! >> > Gary >> > >> > >> > >> > >> > > Windows. If you try setting it to like 1 or 2 seconds, that might >> help. >> > > >> > > On Sun, Nov 8, 2020 at 10:49 Ralph Goers <ralph.go...@dslextreme.com> >> > > wrote: >> > > >> > > > That aligns with what we see in Jenkins. They appear to be problems >> > with >> > > > the tests trying to cleanup. Not a blocker for the release. >> > > > >> > > > Ralph >> > > > >> > > > > On Nov 8, 2020, at 8:46 AM, Gary Gregory <garydgreg...@gmail.com> >> > > wrote: >> > > > > >> > > > > From the git tags, my failures on Windows are: >> > > > > >> > > > > [INFO] >> > > > > [ERROR] Failures: >> > > > > [ERROR] FileOutputTest.testConfig target\status.log failed with >> > > > > java.nio.file.FileSystemException: target\status.log: The process >> > > cannot >> > > > > access the file because it is being used by another process. >> > > > > [ERROR] Errors: >> > > > > [ERROR] >> > > > RandomAccessFileManagerTest.testAppendDoesNotOverwriteExistingFile >> > > > > » IO Failed... >> > > > > [INFO] >> > > > > [ERROR] Tests run: 2188, Failures: 1, Errors: 1, Skipped: 24 >> > > > > Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) >> > > > > Maven home: C:\Java\apache-maven-3.6.3\bin\.. >> > > > > Java version: 1.8.0_272, vendor: AdoptOpenJDK, runtime: C:\Program >> > > > > Files\AdoptOpenJDK\jdk-8.0.272.10-hotspot\jre >> > > > > Default locale: en_US, platform encoding: Cp1252 >> > > > > OS name: "windows 10", version: "10.0", arch: "amd64", family: >> > "windows >> > > > > >> > > > > On Sat, Nov 7, 2020 at 10:49 AM Gary Gregory < >> garydgreg...@gmail.com >> > > >> > > > wrote: >> > > > > >> > > > >> Hi All: >> > > > >> >> > > > >> I am getting: >> > > > >> >> > > > >> [ERROR] Tests run: 20, Failures: 1, Errors: 0, Skipped: 0, Time >> > > elapsed: >> > > > >> 116.204 s <<< FAILURE! - in >> > > > >> org.apache.logging.log4j.core.config.TestConfigurator >> > > > >> [ERROR] testReconfiguration Time elapsed: 15.044 s <<< FAILURE! >> > > > >> java.lang.AssertionError: >> > > > >> Configuration not reset >> > > > >> Expected: is not >> > > > >> >> > > > >> > > >> > >> > >> sameInstance(<XmlConfiguration[location=/Users/garydgregory/git/logging-log4j2/log4j-core/target/test-classes/log4j2-config.xml]>) >> > > > >> but: was >> > > > >> >> > > > >> > > >> > >> > >> <XmlConfiguration[location=/Users/garydgregory/git/logging-log4j2/log4j-core/target/test-classes/log4j2-config.xml]> >> > > > >> at >> > > > >> >> > > > >> > > >> > >> > >> org.apache.logging.log4j.core.config.TestConfigurator.testReconfiguration(TestConfigurator.java:274) >> > > > >> >> > > > >> On: >> > > > >> >> > > > >> ~/git/logging-log4j2 ➦ 4ab25b92d mvn -version >> > > > >> Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) >> > > > >> Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec >> > > > >> Java version: 1.8.0_272, vendor: AdoptOpenJDK, runtime: >> > > > >> >> > /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre >> > > > >> Default locale: en_US, platform encoding: UTF-8 >> > > > >> OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: >> > "mac" >> > > > >> >> > > > >> Any thoughts? >> > > > >> >> > > > >> As much of the build log from the console: >> > > > https://pastebin.com/xQsttBna >> > > > >> >> > > > >> Gary >> > > > >> >> > > > >> >> > > > >> On Fri, Nov 6, 2020 at 6:46 PM Ralph Goers < >> > > ralph.go...@dslextreme.com> >> > > > >> wrote: >> > > > >> >> > > > >>> This is a vote to release Log4j 2.14.0, the next version of the >> > > Log4j 2 >> > > > >>> project. >> > > > >>> >> > > > >>> Please download, test, and cast your votes on the log4j >> developers >> > > > list. >> > > > >>> [] +1, release the artifacts >> > > > >>> [] -1, don't release because... >> > > > >>> >> > > > >>> The vote will remain open for 72 hours (or more if required). >> All >> > > votes >> > > > >>> are welcome and we encourage everyone to test the release, but >> only >> > > > Logging >> > > > >>> PMC votes are “officially” counted. As always, at least 3 +1 >> votes >> > > and >> > > > more >> > > > >>> positive than negative votes are required. >> > > > >>> >> > > > >>> Changes in this release include: >> > > > >>> >> > > > >>> New Features >> > > > >>> >> > > > >>> • LOG4J2-2957: Add JsonTemplateLayout. >> > > > >>> • LOG4J2-2848: Create module log4j-mongodb4 to use new >> major >> > > > >>> version 4 MongoDB driver. >> > > > >>> • LOG4J2-2858: More flexible configuration of the >> Disruptor >> > > > >>> WaitStrategy. Thanks to Stepan Gorban. >> > > > >>> >> > > > >>> Fixed Bugs >> > > > >>> >> > > > >>> • LOG4J2-2925: Fix broken link in FAQ. >> > > > >>> • LOG4J2-2911: Log4j2EventListener in >> > > spring.cloud.config.client >> > > > >>> listens for wrong event. >> > > > >>> • LOG4J2-2919: Call ReliabilityStrategy's >> > > beforeStopAppenders() >> > > > >>> method before stopping AsyncAppender. Thanks to Geng Yuanzhe. >> > > > >>> • LOG4J2-2906: Fix UnsupportedOperationException when >> > > > >>> initializing the Log4j2CloudConfigLoggingSystem. Thanks to >> Stephen >> > > > Joyner. >> > > > >>> • LOG4J2-2908: Move Spring Lookup and Spring >> PropertySource >> > to >> > > > >>> its own module. >> > > > >>> • LOG4J2-2910: Log4j-web should now stores the servlet >> > context >> > > > as >> > > > >>> a map entry instead of in the single external context field. >> > > > >>> • LOG4J2-2822: Javadoc link in ThreadContext description >> was >> > > > >>> incorrect. >> > > > >>> • LOG4J2-2894: Fix spelling error in log message. >> > > > >>> • LOG4J2-2901: Missing configuration files should be >> ignored >> > > > when >> > > > >>> creating a composite configuration. >> > > > >>> • LOG4J2-2883: When using DirectFileRolloverStrategy the >> > file >> > > > >>> pattern was not being recalculated on size based rollover after >> a >> > > time >> > > > >>> based rollover had occurred. >> > > > >>> • LOG4J2-2875: Rollover was failing to create directories >> > when >> > > > >>> using a DirectFileeRolloverStrategy. >> > > > >>> • LOG4J2-2859: Fixed typos where mergeFactory should be >> > > > >>> mergeStrategy. Thanks to Yanming Zhou. >> > > > >>> • LOG4J2-2832: Correct class name printed in error >> message >> > in >> > > > >>> RollingFileAppender. Thanks to Benjamin Asbach. >> > > > >>> • LOG4J2-2882: Support java.util.logging filters when >> using >> > > that >> > > > >>> API. Thanks to Emmanuel Bourg. >> > > > >>> • LOG4J2-2880: Create StackWalker benchmark. Revert back >> to >> > > > >>> StackWalker.walk based on benchmark results. >> > > > >>> • LOG4J2-2867: Obtain ContextDataProviders >> asynchronously. >> > > > >>> • LOG4J2-2877: Determine the container id to obtain >> > container >> > > > and >> > > > >>> image information. >> > > > >>> • LOG4J2-2844: Null pointer exception when no network >> > > interfaces >> > > > >>> are available. >> > > > >>> • LOG4J2-2895: Fix potential deadlock in asynchronous >> > logging >> > > by >> > > > >>> avoiding blocking for queue space on Log4jThreads >> > > > >>> • LOG4J2-2837: Disruptor and JUL no longer recursively >> start >> > > the >> > > > >>> AsyncLoggerDisruptor resulting in an extra disruptor background >> > > thread >> > > > >>> constantly waiting. >> > > > >>> • LOG4J2-2867: RingBufferLogEventTranslator uses a static >> > > > >>> ContextDataInjector instead of initializing a new object on each >> > > > thread. >> > > > >>> • LOG4J2-2898: Avoid initializing volatile fields with >> > default >> > > > >>> values. Thanks to Turbanov Andrey. >> > > > >>> • LOG4J2-2899: Fix log4j-1.2-api LogEventWrapper threadId >> > and >> > > > >>> priority accessors when called multiple times. >> > > > >>> • LOG4J2-2939: Fix NPE in MDCContextMap on 'contains' and >> > > > >>> 'isEmpty' invocations. Thanks to Constantin Hirsch. >> > > > >>> • LOG4J2-2954: Prevent premature garbage collection of >> > > shutdown >> > > > >>> hooks in DefaultShutdownCallbackRegistry. Thanks to Henry Tung. >> > > > >>> >> > > > >>> Changes >> > > > >>> >> > > > >>> • LOG4J2-2889: Add date pattern support for HTML layout. >> > > Thanks >> > > > >>> to Geng Yuanzhe. >> > > > >>> • LOG4J2-2892: Allow GelfLayout to produce newline >> delimited >> > > > >>> events. Thanks to Jakub Lukes. >> > > > >>> • : Update MongoDB tests to require Java 8 >> unconditionally >> > now >> > > > >>> that Log4j requires Java 8. >> > > > >>> • : Update mongodb3.version from 3.12.1 to 3.12.6. >> > > > >>> • : Update com.fasterxml.jackson.* 2.10.2 -> 2.11.0. >> > > > >>> • : Update org.apache.activemq:activemq-broker 5.15.11 -> >> > > > 5.16.0. >> > > > >>> • : Update org.apache.commons:commons-compress 1.19 -> >> 1.20. >> > > > >>> • : Update org.apache.commons:commons-csv 1.7 -> 1.8. >> > > > >>> • : Update org.apache.commons:commons-lang3 3.9 -> 3.10. >> > > > >>> • : Update org.codehaus.groovy:* 2.5.6 -> 3.0.5. >> > > > >>> • : Update tests junit:junit 4.12 -> 4.13. >> > > > >>> • : Update tests commons-io:commons-io 2.6 -> 2.7. >> > > > >>> • : Update jackson 2.11.0 -> 2.11.2. >> > > > >>> • : Update tests hsqldb 2.5.0 -> 2.5.1. >> > > > >>> >> > > > >>> Removed >> > > > >>> >> > > > >>> • LOG4J2-2851: Drop log4j-mongodb2 module. >> > > > >>> >> > > > >>> >> > > > >>> Tag: >> > > > >>> a) for a new copy do "git clone >> > > > >>> https://github.com/apache/logging-log4j2.git" and then "git >> > checkout >> > > > >>> tags/log4j-2.14.0-rc1” or just "git clone -b log4j-2.14.0-rc1 >> > > > >>> https://github.com/apache/logging-log4j2.git" >> > > > >>> b) for an existing working copy to “git pull” and then “git >> > checkout >> > > > >>> tags/log4j-2.14.0-rc1” >> > > > >>> >> > > > >>> Web Site: >> https://logging.staged.apache.org/log4j/2.x/index.html. >> > > > >>> >> > > > >>> Maven Artifacts: >> > > > >>> >> > > > >> > >> https://repository.apache.org/content/repositories/orgapachelogging-1061 >> > > > >>> >> > > > >>> Distribution archives: >> > > > >>> https://dist.apache.org/repos/dist/dev/logging/log4j/ >> > > > >>> >> > > > >>> You may download all the Maven artifacts by executing: >> > > > >>> wget -e robots=off --cut-dirs=7 -nH -r -p -np >> > --no-check-certificate >> > > > >>> >> > > > >> > > >> > >> > >> https://repository.apache.org/content/repositories/orgapachelogging-1061/org/apache/logging/log4j/ >> > > > >>> >> > > > >>> Ralph >> > > > >>> >> > > > >> >> > > > >> > > > >> > > > >> > > >> > >> >