Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for com.hazelcast:hazelcast:5.2.1 #169

Merged
merged 1 commit into from
Jan 17, 2023

Conversation

linghengqian
Copy link
Contributor

What does this PR do?

Checklist before merging

  • I have properly formatted metadata files (see CONTRIBUTING document)
  • I have added thorough tests. (see this)

@linghengqian
Copy link
Contributor Author

  • I finally realized that the out of memory issue came from com.hazelcast.client.HazelcastClient, not Hazelcast Server, which is ridiculous. I feel like this is a bug in Hazelcast 5.2.1 and I need to adjust the target version of the PR.

@linghengqian linghengqian force-pushed the hazelcast branch 2 times, most recently from 717200e to 9685913 Compare January 10, 2023 06:13
@linghengqian linghengqian changed the title Add support for com.hazelcast:hazelcast:5.2.1 Add support for com.hazelcast:hazelcast:5.1.5 Jan 10, 2023
@linghengqian linghengqian force-pushed the hazelcast branch 3 times, most recently from 45cb593 to 0bec2c9 Compare January 10, 2023 08:21
@linghengqian linghengqian changed the title Add support for com.hazelcast:hazelcast:5.1.5 Add support for com.hazelcast:hazelcast:5.2.1 Jan 10, 2023
@linghengqian
Copy link
Contributor Author

  • I'll keep investigating this after the com.hazelcast:hazelcast:5.3.0 release, it's so weird.

@linghengqian
Copy link
Contributor Author

linghengqian commented Jan 11, 2023

  • @mhalbritter Hi, I want to know if you know why calling the method of com.hazelcast.client.HazelcastClient will cause the Github Actions device to crash? This branch is normally executed locally ./gradlew clean test -Pcoordinates=com.hazelcast:hazelcast:5.2.1, but Github Actions will crash due to device restrictions.
  • I have no idea about this. Hazelcast 5.1.5, 5.2.0, 5.2.1 showed the same problem in Github Actions. I understand that this seems to be the problem of Hazelcast, but I can't find the relevant issue.
  • image

@mhalbritter
Copy link
Collaborator

Hey, no idea why the Github Actions won't run. I have no broader experience with either Hazelcast nor Github Actions, so I'm afraid I can't really help on that.

@linghengqian
Copy link
Contributor Author

linghengqian commented Jan 12, 2023

Hey, no idea why the Github Actions won't run. I have no broader experience with either Hazelcast nor Github Actions, so I'm afraid I can't really help on that.

  • From this perspective, I don't think we should consider incorporating this PR at GraalVM Reachability Metadata 0.2.6. Of course, if a friend submits another hazelcast PR and gets merged, I'd be happy to try to add more unit tests to the next release milestone.

@linghengqian
Copy link
Contributor Author

linghengqian commented Jan 14, 2023

  • So according to the findings of @fniephaus in Add support for com.hazelcast:hazelcast:5.2.1 #122 (comment), I determined that Hazelcast has a completely different port performance in Github Actions than that of local devices. And this actually didn't print any errors. So I specified all ports in linghengqian/graalvm-trace-metadata-smoketest@7f6a0ee and put the processing into the current PR.

  • At the same time, because Hazelcast is difficult to specify the port on JCache, I replaced System.setProperty("hazelcast.jcache.provider.type", "client") with System.setProperty("hazelcast.jcache.provider.type", "member"), which is missing part of the unit tests related to https://docs.hazelcast.com/hazelcast/5.2/jcache/providers#hide-nav, but I don't think this will affect.

  • Due to a new discovery at Add support for io.etcd:jetcd-core:0.7.5 #170, the org.junit.jupiter.api.Timeout annotation cannot be used under nativeTest, so I introduced org.awaitility:awaitility:4.2.0 to test the timeout behavior of HazelcastClient.

  • Regarding the problem of serialization-config.json of javax.cache:cache-api:1.1.1, I misunderstood the meaning of Error Log before, and I have modified it to the GraalVM reachability metadata in the conditional style. I now know that this Log means that if and only if the java.lang.Object class is reachable, consider the javax.cache.configuration.FactoryBuilder$SingletonFactory entry. I am at linghengqian/graalvm-trace-metadata-smoketest@80bc33f fixes this, and addresses the current PR as well.

 JUnit Jupiter:HazelcastTest:testJCache()
    MethodSource [className = 'com.lingh.HazelcastTest', methodName = 'testJCache', methodParameterTypes = '']
    => com.oracle.svm.core.jdk.UnsupportedFeatureError: SerializationConstructorAccessor class not found for declaringClass: javax.cache.configuration.FactoryBuilder$SingletonFactory (targetConstructorClass: java.lang.Object). Usually adding javax.cache.configuration.FactoryBuilder$SingletonFactory to serialization-config.json fixes the problem.
       org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:89)
       org.graalvm.nativeimage.builder/com.oracle.svm.core.reflect.serialize.SerializationSupport.getSerializationConstructorAccessor(SerializationSupport.java:143)
       java.base@17.0.5/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:48)
       java.base@17.0.5/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:463)
       java.base@17.0.5/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:455)
       java.base@17.0.5/java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1443)
       java.base@17.0.5/java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:412)
       java.base@17.0.5/java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:384)
       java.base@17.0.5/java.security.AccessController.executePrivileged(AccessController.java:168)
       java.base@17.0.5/java.security.AccessController.doPrivileged(AccessController.java:318)
       [...]
  • This PR is ready for review.

@linghengqian linghengqian marked this pull request as ready for review January 14, 2023 10:02
Copy link
Collaborator

@mhalbritter mhalbritter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@linghengqian linghengqian force-pushed the hazelcast branch 2 times, most recently from 1203964 to e297dfe Compare January 16, 2023 15:29
@linghengqian
Copy link
Contributor Author

  • Since Add support for javax.cache:cache-api:1.1.1 #176 was merged, I removed the manually added javax.cache:cache-api:1.1.1 GraalVM reachability metadata in this PR in the latest commit.

  • It seems that since this week, the current Git CI has encountered a problem. Every time a PR is merged, all unclosed PRs will be outdate.

@dnestoro dnestoro merged commit d19e498 into oracle:master Jan 17, 2023
@linghengqian linghengqian deleted the hazelcast branch January 17, 2023 11:19
@dnestoro
Copy link
Member

dnestoro commented Jan 17, 2023

  • Since Add support for javax.cache:cache-api:1.1.1 #176 was merged, I removed the manually added javax.cache:cache-api:1.1.1 GraalVM reachability metadata in this PR in the latest commit.
  • It seems that since this week, the current Git CI has encountered a problem. Every time a PR is merged, all unclosed PRs will be outdate.

We changed some repo configuration so it shouldn't happen anymore. If that doesn't solve the problem, we will explore some other options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for Hazelcast
4 participants