es4x: org.graalvm.polyglot.PolyglotException: java.lang.NullPointerException
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.isValid(ObjectLiteralNode.java:214)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode.filterValid(ObjectLiteralNode.java:243)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode.insertIntoCache(ObjectLiteralNode.java:235)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.rewrite(ObjectLiteralNode.java:332)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.execute(ObjectLiteralNode.java:299)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.executeVoid(ObjectLiteralNode.java:275)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode.executeWithObject(ObjectLiteralNode.java:732)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode.execute(ObjectLiteralNode.java:725)
es4x: at com.oracle.truffle.js.nodes.access.ObjectLiteralNode.execute(ObjectLiteralNode.java:90)
es4x: at com.oracle.truffle.js.nodes.access.WritePropertyNode.executeAndSpecialize(WritePropertyNode.java:246)
es4x: at com.oracle.truffle.js.nodes.access.WritePropertyNode.executeVoid(WritePropertyNode.java:216)
es4x: at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:74)
es4x: at com.oracle.truffle.js.nodes.control.BlockNode.execute(BlockNode.java:62)
es4x: at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73)
es4x: at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:147)
es4x: at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:93)
Thank you for the report. It seems that the root of the problem is in an incorrect/missing synchronization of the cache in ObjectLiteralNode. I was able to reproduce this exception locally (by modifying ObjectLiteralNode a bit to increase the likelihood of this race condition).
Sorry for not having a proper reproducer but the issue only happens on a 32 core metal server but I couldn't get in on a cloud/laptop/docker... Plus the exception only contains graal traces ...
Thanks for the report, this will be fixed in 19.2.0 (and is fixed in master now).
Most helpful comment
Thank you for the report. It seems that the root of the problem is in an incorrect/missing synchronization of the cache in
ObjectLiteralNode. I was able to reproduce this exception locally (by modifyingObjectLiteralNodea bit to increase the likelihood of this race condition).