Bug 1206177

Summary: AdvancedLdapLoginModuleTestCase fails on RHEL5 and IBM JDK
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Marek Kopecky <mkopecky>
Component: TestsuiteAssignee: Ryan Emerson <remerson>
Status: CLOSED CURRENTRELEASE QA Contact: Marek Kopecky <mkopecky>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.4.0CC: bmaxwell, cdewolf, istudens, jcacek, mkopecky, ozizka, pkremens, remerson
Target Milestone: CR1   
Target Release: EAP 6.4.3   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-17 10:37:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1231259    
Attachments:
Description Flags
Jenkins error logs none

Description Marek Kopecky 2015-03-26 13:39:55 UTC
Description of problem:
org.jboss.as.test.integration.security.loginmodules.negotiation.AdvancedLdapLoginModuleTestCase.test1 fails with:
   com.ibm.security.krb5.KrbException, status code: 101

Version-Release number of selected component (if applicable):
 EAP 6.4.0.CR1

How reproducible:
 Always

Steps to Reproduce:
1. ./integration-tests.sh -Dmaven.repo.local=$MAVEN_REPO_LOCAL -fae -Dmaven.test.failure.ignore=true -Dnode0=$MYTESTIP_1 -Dnode1=$MYTESTIP_2 -Djboss.dist=$JBOSS_DIST -Dts.basic -Dtest=AdvancedLdapLoginModuleTestCase

Actual results:
  com.ibm.security.krb5.KrbException

Expected results:
  No failures in test case.

Additional info:
See for server logs and test output:
https://jenkins.mw.lab.eng.bos.redhat.com/hudson/job/eap-6x-as-testsuite-rhel-kerberos/3/RELEASE=6.4.0,jdk=ibm1.7,label_exp=eap-sustaining%20&&%20RHEL5%20&&%20x86/

https://jenkins.mw.lab.eng.bos.redhat.com/hudson/EAP6-AS-Testsuite-Reproducers/job/eap-6x-as-testsuite-rhel-kerberos/3/

Comment 1 Marek Kopecky 2015-03-26 13:44:19 UTC
Created attachment 1006814 [details]
Jenkins error logs

Comment 2 Josef Cacek 2015-06-15 13:34:16 UTC
Summary from email sent to Ryan today:

It seems to be an IBM JDK issue on the RHEL5 (i.e. this issue is not an EAP bug).

The problem is in all tested versions of IBM JDK on RHEL 5 (both x86 and x86_64). The other supported RHEL versions (6, 7) are OK.
We tracked the problem down to the IBM GSS API implementation which fails to create KrbTgsReq object. Only the very first call fails! The subsequent calls finish without problem.

So if there is more Kerberos related tests running the first always fails, but the others finish correctly.

There is a workaround - to remove the "forwardable=true" entry from krb5.conf file. Nevertheless, we need this option in another test class which tests identity propagation so it's not an option for us.

The related part of log file says:
com.ibm.security.krb5.KrbException, status code: 101
        message: Invalid option in ticket request
        at com.ibm.security.krb5.KrbTgsReq.<init>(KrbTgsReq.java:62)
        at com.ibm.security.krb5.KrbTgsReq.<init>(KrbTgsReq.java:145)
        at com.ibm.security.krb5.internal.k.b(k.java:179)
        at com.ibm.security.krb5.internal.k.a(k.java:215)
        at com.ibm.security.krb5.Credentials.acquireServiceCreds(Credentials.java:215)
        at com.ibm.security.krb5.Credentials.acquireServiceCreds(Credentials.java:179)
        at com.ibm.security.jgss.mech.krb5.g.a(g.java:486)
        at com.ibm.security.jgss.mech.krb5.g.initSecContext(g.java:418)
        at com.ibm.security.jgss.mech.spnego.SPNEGOContext.a(SPNEGOContext.java:427)
        at com.ibm.security.jgss.mech.spnego.SPNEGOContext.initSecContext(SPNEGOContext.java:503)
        at com.ibm.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:26)
        at com.ibm.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:322)
        at org.jboss.as.test.integration.security.common.negotiation.JBossNegotiateScheme.authenticate(JBossNegotiateScheme.java:171)
        at org.apache.http.client.protocol.RequestAuthenticationBase.authenticate(RequestAuthenticationBase.java:120)
        at org.apache.http.client.protocol.RequestAuthenticationBase.process(RequestAuthenticationBase.java:83)
        at org.apache.http.client.protocol.RequestTargetAuthentication.process(RequestTargetAuthentication.java:80)
        at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:131)
        at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:165)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:485)
        at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
        at org.jboss.as.test.integration.security.common.Utils$2.run(Utils.java:525)
        at org.jboss.as.test.integration.security.common.Utils$2.run(Utils.java:523)
        at java.security.AccessController.doPrivileged(AccessController.java:742)
        at javax.security.auth.Subject.doAs(Subject.java:569)
        at org.jboss.as.test.integration.security.common.Utils.makeCallWithKerberosAuthn(Utils.java:523)
        at org.jboss.as.test.integration.security.loginmodules.negotiation.AdvancedLdapLoginModuleTestCase.testDeployment(AdvancedLdapLoginModuleTestCase.java:291)
        at org.jboss.as.test.integration.security.loginmodules.negotiation.AdvancedLdapLoginModuleTestCase.test3(AdvancedLdapLoginModuleTestCase.java:240)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:270)
        at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
        at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
        at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
        at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
        at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
        at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
        at org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:53)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
        at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
        at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
        at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
        at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
        at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
        at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:89)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
        at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
        at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
        at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
        at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:495)
        at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
        at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
        at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
        at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111)
        at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263)
        at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226)
        at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
        at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
        at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185)
        at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
        at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
        at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147)
        at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:254)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:149)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

Comment 3 JBoss JIRA Server 2015-06-22 13:00:43 UTC
Ryan Emerson <remerson> updated the status of jira WFLY-4815 to Coding In Progress

Comment 5 Petr Kremensky 2015-07-31 07:28:42 UTC
Verified on EAP 6.4.3.CP.CR1

Comment 6 Petr Penicka 2017-01-17 10:37:05 UTC
Retroactively bulk-closing issues from released EAP 6.4 cummulative patches.

Comment 7 Petr Penicka 2017-01-17 10:37:34 UTC
Retroactively bulk-closing issues from released EAP 6.4 cummulative patches.