[ 
https://issues.apache.org/jira/browse/FLINK-17822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17112350#comment-17112350
 ] 

Andrey Zagrebin commented on FLINK-17822:
-----------------------------------------

FLINK-15758 did not export jdk.internal.misc package used by reflection for GC 
cleaners of managed memory. Our PR CI does not run Java 11 tests atm.
The package has to be exported by a JVM runtime arg: --add-opens 
java.base/jdk.internal.misc=ALL-UNNAMED;
If this arg is set for Java 8, it fails the JVM process.
Therefore, the fix is complicated as we have to do it also for e.g. Yarn CLI 
where client and cluster may run different Java versions.

An alternative quicker fix is to call directly the private method (has to be 
made accessible via reflection):
- java.lang.ref.Reference.tryHandlePending(false) // for Java 8
- java.lang.ref.Reference.waitForReferenceProcessing() // for Java 11

This though leads to an annoying warning for Java 11:

{code:java}
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by 
org.apache.flink.util.JavaGcCleanerWrapper$PendingCleanersRunnerProvider 
(file:/Users/azagrebin/projects/flink/flink-core/target/classes/) to method 
java.lang.ref.Reference.waitForReferenceProcessing()
WARNING: Please consider reporting this to the maintainers of 
org.apache.flink.util.JavaGcCleanerWrapper$PendingCleanersRunnerProvider
WARNING: Use --illegal-access=warn to enable warnings of further illegal 
reflective access operations
WARNING: All illegal access operations will be denied in a future release
{code}

We can do the quick fix and think how to fix the warning in a follow-up.


> Nightly Flink CLI end-to-end test failed with 
> "JavaGcCleanerWrapper$PendingCleanersRunner cannot access class 
> jdk.internal.misc.SharedSecrets" in Java 11 
> ----------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-17822
>                 URL: https://issues.apache.org/jira/browse/FLINK-17822
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Task, Tests
>    Affects Versions: 1.11.0
>            Reporter: Dian Fu
>            Assignee: Andrey Zagrebin
>            Priority: Blocker
>              Labels: test-stability
>             Fix For: 1.11.0
>
>
> Instance: 
> https://dev.azure.com/apache-flink/98463496-1af2-4620-8eab-a2ecc1a2e6fe/_apis/build/builds/1887/logs/600
> {code}
> 2020-05-19T21:59:39.8829043Z 2020-05-19 21:59:25,193 ERROR 
> org.apache.flink.util.JavaGcCleanerWrapper                   [] - FATAL 
> UNEXPECTED - Failed to invoke waitForReferenceProcessing
> 2020-05-19T21:59:39.8829849Z java.lang.IllegalAccessException: class 
> org.apache.flink.util.JavaGcCleanerWrapper$PendingCleanersRunner cannot 
> access class jdk.internal.misc.SharedSecrets (in module java.base) because 
> module java.base does not export jdk.internal.misc to unnamed module @54e3658c
> 2020-05-19T21:59:39.8830707Z  at 
> jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
>  ~[?:?]
> 2020-05-19T21:59:39.8831166Z  at 
> java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591) 
> ~[?:?]
> 2020-05-19T21:59:39.8831744Z  at 
> java.lang.reflect.Method.invoke(Method.java:558) ~[?:?]
> 2020-05-19T21:59:39.8832596Z  at 
> org.apache.flink.util.JavaGcCleanerWrapper$PendingCleanersRunner.getJavaLangRefAccess(JavaGcCleanerWrapper.java:362)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8833667Z  at 
> org.apache.flink.util.JavaGcCleanerWrapper$PendingCleanersRunner.tryRunPendingCleaners(JavaGcCleanerWrapper.java:351)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8834712Z  at 
> org.apache.flink.util.JavaGcCleanerWrapper$CleanerManager.tryRunPendingCleaners(JavaGcCleanerWrapper.java:207)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8835686Z  at 
> org.apache.flink.util.JavaGcCleanerWrapper.tryRunPendingCleaners(JavaGcCleanerWrapper.java:158)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8836652Z  at 
> org.apache.flink.runtime.memory.UnsafeMemoryBudget.reserveMemory(UnsafeMemoryBudget.java:94)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8838033Z  at 
> org.apache.flink.runtime.memory.UnsafeMemoryBudget.verifyEmpty(UnsafeMemoryBudget.java:64)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8839259Z  at 
> org.apache.flink.runtime.memory.MemoryManager.verifyEmpty(MemoryManager.java:172)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8840148Z  at 
> org.apache.flink.runtime.taskexecutor.slot.TaskSlot.verifyMemoryFreed(TaskSlot.java:311)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8841035Z  at 
> org.apache.flink.runtime.taskexecutor.slot.TaskSlot.lambda$closeAsync$1(TaskSlot.java:301)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8841603Z  at 
> java.util.concurrent.CompletableFuture.uniRunNow(CompletableFuture.java:815) 
> ~[?:?]
> 2020-05-19T21:59:39.8842069Z  at 
> java.util.concurrent.CompletableFuture.uniRunStage(CompletableFuture.java:799)
>  ~[?:?]
> 2020-05-19T21:59:39.8842844Z  at 
> java.util.concurrent.CompletableFuture.thenRun(CompletableFuture.java:2121) 
> ~[?:?]
> 2020-05-19T21:59:39.8843828Z  at 
> org.apache.flink.runtime.taskexecutor.slot.TaskSlot.closeAsync(TaskSlot.java:300)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8844790Z  at 
> org.apache.flink.runtime.taskexecutor.slot.TaskSlotTableImpl.freeSlotInternal(TaskSlotTableImpl.java:404)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8845754Z  at 
> org.apache.flink.runtime.taskexecutor.slot.TaskSlotTableImpl.freeSlot(TaskSlotTableImpl.java:365)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8846842Z  at 
> org.apache.flink.runtime.taskexecutor.TaskExecutor.freeSlotInternal(TaskExecutor.java:1589)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8847711Z  at 
> org.apache.flink.runtime.taskexecutor.TaskExecutor.freeSlot(TaskExecutor.java:967)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8848295Z  at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
> 2020-05-19T21:59:39.8848732Z  at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  ~[?:?]
> 2020-05-19T21:59:39.8849228Z  at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:?]
> 2020-05-19T21:59:39.8849669Z  at 
> java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
> 2020-05-19T21:59:39.8850656Z  at 
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcInvocation(AkkaRpcActor.java:284)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8851589Z  at 
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:199)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8852497Z  at 
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleMessage(AkkaRpcActor.java:152)
>  ~[flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8853486Z  at 
> akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:26) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8854447Z  at 
> akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:21) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8855190Z  at 
> scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8855958Z  at 
> akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:21) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8856723Z  at 
> scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8857663Z  at 
> scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8858452Z  at 
> scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8859214Z  at 
> akka.actor.Actor$class.aroundReceive(Actor.scala:517) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8860030Z  at 
> akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:225) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8860825Z  at 
> akka.actor.ActorCell.receiveMessage(ActorCell.scala:592) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8861706Z  at 
> akka.actor.ActorCell.invoke(ActorCell.scala:561) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8862652Z  at 
> akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8863414Z  at akka.dispatch.Mailbox.run(Mailbox.scala:225) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8864132Z  at 
> akka.dispatch.Mailbox.exec(Mailbox.scala:235) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8864940Z  at 
> akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8865931Z  at 
> akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8866947Z  at 
> akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
> [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8867921Z  at 
> akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
>  [flink-dist_2.11-1.12-SNAPSHOT.jar:1.12-SNAPSHOT]
> 2020-05-19T21:59:39.8868777Z 2020-05-19 21:59:25,242 INFO  
> org.apache.flink.runtime.taskexecutor.DefaultJobLeaderService [] - Remove job 
> c968ba482982e36e3e30f058c488ac3f from job leader monitoring.
> 2020-05-19T21:59:39.8869653Z 2020-05-19 21:59:25,257 INFO  
> org.apache.flink.runtime.taskexecutor.TaskExecutor           [] - Close 
> JobManager connection for job c968ba482982e36e3e30f058c488ac3f.
> 2020-05-19T21:59:39.8870178Z WARNING: An illegal reflective access operation 
> has occurred
> 2020-05-19T21:59:39.8871620Z WARNING: Illegal reflective access by 
> org.apache.flink.shaded.akka.org.jboss.netty.util.internal.ByteBufferUtil 
> (file:/home/vsts/work/1/s/flink-dist/target/flink-1.12-SNAPSHOT-bin/flink-1.12-SNAPSHOT/lib/flink-dist_2.11-1.12-SNAPSHOT.jar)
>  to method java.nio.DirectByteBuffer.cleaner()
> 2020-05-19T21:59:39.8872448Z WARNING: Please consider reporting this to the 
> maintainers of 
> org.apache.flink.shaded.akka.org.jboss.netty.util.internal.ByteBufferUtil
> 2020-05-19T21:59:39.8873159Z WARNING: Use --illegal-access=warn to enable 
> warnings of further illegal reflective access operations
> 2020-05-19T21:59:39.8873558Z WARNING: All illegal access operations will be 
> denied in a future release
> 2020-05-19T21:59:39.8874019Z Checking for non-empty .out files...
> 2020-05-19T21:59:39.8874367Z No non-empty .out files.
> 2020-05-19T21:59:39.8874528Z 
> 2020-05-19T21:59:39.8875304Z [FAIL] 'Flink CLI end-to-end test' failed after 
> 0 minutes and 39 seconds! Test exited with exit code 0 but the logs contained 
> errors, exceptions or non-empty .out files
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to