[JBoss JIRA] (DROOLS-5522) Fix InternalKieModule.createKieModule
by Mario Fusco (Jira)
[ https://issues.redhat.com/browse/DROOLS-5522?page=com.atlassian.jira.plug... ]
Mario Fusco updated DROOLS-5522:
--------------------------------
Sprint: 2020 Week 28-30 (from Jul 6)
> Fix InternalKieModule.createKieModule
> -------------------------------------
>
> Key: DROOLS-5522
> URL: https://issues.redhat.com/browse/DROOLS-5522
> Project: Drools
> Issue Type: Task
> Reporter: Gabriele Cardosi
> Assignee: Mario Fusco
> Priority: Major
>
> {code:java}
> org.drools.compiler.kie.builder.impl.InternalKieModule.createKieModule(ReleaseId releaseId, File jar)
> {code}
> has a couple of issues
> 1) there is not a check on the actual type of File received as parameter: it expects it to be a "jar" - but this is not checked anywhere - so
> {code:java}
> ZipFile zipFile = new ZipFile(jar)
> {code}
> throws an exception whenever the given file is not a "jar"
> 2) every exceptions are catch and simply logged; but it seems that whatever exception may happen inside this if
> {code:java}
> if (zipEntry != null) {
> KieModuleModel kieModuleModel = KieModuleModelImpl.fromXML( zipFile.getInputStream( zipEntry ) );
> setDefaultsforEmptyKieModule( kieModuleModel );
> return kieModuleModel != null ? InternalKieModuleProvider.get( adapt( releaseId ), kieModuleModel, jar ) : null;
> }
> {code}
> it is actually a grave exception, since it means that it was impossible to retrieve an expected KieModule out of a given "kjar" (we know it is a kjar because zipEntry != null)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 2 months
[JBoss JIRA] (WFLY-13433) Improve capability support in EJB3 subsystem
by Richard Achmatowicz (Jira)
[ https://issues.redhat.com/browse/WFLY-13433?page=com.atlassian.jira.plugi... ]
Richard Achmatowicz commented on WFLY-13433:
--------------------------------------------
The mixed domain tests basically run various types of tests (deployment, operation invocation, etc) in a domain with mixed versions of EAP, if I understand correctly. They also "adjust" domain.xml profiles in a version specific way: default profiles have certain resources removed before running the test for compatibility reasons.
The mixed domain tests are enabled as follows:
{noformat}
-Djboss.test.mixed.domain.dir=/some/dir/
{noformat}
where /some/dir/ is a directory holding jboss-eap-6.4.0.zip, jboss-eap-7.0.0.zip, jboss-eap-7.1.0.zip, jboss-eap-7.2.0.zip and jboss-eap-7.3.0.zip (these are the current legacy versions used in the mixed domain tests). No other command line flags are necessary.
The resulting test output looks like:
{noformat}
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap700.MixedDomainOverlay700TestSuite
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.678 s - in org.jboss.as.test.integration.domain.mixed.eap700.MixedDomainOverlay700TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap700.ElytronOnlyMaster700TestSuite
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.692 s - in org.jboss.as.test.integration.domain.mixed.eap700.ElytronOnlyMaster700TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap700.MixedDomain700TestSuite
[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 42.546 s - in org.jboss.as.test.integration.domain.mixed.eap700.MixedDomain700TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap700.KernelBehavior700TestSuite
[INFO] Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.075 s - in org.jboss.as.test.integration.domain.mixed.eap700.KernelBehavior700TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap700.LegacyConfig700TestSuite
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 34.868 s - in org.jboss.as.test.integration.domain.mixed.eap700.LegacyConfig700TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap710.LegacyConfig710TestSuite
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 38.46 s - in org.jboss.as.test.integration.domain.mixed.eap710.LegacyConfig710TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap710.KernelBehavior710TestSuite
[INFO] Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.465 s - in org.jboss.as.test.integration.domain.mixed.eap710.KernelBehavior710TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap710.MixedDomain710TestSuite
[WARNING] Tests run: 20, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 45.875 s - in org.jboss.as.test.integration.domain.mixed.eap710.MixedDomain710TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap710.MixedDomainOverlay710TestSuite
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 23.353 s - in org.jboss.as.test.integration.domain.mixed.eap710.MixedDomainOverlay710TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap710.ElytronOnlyMaster710TestSuite
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 23.671 s - in org.jboss.as.test.integration.domain.mixed.eap710.ElytronOnlyMaster710TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap720.LegacyConfig720TestSuite
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 41.066 s - in org.jboss.as.test.integration.domain.mixed.eap720.LegacyConfig720TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap720.ElytronOnlyMaster720TestSuite
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 25.567 s - in org.jboss.as.test.integration.domain.mixed.eap720.ElytronOnlyMaster720TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap720.MixedDomainOverlay720TestSuite
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 24.598 s - in org.jboss.as.test.integration.domain.mixed.eap720.MixedDomainOverlay720TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap720.MixedDomain720TestSuite
[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 48.496 s - in org.jboss.as.test.integration.domain.mixed.eap720.MixedDomain720TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap720.KernelBehavior720TestSuite
[INFO] Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.575 s - in org.jboss.as.test.integration.domain.mixed.eap720.KernelBehavior720TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap640.ElytronOnlyMaster640TestSuite
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.498 s - in org.jboss.as.test.integration.domain.mixed.eap640.ElytronOnlyMaster640TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap640.MixedDomain640TestSuite
[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 54.406 s - in org.jboss.as.test.integration.domain.mixed.eap640.MixedDomain640TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap640.LegacyConfig640TestSuite
// my failure now identified locally
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.58 s - in org.jboss.as.test.integration.domain.mixed.eap640.KernelBehavior640TestSuite
[INFO] Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.14 s - in org.jboss.as.test.integration.domain.mixed.eap640.KernelBehavior640TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap640.MixedDomainOverlay640TestSuite
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 29.139 s - in org.jboss.as.test.integration.domain.mixed.eap640.MixedDomainOverlay640TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap730.KernelBehavior730TestSuite
[INFO] Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 23.435 s - in org.jboss.as.test.integration.domain.mixed.eap730.KernelBehavior730TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap730.ElytronOnlyMaster730TestSuite
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 27.105 s - in org.jboss.as.test.integration.domain.mixed.eap730.ElytronOnlyMaster730TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap730.MixedDomain730TestSuite
[WARNING] Tests run: 20, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 48.693 s - in org.jboss.as.test.integration.domain.mixed.eap730.MixedDomain730TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap730.MixedDomainOverlay730TestSuite
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 26.293 s - in org.jboss.as.test.integration.domain.mixed.eap730.MixedDomainOverlay730TestSuite
[INFO] Running org.jboss.as.test.integration.domain.mixed.eap730.LegacyConfig730TestSuite
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 52.543 s - in org.jboss.as.test.integration.domain.mixed.eap730.LegacyConfig730TestSuite
{noformat}
In an ideal world, there would be a shorthand in integration-tests.sh, something like -Dmixed-domain, which would create and populate the required legacy versions directory and run the tests. This would improve the visibility of the tests and make running them locally a little easier, without having any custom knowledge. The documentation would be updated as well.
> Improve capability support in EJB3 subsystem
> --------------------------------------------
>
> Key: WFLY-13433
> URL: https://issues.redhat.com/browse/WFLY-13433
> Project: WildFly
> Issue Type: Enhancement
> Components: EJB
> Affects Versions: 20.0.0.Beta1
> Reporter: Richard Achmatowicz
> Assignee: Richard Achmatowicz
> Priority: Major
>
> Survey all external subsystem dependencies and introduce capability based dependencies where required.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 2 months
[JBoss JIRA] (WFLY-13686) Deadlock on Wildfly startup
by Cheng Fang (Jira)
[ https://issues.redhat.com/browse/WFLY-13686?page=com.atlassian.jira.plugi... ]
Cheng Fang commented on WFLY-13686:
-----------------------------------
may be somewhat related to WFLY-10879
> Deadlock on Wildfly startup
> ---------------------------
>
> Key: WFLY-13686
> URL: https://issues.redhat.com/browse/WFLY-13686
> Project: WildFly
> Issue Type: Bug
> Components: EJB
> Affects Versions: 20.0.1.Final
> Reporter: K G
> Assignee: Cheng Fang
> Priority: Major
>
> On Wildfly startup there can be a deadlock related to ejb/singleton access and more specifically: StartupAwaitInterceptor and ContainerManagedConcurrencyInterceptor. This can happen when there is a too early client request (occurring during app startup) or a request caused by thread running in managed executor (that's what happened to me). A thread that is blocked by StartupAwaitInterceptor also holds a lock from ContainerManagedConcurrencyInterceptor and blocks other threads. This is related to the following pull request, link to the comment: [https://github.com/wildfly/wildfly/pull/9009#issuecomment-656147415] .
> I guess possible solution is to change interceptors ordering. Other possibility is to add "privileged" flag (see pull request for explanation) to threads from managed thread factory but in this case a too early client request could also cause a dealock.
>
> Scenario of deadlock (description copied from pull request's comment):
> * startup singleton A's initialization starts and completes successfully
> * startup singleton B is initializing and during that it starts a task X via managedThreadExecutor
> * X wants to access A and is blocked by StartupCountdown.await
> * meanwhile B continues initializing and wants to access A but X already holds a lock on A (I can see ContainerManagedConcurrencyInterceptor.processInvocation in the tread dump) hence after 5000ms B's initialization fails as well as whole deployment
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 2 months
[JBoss JIRA] (WFLY-12815) Wildfly 13 - Thread local state corrupted by deployed application explosion during session timeout leading to WELD-001304 - More than one context active for scope type javax.enterprise.context.SessionScoped
by NUNO GODINHO DE MATOS (Jira)
[ https://issues.redhat.com/browse/WFLY-12815?page=com.atlassian.jira.plugi... ]
NUNO GODINHO DE MATOS commented on WFLY-12815:
----------------------------------------------
Hi,
Many thanks for your advice.
So I will take your feedback about it being a very bad idea to let servlet listener to blow up, since it can break the chain of listeners setup by the App Container.
It will probably make sense to make our own basic "top level" listener with an implementation code as simple try catch log exception, with a reference to this issue indicating that breaking a chain of listeners setup by an app server can lead to nasty unforeseen consequences (e.g. the listener chain setup by the app server provider not running to the end).
Hopefully we get no side effects from handling these exceptions since it would be acting at a layer of code well before any JTA transaction is started or needs to be rolledback. So the DB / JMS layer should not be corrupted by introducing this new safety-net layer.
Thanks a lot for the instructions.
I understand that the port cannot be back ported to wildfly 13.
That is totally fine, for wildfly 13 our dirty patch works like a survival kit.
And for a future versions we would be covered by your fix. :)
Once I get the time to test this fix, I will report back to you.
Super, thanks a lot.
> Wildfly 13 - Thread local state corrupted by deployed application explosion during session timeout leading to WELD-001304 - More than one context active for scope type javax.enterprise.context.SessionScoped
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-12815
> URL: https://issues.redhat.com/browse/WFLY-12815
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld
> Affects Versions: 13.0.0.Final
> Environment: Environment independent the issue, it is purely a logical problem
> Reporter: NUNO GODINHO DE MATOS
> Assignee: Matěj Novotný
> Priority: Major
> Attachments: sourceCodeToSendToWildfly.7z
>
>
> The full description of the problem can be seen in stack overflow.
> Please consulder the issue:
> https://stackoverflow.com/questions/58930939/wildflt-13-weld-001304-more-...
> SUMMARY:
> (1) Setup you wildfly to have a session timeout of 1 minute - so that you can esaily make your http sessions timeout
> (2) Program in your WAR application a sessionDestroyed listener that will be broken.
> In our case whenever the session is timing out, we have some code that explodes in wildfly and not in weblogic because it expected for the RequestScope context to be active, but apparently in wildfly when Undertow to start killing of a session the request scope context is not made active so that caused our session destroyed handling to break
> (3) Do this sufficient amount of times to corrupted as may threads in the thread pool as possible
> (4) Now try to interact with your application making use of some session scoped beans .
> If you travel to ay sort of view that makes use of a session scoped bean that thread will be broken with the exception that multiple session scope context implementation are active.
> But this exception will only come out and aply if the thread handling the HTTP request is one of the threads that in the past were used by undertow to handle the session timeout.
> The only threads that have been corrupted forever are those that had a broken sessin timeout
> Explanation for the issue:
> - When the session timeout is being orchestrated by underdow, wildfly is activating a special HttpSessionDescrutionContext and making it active.
> This ACTIVE TRUE/FALSE flag is a ThreadLocal variable.
> So the activation of the scope context is marked on the thread itself.
> - When the thread blows up the thread context will remain for as long at the thread lives
> - in a future request the flag had that thread local variable active already.
> So when the BeanManagaerImpl is hunting to the one and only active http session context it finds the traditional happy path http session context active plust the DestructionSession context that was activated in a previous call.
> All of the illustrative stack traces that facilitate the comprehention of the issue are shown in the stack overflow thread.
> I am of the oppinion that errors like this can happen in the deployed applications.
> It would not hurt if wildfly would somehow be able to ensure that the thread that hand an explosion in a previous request is not corrupted when it is used to handle new requests.
> Many thanks for having a look.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 2 months
[JBoss JIRA] (WFLY-13684) Intermittent failures in MixedDomainDeployment700TestCase
by Emmanuel Hugonnet (Jira)
[ https://issues.redhat.com/browse/WFLY-13684?page=com.atlassian.jira.plugi... ]
Emmanuel Hugonnet commented on WFLY-13684:
------------------------------------------
[~brian.stansberry] this is a RHEL kernel fix which created this issue, but it should also impact 7.1 and 7.2
> Intermittent failures in MixedDomainDeployment700TestCase
> ---------------------------------------------------------
>
> Key: WFLY-13684
> URL: https://issues.redhat.com/browse/WFLY-13684
> Project: WildFly
> Issue Type: Bug
> Components: JMS, Management
> Reporter: Brian Stansberry
> Assignee: Emmanuel Hugonnet
> Priority: Major
>
> Lots of failures starting July 16, 2020: https://ci.wildfly.org/project.html?projectId=WF&buildTypeId=&tab=testDet...
> This is the first failure in a set of 12-13 failures.
> Odd thing is nothing was merged into master after July 12, so why these started failing is unclear.
> WFLY-12649 was a similar issue-, but there it was known that the version of Artemis of EAP 7.0.0 did not work properly on OpenJ9-. This current issue is affecting various jobs running different OpenJDK versions.
> I'll send up a PR ignoring this test.
> The problem details:
> {code}
> java.lang.AssertionError: {"WFLYDC0074: Operation failed or was rolled back on all servers. Server failures:" => {"server-group" => {"other-server-group" => {"host" => {"slave" => {"server-one" => {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => {
> "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.test.test.DefaultJMSConnectionFactory is missing [jboss.naming.context.java.jboss.DefaultJMSConnectionFactory]"],
> "WFLYCTL0288: One or more services were unable to start due to one or more indirect dependencies not being available." => {
> "Services that were unable to start:" => [
> "jboss.deployment.unit.\"test.war\".CdiValidatorFactoryService",
> "jboss.deployment.unit.\"test.war\".WeldStartService",
> "jboss.deployment.unit.\"test.war\".component.\"com.sun.faces.config.ConfigureListener\".START",
> "jboss.deployment.unit.\"test.war\".component.\"com.sun.faces.config.ConfigureListener\".WeldInstantiator",
> "jboss.deployment.unit.\"test.war\".component.\"javax.faces.webapp.FacetTag\".START",
> "jboss.deployment.unit.\"test.war\".component.\"javax.faces.webapp.FacetTag\".WeldInstantiator",
> "jboss.deployment.unit.\"test.war\".component.\"javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV\".START",
> "jboss.deployment.unit.\"test.war\".component.\"javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV\".WeldInstantiator",
> "jboss.deployment.unit.\"test.war\".component.\"javax.servlet.jsp.jstl.tlv.ScriptFreeTLV\".START",
> "jboss.deployment.unit.\"test.war\".component.\"javax.servlet.jsp.jstl.tlv.ScriptFreeTLV\".WeldInstantiator",
> "jboss.deployment.unit.\"test.war\".component.\"org.jboss.weld.servlet.WeldInitialListener\".START",
> "jboss.deployment.unit.\"test.war\".component.\"org.jboss.weld.servlet.WeldInitialListener\".WeldInstantiator",
> "jboss.deployment.unit.\"test.war\".component.\"org.jboss.weld.servlet.WeldTerminalListener\".START",
> "jboss.deployment.unit.\"test.war\".component.\"org.jboss.weld.servlet.WeldTerminalListener\".WeldInstantiator",
> "jboss.deployment.unit.\"test.war\".deploymentCompleteService",
> "jboss.deployment.unit.\"test.war\".jndiDependencyService",
> "jboss.undertow.deployment.default-server.default-host./test",
> "jboss.undertow.deployment.default-server.default-host./test.UndertowDeploymentInfoService"
> ],
> "Services that may be the cause:" => [
> "jboss.clustering.singleton.server.default",
> "jboss.naming.context.java.jboss.DefaultJMSConnectionFactory"
> ]
> }
> }}}}}}}}}
> {code}
> In the server.log of the /host=slave/server=server-one server:
> {code}
> 2020-07-17 08:48:06,358 INFO [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 42) AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=true,journalDirectory=/store/work/tc-work/f5da3564a57e9d74/testsuite/mixed-domain/target/domains/MixedDomain700TestSuite/slave/servers/server-one/data/activemq/journal,bindingsDirectory=/store/work/tc-work/f5da3564a57e9d74/testsuite/mixed-domain/target/domains/MixedDomain700TestSuite/slave/servers/server-one/data/activemq/bindings,largeMessagesDirectory=/store/work/tc-work/f5da3564a57e9d74/testsuite/mixed-domain/target/domains/MixedDomain700TestSuite/slave/servers/server-one/data/activemq/largemessages,pagingDirectory=/store/work/tc-work/f5da3564a57e9d74/testsuite/mixed-domain/target/domains/MixedDomain700TestSuite/slave/servers/server-one/data/activemq/paging)
> 2020-07-17 08:48:06,378 INFO [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 42) AMQ221012: Using AIO Journal
> 2020-07-17 08:48:06,478 INFO [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 42) AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
> 2020-07-17 08:48:06,481 INFO [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 42) AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
> 2020-07-17 08:48:06,509 WARN [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 42) AMQ222010: Critical IO Error, shutting down the server. file=AIOSequentialFile:/store/work/tc-work/f5da3564a57e9d74/testsuite/mixed-domain/target/domains/MixedDomain700TestSuite/slave/servers/server-one/data/activemq/journal/activemq-data-1.amq.tmp, message=Cannot open file:Invalid argument: java.io.IOException: Cannot open file:Invalid argument
> at org.apache.activemq.artemis.jlibaio.LibaioContext.open(Native Method)
> at org.apache.activemq.artemis.jlibaio.LibaioContext.openFile(LibaioContext.java:291)
> at org.apache.activemq.artemis.jlibaio.LibaioContext.openFile(LibaioContext.java:274)
> at org.apache.activemq.artemis.core.io.aio.AIOSequentialFile.open(AIOSequentialFile.java:133)
> at org.apache.activemq.artemis.core.journal.impl.JournalFilesRepository.createFile0(JournalFilesRepository.java:590)
> at org.apache.activemq.artemis.core.journal.impl.JournalFilesRepository.createFile(JournalFilesRepository.java:543)
> at org.apache.activemq.artemis.core.journal.impl.JournalFilesRepository.ensureMinFiles(JournalFilesRepository.java:206)
> at org.apache.activemq.artemis.core.journal.impl.JournalImpl.setUpCurrentFile(JournalImpl.java:2652)
> at org.apache.activemq.artemis.core.journal.impl.JournalImpl.load(JournalImpl.java:1728)
> at org.apache.activemq.artemis.core.journal.impl.JournalImpl.load(JournalImpl.java:1126)
> at org.apache.activemq.artemis.core.journal.impl.JournalImpl.load(JournalImpl.java:1110)
> at org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager.loadMessageJournal(JournalStorageManager.java:1260)
> at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.loadJournals(ActiveMQServerImpl.java:1701)
> at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart2(ActiveMQServerImpl.java:1595)
> at org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:60)
> at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:393)
> at org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:381)
> at org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:199)
> at org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:63)
> at org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:97)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 2 months
[JBoss JIRA] (WFLY-12815) Wildfly 13 - Thread local state corrupted by deployed application explosion during session timeout leading to WELD-001304 - More than one context active for scope type javax.enterprise.context.SessionScoped
by Matěj Novotný (Jira)
[ https://issues.redhat.com/browse/WFLY-12815?page=com.atlassian.jira.plugi... ]
Matěj Novotný commented on WFLY-12815:
--------------------------------------
Ok, looks like it didn't break anything noticeable so far.
[~nuno.godinhomatos] Here is how you get the new Weld version and upgrade your WFLY with it. Note that I am talking about WFLY 20/21 which is what I tested it with, older versions might not work after just swapping out Weld verisons:
* Checkout the PR locally - [https://github.com/weld/core/pull/2005]
* Build Weld
** {{cd core}}
** {{mvn clean install -DskipTests}}
* Set path to your WFLY
** {{export JBOSS_HOME=/home/myhome/path/to/wfly}}
* Patch the WFLY under {{JBOSS_HOME}} with new Weld version using the following command (assuming you are still inside {{core}} repo):
** {{mvn clean package -Pupdate-jboss-as -f jboss-as/pom.xml}}
* That's it, the WFLY under {{JBOS_HOME}} now has patched Weld in it
> Wildfly 13 - Thread local state corrupted by deployed application explosion during session timeout leading to WELD-001304 - More than one context active for scope type javax.enterprise.context.SessionScoped
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-12815
> URL: https://issues.redhat.com/browse/WFLY-12815
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld
> Affects Versions: 13.0.0.Final
> Environment: Environment independent the issue, it is purely a logical problem
> Reporter: NUNO GODINHO DE MATOS
> Assignee: Matěj Novotný
> Priority: Major
> Attachments: sourceCodeToSendToWildfly.7z
>
>
> The full description of the problem can be seen in stack overflow.
> Please consulder the issue:
> https://stackoverflow.com/questions/58930939/wildflt-13-weld-001304-more-...
> SUMMARY:
> (1) Setup you wildfly to have a session timeout of 1 minute - so that you can esaily make your http sessions timeout
> (2) Program in your WAR application a sessionDestroyed listener that will be broken.
> In our case whenever the session is timing out, we have some code that explodes in wildfly and not in weblogic because it expected for the RequestScope context to be active, but apparently in wildfly when Undertow to start killing of a session the request scope context is not made active so that caused our session destroyed handling to break
> (3) Do this sufficient amount of times to corrupted as may threads in the thread pool as possible
> (4) Now try to interact with your application making use of some session scoped beans .
> If you travel to ay sort of view that makes use of a session scoped bean that thread will be broken with the exception that multiple session scope context implementation are active.
> But this exception will only come out and aply if the thread handling the HTTP request is one of the threads that in the past were used by undertow to handle the session timeout.
> The only threads that have been corrupted forever are those that had a broken sessin timeout
> Explanation for the issue:
> - When the session timeout is being orchestrated by underdow, wildfly is activating a special HttpSessionDescrutionContext and making it active.
> This ACTIVE TRUE/FALSE flag is a ThreadLocal variable.
> So the activation of the scope context is marked on the thread itself.
> - When the thread blows up the thread context will remain for as long at the thread lives
> - in a future request the flag had that thread local variable active already.
> So when the BeanManagaerImpl is hunting to the one and only active http session context it finds the traditional happy path http session context active plust the DestructionSession context that was activated in a previous call.
> All of the illustrative stack traces that facilitate the comprehention of the issue are shown in the stack overflow thread.
> I am of the oppinion that errors like this can happen in the deployed applications.
> It would not hurt if wildfly would somehow be able to ensure that the thread that hand an explosion in a previous request is not corrupted when it is used to handle new requests.
> Many thanks for having a look.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 2 months