[jboss-jira] [JBoss JIRA] (WFLY-11601) Weld vs Undertow bootstrap: Race condition
Matej Novotny (Jira)
issues at jboss.org
Wed Feb 20 07:36:00 EST 2019
[ https://issues.jboss.org/browse/WFLY-11601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13698099#comment-13698099 ]
Matej Novotny commented on WFLY-11601:
--------------------------------------
In rough shapes, what needs to be done it setting up an "optional" MSC dependency Undertow -> Weld.
It should look something like this (thanks to Richard for explanation, following is an excerpt from our conversation):
* either inspect WildFly DMR model or WildFly capabilities to see if Weld subsystem is available
* if answer is no then there will be no dependency configured
* if answer is yes then set up {{WeldStartCompletionService}} as a dependency of the {{UndertowDeploymentService}}
> Weld vs Undertow bootstrap: Race condition
> ------------------------------------------
>
> Key: WFLY-11601
> URL: https://issues.jboss.org/browse/WFLY-11601
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld, Web (Undertow)
> Affects Versions: 15.0.1.Final
> Reporter: Ste Gr
> Assignee: Matej Novotny
> Priority: Major
> Attachments: TestApp.zip, TestLib.zip, changes.diff, deploy-failed.txt, deploy-mixed-success.txt, deploy-success.txt, test-app-1.0.0.war, weld-core-impl-3.0.5.Final.jar, weld-core-impl-3.0.5.Final.jar
>
>
> WFLY-9732 / WFLY-10784 moves the completion of WELD from the WeldStartService to WeldStartCompetionService. This causes a race condition with the UndertowDeploymentService which executes the servlet listeners for context-initialized which again fires ApplicationScope-initialized events in CDI.
> You can find more in [WELD-2557|https://issues.jboss.org/browse/WELD-2557?focusedCommentId=13682848&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13682848].
> In short: WeldStartCompletionService and UndertowDeploymentService pushes the logic to the executor service. It may happen, that the logik of undertow runs before the weld completion. Events fired in the servlet listeners won't find all event observers.
> A possible solution would bo to set the WeldStartCompletionService as a dependency of the UndertowDeploymentService
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the jboss-jira
mailing list