lucene: `TestStressLockFactories` fails on Windows in a freshly cloned repository
Description
NOTE: test params are: codec=Asserting(Lucene99): {}, docValues:{}, maxPointsInLeafNode=189, maxMBSortInHeap=5.965018891538125, sim=Asserting(RandomSimilarity(queryNorm=true): {}), locale=sg, timezone=Australia/Lindeman NOTE: Windows 10 10.0 amd64/Amazon.com Inc. 17.0.9 (64-bit)/cpus=1,threads=1,free=205992248,total=324009984
testNativeFSLockFactory
1> Listening on /127.0.0.1:20018...
> java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:20021" "accept,resolve")
> at __randomizedtesting.SeedInfo.seed([2D42F3FDF1FAF153:31931CEF68004D20]:0)
> at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:485)
> at java.base/java.security.AccessController.checkPermission(AccessController.java:1068)
> at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:416)
> at java.base/java.lang.SecurityManager.checkAccept(SecurityManager.java:1035)
> at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:682)
> at java.base/java.net.ServerSocket.platformImplAccept(ServerSocket.java:641)
> at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:617)
> at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:574)
> at java.base/java.net.ServerSocket.accept(ServerSocket.java:532)
> at org.apache.lucene.store.LockVerifyServer.run(LockVerifyServer.java:62)
> at org.apache.lucene.store.TestStressLockFactories.runImpl(TestStressLockFactories.java:53)
> at org.apache.lucene.store.TestStressLockFactories.testNativeFSLockFactory(TestStressLockFactories.java:100)
testSimpleFSLockFactory
1> Listening on /127.0.0.1:20022...
> java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:20024" "accept,resolve")
> at __randomizedtesting.SeedInfo.seed([2D42F3FDF1FAF153:3FCA00FD49472207]:0)
> at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:485)
> at java.base/java.security.AccessController.checkPermission(AccessController.java:1068)
> at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:416)
> at java.base/java.lang.SecurityManager.checkAccept(SecurityManager.java:1035)
> at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:682)
> at java.base/java.net.ServerSocket.platformImplAccept(ServerSocket.java:641)
> at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:617)
> at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:574)
> at java.base/java.net.ServerSocket.accept(ServerSocket.java:532)
> at org.apache.lucene.store.LockVerifyServer.run(LockVerifyServer.java:62)
> at org.apache.lucene.store.TestStressLockFactories.runImpl(TestStressLockFactories.java:53)
> at org.apache.lucene.store.TestStressLockFactories.testSimpleFSLockFactory(TestStressLockFactories.java:104)
Gradle command to reproduce
gradlew test --tests TestStressLockFactories.testNativeFSLockFactory -Dtests.seed=2D42F3FDF1FAF153 -Dtests.locale=sg -Dtests.timezone=Australia/Lindeman -Dtests.asserts=true -Dtests.file.encoding=UTF-8
gradlew test --tests TestStressLockFactories.testSimpleFSLockFactory -Dtests.seed=2D42F3FDF1FAF153 -Dtests.locale=sg -Dtests.timezone=Australia/Lindeman -Dtests.asserts=true -Dtests.file.encoding=UTF-8
About this issue
- Original URL
- State: closed
- Created 6 months ago
- Comments: 29 (29 by maintainers)
sorry, i’m late to the party. yes, the entire purpose of this is to ensure tests only use ephemeral ports when binding. otherwise there will be port conflicts. so we should not be lenient about it.
seems like any issue here is in the JDK not respecting the operating system’s configuration: not in lucene.
Then changing
gradle\testing\randomization\policies\tests.policyfromto
wouldn’t have helped, I suppose. But it did.
What do you think of catching this
AccessControlExceptionand wrapping it with AssumptionViolatedException ?