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
>>>
>>>
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to