Undertow WildFly Subsystem Concepts

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Threading Model

Also see:

Undertow Threading Model
WildFly Threads Subsystem Concepts

Fiter

A filter is functionally equivalent to a global valve used in previous versions of JBoss (JBoss Web). It enables some aspect of a request to be modified and can use predicates to control when a filter executes.

Valve

https://access.redhat.com/solutions/2423411

Threads

The threads are named according to the following pattern: "RequestHandler (2208728)", and a typical stack trace that involves database access:

"RequestHandler (2208728)" #184 prio=5 os_prio=0 tid=0x0000000069a7e800 nid=0x1588 runnable [0x000000007b03d000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:170)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782)
    at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4838)
    - locked <0x00000004805d6a38> (a com.microsoft.sqlserver.jdbc.TDSReader)
    at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:6150)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:402)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    - locked <0x00000000c017af68> (a java.lang.Object)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:332)
    at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:404)
    at io.novaordis.microservice.util.db.jdbc.DBPreparedStatement.execute(DBPreparedStatement.java:71)
    at io.novaordis.microservice.util.db.sql.Procedure$Prepared.execute(Procedure.java:37)
    at io.novaordis.microservice.util.db.sql.Procedure$PreparedWithResult.executeQuery(Procedure.java:105)
    at io.novaordis.microservice.core.storage.db.DBQuery.db_query_aroundBody10(DBQuery.java:228)
    at io.novaordis.microservice.core.storage.db.DBQuery.db_query_aroundBody11$advice(DBQuery.java:32)
    at io.novaordis.microservice.core.storage.db.DBQuery.db_query(DBQuery.java:1)
    at io.novaordis.microservice.core.storage.db.NodeStorage.executeForCNLs(NodeStorage.java:277)
    at io.novaordis.microservice.core.storage.db.NodeStorage.executeForCNLs(NodeStorage.java:272)
    at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260)
    at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260)
    at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260)
    at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260)
    at io.novaordis.microservice.model.user.xc.UserProvider.getUserByIdentity(UserProvider.java:724)
    at io.novaordis.microservice.core.session2.impl.SessionManager.buildClientSession(SessionManager.java:208)
    at io.novaordis.microservice.core.session2.impl.SessionManager.authenticate(SessionManager.java:162)
    at io.novaordis.microservice.core.session2.impl.SessionManager.authenticate(SessionManager.java:73)
    at io.novaordis.microservice.core.session2.Session.authenticate(Session.java:282)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at io.novaordis.microservice.util.servlet.HOperation$Info.process(HOperation.java:106)
    at io.novaordis.microservice.util.servlet.HModule$Info.process(HModule.java:54)
    at io.novaordis.microservice.util.servlet.ServletRegister.process(ServletRegister.java:103)
    at io.novaordis.microservice.service.handler.RequestHandler.doPost(RequestHandler.java:251)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
    at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:123)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x00000000c03b4628> (a java.util.concurrent.locks.ReentrantLock$FairSync)
    - <0x0000000107a6d390> (a java.util.concurrent.ThreadPoolExecutor$Worker)