Re: Can't build log4j main branch
On 2024/09/12 06:51:22 "Piotr P. Karwasz" wrote: > Hi Gary, > > On Wed, 11 Sept 2024 at 22:13, Gary D. Gregory wrote: > > Running 'mvn clean install' on git main [1] gives me: > > > > [ERROR] Failures: > > [ERROR] AsyncLoggerConfigTest.testSingleFilterInvocation:114 > > Wanted but not invoked: > > appender.append(); > > -> at > > org.apache.logging.log4j.async.logger.AsyncLoggerConfigTest.testSingleFilterInvocation(AsyncLoggerConfigTest.java:114) > > > > However, there was exactly 1 interaction with this mock: > > appender.getName(); > > -> at > > org.apache.logging.log4j.core.config.AppenderControl.(AppenderControl.java:50) > > In this test a message is sent through `AsyncLoggerConfig` and we wait > up to 100 ms until `Appender.append()` is called on the asynchronous > thread. > I guess this _might_ fail on an extremely busy host. If your host was > not so busy, we might have a performance problem with LMAX Disruptor. > > I bumped the maximum delay to up to 1 s, hope it helps. Thank you Piotr. When I run a build, I run it and then do other work on my PC, so I expect the CPU usage to go and down a lot. It would be nice if we could find a way to use structures like count down latches to sync up some tests. The build is running now... ;-) Gary > > Piotr > > PS: On a side note: `log4j-mongodb` might fail on some hosts (e.g. my > Debian 12), since it requires some specific versions of OpenSSL and > other libraries. > That is why I proposed to start the Mongo server from Docker in [1]. > > [1] https://github.com/apache/logging-log4j2/pull/2922 >
Re: Can't build log4j main branch
Any thoughts on these: [INFO] Results: [INFO] [ERROR] Failures: [ERROR] RollingAppenderDeleteAccumulatedSizeTest.testAppender:68 [target\rolling-with-delete-accum-size\test\test-5.log, target\rolling-with-delete-accum-size\test\test-6.log, target\rolling-with-delete-accum-size\test\test-7.log, target\rolling-with-delete-accum-size\test\test-8.log, target\rolling-with-delete-accum-size\test\test-9.log] ==> expected: <4> but was: <5> [ERROR] RollingAppenderDeleteNestedTest.testAppender:85 [target\rolling-with-delete-nested\test\my-1.log, target\rolling-with-delete-nested\test\my-2.log, target\rolling-with-delete-nested\test\my-3.log, target\rolling-with-delete-nested\test\my-4.log, target\rolling-with-delete-nested\test\my-5.log, target\rolling-with-delete-nested\test\test-6.log, target\rolling-with-delete-nested\test\test-7.log, target\rolling-with-delete-nested\test\test-8.log, target\rolling-with-delete-nested\test\test-9.log] ==> expected: <8> but was: <9> [INFO] [ERROR] Tests run: 1555, Failures: 2, Errors: 0, Skipped: 7 [INFO] Gary PS: git main at git log -1 commit fda45ecf6858734136ff584544b76d558843a3a4 (HEAD -> main, origin/main) Author: Piotr P. Karwasz Date: Thu Sep 12 08:43:45 2024 +0200 Increase timeout in `AsyncLoggerConfigTest` G On 2024/09/12 12:08:07 "Gary D. Gregory" wrote: > On 2024/09/12 06:51:22 "Piotr P. Karwasz" wrote: > > Hi Gary, > > > > On Wed, 11 Sept 2024 at 22:13, Gary D. Gregory wrote: > > > Running 'mvn clean install' on git main [1] gives me: > > > > > > [ERROR] Failures: > > > [ERROR] AsyncLoggerConfigTest.testSingleFilterInvocation:114 > > > Wanted but not invoked: > > > appender.append(); > > > -> at > > > org.apache.logging.log4j.async.logger.AsyncLoggerConfigTest.testSingleFilterInvocation(AsyncLoggerConfigTest.java:114) > > > > > > However, there was exactly 1 interaction with this mock: > > > appender.getName(); > > > -> at > > > org.apache.logging.log4j.core.config.AppenderControl.(AppenderControl.java:50) > > > > In this test a message is sent through `AsyncLoggerConfig` and we wait > > up to 100 ms until `Appender.append()` is called on the asynchronous > > thread. > > I guess this _might_ fail on an extremely busy host. If your host was > > not so busy, we might have a performance problem with LMAX Disruptor. > > > > I bumped the maximum delay to up to 1 s, hope it helps. > > Thank you Piotr. > > When I run a build, I run it and then do other work on my PC, so I expect the > CPU usage to go and down a lot. It would be nice if we could find a way to > use structures like count down latches to sync up some tests. The build is > running now... ;-) > > Gary > > > > > Piotr > > > > PS: On a side note: `log4j-mongodb` might fail on some hosts (e.g. my > > Debian 12), since it requires some specific versions of OpenSSL and > > other libraries. > > That is why I proposed to start the Mongo server from Docker in [1]. > > > > [1] https://github.com/apache/logging-log4j2/pull/2922 > > >
Re: Can't build log4j main branch
I’ve seen errors like that before. I’ve also tried figuring out how to make these tests more robust, but they require overhauling the rolling appender code for testability and such, something that makes more sense as a larger effort to overhaul rolling appenders. > On Sep 12, 2024, at 07:17, Gary D. Gregory wrote: > > Any thoughts on these: > > [INFO] Results: > [INFO] > [ERROR] Failures: > [ERROR] RollingAppenderDeleteAccumulatedSizeTest.testAppender:68 > [target\rolling-with-delete-accum-size\test\test-5.log, > target\rolling-with-delete-accum-size\test\test-6.log, > target\rolling-with-delete-accum-size\test\test-7.log, > target\rolling-with-delete-accum-size\test\test-8.log, > target\rolling-with-delete-accum-size\test\test-9.log] ==> expected: <4> but > was: <5> > [ERROR] RollingAppenderDeleteNestedTest.testAppender:85 > [target\rolling-with-delete-nested\test\my-1.log, > target\rolling-with-delete-nested\test\my-2.log, > target\rolling-with-delete-nested\test\my-3.log, > target\rolling-with-delete-nested\test\my-4.log, > target\rolling-with-delete-nested\test\my-5.log, > target\rolling-with-delete-nested\test\test-6.log, > target\rolling-with-delete-nested\test\test-7.log, > target\rolling-with-delete-nested\test\test-8.log, > target\rolling-with-delete-nested\test\test-9.log] ==> expected: <8> but was: > <9> > [INFO] > [ERROR] Tests run: 1555, Failures: 2, Errors: 0, Skipped: 7 > [INFO] > > Gary > > PS: git main at git log -1 > commit fda45ecf6858734136ff584544b76d558843a3a4 (HEAD -> main, origin/main) > Author: Piotr P. Karwasz > Date: Thu Sep 12 08:43:45 2024 +0200 > >Increase timeout in `AsyncLoggerConfigTest` > > G > > On 2024/09/12 12:08:07 "Gary D. Gregory" wrote: >> On 2024/09/12 06:51:22 "Piotr P. Karwasz" wrote: >>> Hi Gary, >>> >>> On Wed, 11 Sept 2024 at 22:13, Gary D. Gregory wrote: Running 'mvn clean install' on git main [1] gives me: [ERROR] Failures: [ERROR] AsyncLoggerConfigTest.testSingleFilterInvocation:114 Wanted but not invoked: appender.append(); -> at org.apache.logging.log4j.async.logger.AsyncLoggerConfigTest.testSingleFilterInvocation(AsyncLoggerConfigTest.java:114) However, there was exactly 1 interaction with this mock: appender.getName(); -> at org.apache.logging.log4j.core.config.AppenderControl.(AppenderControl.java:50) >>> >>> In this test a message is sent through `AsyncLoggerConfig` and we wait >>> up to 100 ms until `Appender.append()` is called on the asynchronous >>> thread. >>> I guess this _might_ fail on an extremely busy host. If your host was >>> not so busy, we might have a performance problem with LMAX Disruptor. >>> >>> I bumped the maximum delay to up to 1 s, hope it helps. >> >> Thank you Piotr. >> >> When I run a build, I run it and then do other work on my PC, so I expect >> the CPU usage to go and down a lot. It would be nice if we could find a way >> to use structures like count down latches to sync up some tests. The build >> is running now... ;-) >> >> Gary >> >>> >>> Piotr >>> >>> PS: On a side note: `log4j-mongodb` might fail on some hosts (e.g. my >>> Debian 12), since it requires some specific versions of OpenSSL and >>> other libraries. >>> That is why I proposed to start the Mongo server from Docker in [1]. >>> >>> [1] https://github.com/apache/logging-log4j2/pull/2922 >>> >>
[VOTE] Release Apache Log4net 3.0.0
This is a vote to release the Apache Log4net 3.0.0. Website: https://logging.staged.apache.org/log4net/release/release-notes.html GitHub: https://github.com/apache/logging-log4net GitHub release (pre-release): https://github.com/apache/logging-log4net/releases/tag/rc/3.0.0-rc1 Commit: 42ba791745ceb7ff922d828c6c5572ed918df84b Distribution: https://dist.apache.org/repos/dist/dev/logging/log4net Signing key: 0x7D24496A230E29D6349A99EF583E491578F02D5D Please download, test, and cast your votes on this mailing list. How to run the unit tests? - install docker (if you haven't already) - https://docs.docker.com/engine/install/ - in logging/log4net run - `docker build -t log4net-builder .` - `docker run -it log4net-builder` - this will - install all dependencies in the container - build src/log4net.sln - inside the container run - `dotnet test /logging-log4net/src/log4net.sln` [ ] +1, release the artifacts [ ] -1, don't release, because ... This vote is open for 72 hours and will pass unless getting a net negative vote count. All votes are welcome and we encourage everyone to test the release, but only the Logging Services PMC votes are officially counted.
[DISCUSS] [VOTE] Release Apache Log4net 3.0.0
Hi Jan, On Thu, 12 Sept 2024 at 20:54, Jan Friedrich wrote: > > This is a vote to release the Apache Log4net 3.0.0. > > Website: https://logging.staged.apache.org/log4net/release/release-notes.html > GitHub: https://github.com/apache/logging-log4net > GitHub release (pre-release): > https://github.com/apache/logging-log4net/releases/tag/rc/3.0.0-rc1 > Commit: 42ba791745ceb7ff922d828c6c5572ed918df84b > Distribution: https://dist.apache.org/repos/dist/dev/logging/log4net > Signing key: 0x7D24496A230E29D6349A99EF583E491578F02D5D While the site is not part of the release vote, is there a staged site that comes with this release? Piotr
Re: [DISCUSS] [VOTE] Release Apache Log4net 3.0.0
Hello Piotr, do you mean https://logging.staged.apache.org/log4net/ ? Regards. Jan Thursday, September 12, 2024, 9:58:07 PM, you wrote: > Hi Jan, > On Thu, 12 Sept 2024 at 20:54, Jan Friedrich wrote: >> >> This is a vote to release the Apache Log4net 3.0.0. >> >> Website: https://logging.staged.apache.org/log4net/release/release-notes.html >> GitHub: https://github.com/apache/logging-log4net >> GitHub release (pre-release): >> https://github.com/apache/logging-log4net/releases/tag/rc/3.0.0-rc1 >> Commit: 42ba791745ceb7ff922d828c6c5572ed918df84b >> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4net >> Signing key: 0x7D24496A230E29D6349A99EF583E491578F02D5D > While the site is not part of the release vote, is there a staged site > that comes with this release? > Piotr
Re: [VOTE] Release Apache Log4net 3.0.0
Hi Jan, On Thu, 12 Sept 2024 at 20:54, Jan Friedrich wrote: > How to run the unit tests? > - install docker (if you haven't already) > - https://docs.docker.com/engine/install/ > - in logging/log4net run > - `docker build -t log4net-builder .` > - `docker run -it log4net-builder` > - this will > - install all dependencies in the container > - build src/log4net.sln > - inside the container run > - `dotnet test /logging-log4net/src/log4net.sln` > > [ ] +1, release the artifacts > [ ] -1, don't release, because ... I verified: * the hashes of the distribution archives, * the signatures on the distribution archives, * I built Log4Net using the Docker script, * I ran the unit tests successfully. +1, release the artifacts Note regarding reproducibility: I rebuilt the Docker image twice, by taking care to purge the caches after each time (docker builder purge). The images were obviously different, but the generated binary files were identical. Comparing the local binaries with those in the binary distribution I have the Diffoscope output below. I am wondering why the image built on Linux and the image built on Windows do have a different time stamp in the header. The timestamp on Linux is reproducible between builds. --- apache-log4net-binaries-3.0.0/netstandard2.0/log4net.dll +++ Release/netstandard2.0/log4net.dll ├── pedump {} │ @@ -1,25 +1,25 @@ │ │ COFF Header: │ Machine: 0x014c │ Sections: 0x0003 │ - Time stamp: 0xfcdb425c │ + Time stamp: 0xb4cea035 │ Pointer to Symbol Table: 0x │Symbol Count: 0x │ Optional Header Size: 0x00e0 │ Characteristics: 0x2022 │ │ PE Header: │ Magic (0x010b): 0x010b │ LMajor (6): 0x30 │ LMinor (0): 0x00 │Code Size: 0x00043000 │Initialized Data Size: 0x2000 │ Uninitialized Data Size: 0x │ -Entry Point RVA: 0x00044842 │ +Entry Point RVA: 0x00044836 │ Code Base RVA: 0x2000 │Data Base RVA: 0x00046000 │ │ │ NT Header: │ Image Base (0x40): 0x1100 │ Section Alignment (8192): 0x2000 │ @@ -29,27 +29,27 @@ │ User Major (0): 0x │ User Minor (0): 0x │Subsys major (4): 0x0004 │Subsys minor (0): 0x │ Reserverd: 0x │ Image Size: 0x0004a000 │Header Size: 0x1000 │ -Checksum (0): 0x0004ec1d │ +Checksum (0): 0x0004833b │ Subsystem: 0x0003 │ DLL Flags (0): 0x8560 │ Stack Reserve Size (1M): 0x0010 │ Stack commit Size (4096): 0x1000 │Heap Reserve Size (1M): 0x0010 │ Heap Commit Size (4096): 0x1000 │Loader flags (0x1): 0x │ Data Directories (16): 0x0010 │ │ Data directories: │ Export Table: 0x [0x] │ - Import Table: 0x000447f0 [0x004f] │ + Import Table: 0x000447e3 [0x004f] │ Resource Table: 0x00046000 [0x04c0] │Exception Table: 0x [0x] │ Certificate Table: 0x [0x] │Reloc Table: 0x00048000 [0x000c] │ Debug: 0x0004470c [0x0054] │ Copyright: 0x [0x] │ Global Ptr: 0x [0x] │ @@ -57,15 +57,15 @@ │ Load Config Table: 0x [0x] │ Bound Import: 0x [0x] │IAT: 0x2000 [0x0008] │ Delay Import Desc: 0x [0x] │ CLI Header: 0x2008 [0x0048] │ │ Name: .text │ - Virtual Size: 0x00042848 │ + Virtual Size: 0x0004283c │ Virtual Address: 0x2000 │Raw Data Size: 0x00043000 │ Raw Data Ptr: 0x1000 │Reloc Ptr: 0x │ LineNo Ptr: 0x │ Reloc Count: 0x │ Line Count: 0x │ @@ -101,22 +101,22 @@ │ Resources at: 0x [0x] │ Strong Name at: 0x0004468c [0x0080] │Code Manager at: 0x [0x] │VTableFixups at: 0x [0x] │ EAT jumps at: 0x [0x] │ │ Strong name: │ - A0 3E 62 DE 46 49 E0 6D 82 34 82 29 12 86 FA 07 │ - 80 48 B8 39 3A E1 D7 8D CB 46 D8 57 66 9F 72 50 │ - 2B 5C 19 73 DA 90 76 0F 57 C1 D0 EA E6 A9 D9 E4 │ - 12 7E 78 4C F0 93 83 F1 0E 21 1F 17 C1 B9 56 B2 │ - B5 64 C0 AA 50 3F 6E 62 03 07 0D D2 89 FE D4 44 │ - 25 AB A6 B3 7D C2 AE 0F 6B E5 E0 4A 28 62 C8 CD │ - 78 BC 42 7C 6B 71 4A 8A E9 57 B4 96 41 50 46 2B │ - 2E 94 95 FF 92 17 E2 92 65 92 64 C8 3A E9 9B 32 │ + C4 F4 DE 7B DE D3 7D 37 80 17 ED 01 5B 3D A5 3A │ + F8 B3 6B 87 09 64 6E EE D4 E1 ED 31 6F 9C 80 C8 │ + AA BC C1 37 92
Re: [DISCUSS] [VOTE] Release Apache Log4net 3.0.0
Hi Piotr, I can't find any official documentation from Microsoft, whether they support .net reproducibility between different platforms. We just set true and specify a PathMap in our project file. This is (on modern SDKs) all you have to do and all you can do ;-) Regards. Jan Thursday, September 12, 2024, 10:31:48 PM, you wrote: > Hi Jan, > On Thu, 12 Sept 2024 at 20:54, Jan Friedrich wrote: > I verified: > * the hashes of the distribution archives, > * the signatures on the distribution archives, > * I built Log4Net using the Docker script, > * I ran the unit tests successfully. > +1, release the artifacts > Note regarding reproducibility: I rebuilt the Docker image twice, by > taking care to purge the caches after each time (docker builder > purge). > The images were obviously different, but the generated binary files > were identical. > Comparing the local binaries with those in the binary distribution I > have the Diffoscope output below. > I am wondering why the image built on Linux and the image built on > Windows do have a different time stamp in the header. > The timestamp on Linux is reproducible between builds. > --- apache-log4net-binaries-3.0.0/netstandard2.0/log4net.dll > +++ Release/netstandard2.0/log4net.dll > ├── pedump {} > │ @@ -1,25 +1,25 @@ > │ > │ COFF Header: > │ Machine: 0x014c > │ Sections: 0x0003 > │ - Time stamp: 0xfcdb425c > │ + Time stamp: 0xb4cea035 > │ Pointer to Symbol Table: 0x > │Symbol Count: 0x > │ Optional Header Size: 0x00e0 > │ Characteristics: 0x2022 > │ > │ PE Header: > │ Magic (0x010b): 0x010b > │ LMajor (6): 0x30 > │ LMinor (0): 0x00 > │Code Size: 0x00043000 > │Initialized Data Size: 0x2000 > │ Uninitialized Data Size: 0x > │ -Entry Point RVA: 0x00044842 > │ +Entry Point RVA: 0x00044836 > │ Code Base RVA: 0x2000 > │Data Base RVA: 0x00046000 > │ > │ > │ NT Header: > │ Image Base (0x40): 0x1100 > │ Section Alignment (8192): 0x2000 > │ @@ -29,27 +29,27 @@ > │ User Major (0): 0x > │ User Minor (0): 0x > │Subsys major (4): 0x0004 > │Subsys minor (0): 0x > │ Reserverd: 0x > │ Image Size: 0x0004a000 > │Header Size: 0x1000 > │ -Checksum (0): 0x0004ec1d > │ +Checksum (0): 0x0004833b > │ Subsystem: 0x0003 > │ DLL Flags (0): 0x8560 > │ Stack Reserve Size (1M): 0x0010 > │ Stack commit Size (4096): 0x1000 > │Heap Reserve Size (1M): 0x0010 > │ Heap Commit Size (4096): 0x1000 > │Loader flags (0x1): 0x > │ Data Directories (16): 0x0010 > │ > │ Data directories: > │ Export Table: 0x [0x] > │ - Import Table: 0x000447f0 [0x004f] > │ + Import Table: 0x000447e3 [0x004f] > │ Resource Table: 0x00046000 [0x04c0] > │Exception Table: 0x [0x] > │ Certificate Table: 0x [0x] > │Reloc Table: 0x00048000 [0x000c] > │ Debug: 0x0004470c [0x0054] > │ Copyright: 0x [0x] > │ Global Ptr: 0x [0x] > │ @@ -57,15 +57,15 @@ > │ Load Config Table: 0x [0x] > │ Bound Import: 0x [0x] > │IAT: 0x2000 [0x0008] > │ Delay Import Desc: 0x [0x] > │ CLI Header: 0x2008 [0x0048] > │ > │ Name: .text > │ - Virtual Size: 0x00042848 > │ + Virtual Size: 0x0004283c > │ Virtual Address: 0x2000 > │Raw Data Size: 0x00043000 > │ Raw Data Ptr: 0x1000 > │Reloc Ptr: 0x > │ LineNo Ptr: 0x > │ Reloc Count: 0x > │ Line Count: 0x > │ @@ -101,22 +101,22 @@ > │ Resources at: 0x [0x] > │ Strong Name at: 0x0004468c [0x0080] > │Code Manager at: 0x [0x] > │VTableFixups at: 0x [0x] > │ EAT jumps at: 0x [0x] > │ > │ Strong name: > │ - A0 3E 62 DE 46 49 E0 6D 82 34 82 29 12 86 FA 07 > │ - 80 48 B8 39 3A E1 D7 8D CB 46 D8 57 66 9F 72 50 > │ - 2B 5C 19 73 DA 90 76 0F 57 C1 D0 EA E6 A9 D9 E4 > │ - 12 7E 78 4C F0 93 83 F1 0E 21 1F 17 C1 B9 56 B2 > │ - B5 64 C0 AA 50 3F 6E 62 03 07 0D D2 89 FE D4 44 > │ - 25 AB A6 B3 7D C2 AE 0F 6B E5 E0 4A 28 62 C8 CD > │ - 78 BC 42 7C 6B 71 4A 8A E9 57 B4 96 41 50 46 2B > │ - 2E 94 95 FF 92 17 E2 92 65 92 64 C8 3A E9 9B 32 > │ + C4 F4 DE 7B DE D3 7D 37 80 17 ED 01 5B 3D A5 3A