Hi, using Java 8 locally, I was able to reproduce the problem. I dug into it and could figure out the following. However, I cannot make any sense out of it. I have no experience with Java security stuff...
Anyone?
-Matthias
========================================================================
In class
> javax.security.auth.login.Configuration.getConfiguration()
in line 235 to 242 (for Java 7) and
in line 232 to 239 (for Java 8)
this code
> String config_class = null;
> config_class = AccessController.doPrivileged
> (new PrivilegedAction<Stritype filter textng>() {
> public String run() {
> return java.security.Security.getProperty
> ("login.configuration.provider");
> }
> });
results for "config_class":
Java 7: com.sun.security.auth.login.ConfigFile
Java 8: sun.security.provider.ConfigFile
Later this leads to ClassCastException (in line 254 to 257 for Java 7;
and line 251 to 254 for Java 8)
> Class<? extends Configuration> implClass = Class.forName(
> finalClass, false,
> Thread.currentThread().getContextClassLoader()
> ).asSubclass(Configuration.class);
The call stack is also somewhat different.
Java 7:
> Configuration.getConfiguration() line: 235
> NIOServerCnxnFactory(ServerCnxnFactory).configureSaslLogin() line: 174
> NIOServerCnxnFactory.configure(InetSocketAddress, int) line: 87
> zookeeper.clj line: 198
> zookeeper.clj line: 197
> zookeeper.clj line: 195
> zookeeper$mk_inprocess_zookeeper(RestFn).invoke(Object) line: 410
> testing.clj line: 123
> testing$mk_local_storm_cluster(RestFn).invoke(Object, Object) line: 421
> LocalCluster.clj line: 28
> LocalCluster.<init>() line: not available
> StormWrapperSetupHelperTest.testCreateTopologyContext() line: 190
Java 8:
> Configuration$2.run() line: 254 [local variables unavailable]
> Configuration$2.run() line: 247
> AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not
> available [native method]
> Configuration.getConfiguration() line: 246 [local variables unavailable]
> NIOServerCnxnFactory(ServerCnxnFactory).configureSaslLogin() line: 174
> NIOServerCnxnFactory.configure(InetSocketAddress, int) line: 87
> zookeeper.clj line: 198
> zookeeper.clj line: 197
> zookeeper.clj line: 195
> zookeeper$mk_inprocess_zookeeper(RestFn).invoke(Object) line: 410
> testing.clj line: 123
> testing$mk_local_storm_cluster(RestFn).invoke(Object, Object) line: 421
> LocalCluster.clj line: 28
> LocalCluster.<init>() line: not available
> StormWrapperSetupHelperTest.testCreateTopologyContext() line: 190
========================================================================
On 09/16/2015 12:56 PM, Matthias J. Sax wrote:
> Not right now... The ClassCastException occurs deeply inside Storm. I
> guess it is a Storm issue.
>
> I just instantiate a (Storm)LocalCluster and it fails internally.
>
>> LocalCluster cluster = new LocalCluster();
>
> Maybe I need to try it locally with Java 8 JDK to be able to debug it...
> I will pick up this thread again if I have more information.
>
> As a fall back, we might want to deactivate this test for Java 8 (if
> this is possible).
>
>
> -Matthias
>
>
> On 09/16/2015 12:34 PM, Stephan Ewen wrote:
>> Do you know between what classes the exception is? What is the original
>> class and what the cast target class?
>>
>> Are they both the same, and not castable because of different copies being
>> loaded from different classloaders, or are they really different types?
>>
>> On Wed, Sep 16, 2015 at 10:36 AM, Matthias J. Sax <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> I just hit a issue with Java 8 JDK. It occurs in a new test I added in a
>>> current PR.
>>>
>>>> Tests run: 5, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 8.793
>>> sec <<< FAILURE! - in
>>> org.apache.flink.stormcompatibility.wrappers.StormWrapperSetupHelperTest
>>>>
>>> testCreateTopologyContext(org.apache.flink.stormcompatibility.wrappers.StormWrapperSetupHelperTest)
>>> Time elapsed: 6.087 sec <<< ERROR!
>>>> java.lang.ClassCastException: class sun.security.provider.ConfigFile
>>>> at java.lang.Class.asSubclass(Class.java:3396)
>>>> at
>>> javax.security.auth.login.Configuration$2.run(Configuration.java:254)
>>>> at
>>> javax.security.auth.login.Configuration$2.run(Configuration.java:247)
>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>> at
>>> javax.security.auth.login.Configuration.getConfiguration(Configuration.java:246)
>>>> at
>>> org.apache.storm.zookeeper.server.ServerCnxnFactory.configureSaslLogin(ServerCnxnFactory.java:174)
>>>> at
>>> org.apache.storm.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:87)
>>>> at
>>> backtype.storm.zookeeper$mk_inprocess_zookeeper$fn__1697$fn__1699.invoke(zookeeper.clj:198)
>>>> at
>>> backtype.storm.zookeeper$mk_inprocess_zookeeper$fn__1697.invoke(zookeeper.clj:197)
>>>> at
>>> backtype.storm.zookeeper$mk_inprocess_zookeeper.doInvoke(zookeeper.clj:195)
>>>> at clojure.lang.RestFn.invoke(RestFn.java:410)
>>>> at
>>> backtype.storm.testing$mk_local_storm_cluster.doInvoke(testing.clj:123)
>>>> at clojure.lang.RestFn.invoke(RestFn.java:421)
>>>> at backtype.storm.LocalCluster$_init.invoke(LocalCluster.clj:28)
>>>> at backtype.storm.LocalCluster.<init>(Unknown Source)
>>>> at
>>> org.apache.flink.stormcompatibility.wrappers.StormWrapperSetupHelperTest.testCreateTopologyContext(StormWrapperSetupHelperTest.java:190)
>>>
>>> Please see here
>>> https://travis-ci.org/mjsax/flink/jobs/80576847
>>>
>>> I have not clue what the problem might be. Searching on the Internet did
>>> not help...
>>>
>>> Does anyone have an idea what the problem might be?
>>>
>>>
>>> -Matthias
>>>
>>>
>>
>
signature.asc
Description: OpenPGP digital signature
