2 Replies Latest reply on Aug 24, 2017 4:52 AM by pmoreau13

    Wildfly 10 XNIO XNIO001007 NullPointerException unexplained

    pmoreau13

      Dear all

       

      A migrated our applications from JBoss 4 to Wildfly 9, and 10 recently.

      No problem at all, except on one site having more then 500 clients.

      After some days running well, we encounter this exception.

      I found some similar topics in the furum, but the cases do not fit, and I have no idea where to dig.

       

      2017-08-20 00:28:07,829 ERROR [org.xnio.listener] (default I/O-93) XNIO001007: A channel event listener threw an exception: java.lang.NullPointerException
              at sun.nio.ch.EPollArrayWrapper.isEventsHighKilled(EPollArrayWrapper.java:174)
              at sun.nio.ch.EPollArrayWrapper.setUpdateEvents(EPollArrayWrapper.java:190)
              at sun.nio.ch.EPollArrayWrapper.add(EPollArrayWrapper.java:239)
              at sun.nio.ch.EPollSelectorImpl.implRegister(EPollSelectorImpl.java:178)
              at sun.nio.ch.SelectorImpl.register(SelectorImpl.java:132)
              at java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:212)
              at java.nio.channels.SelectableChannel.register(SelectableChannel.java:280)
              at org.xnio.nio.WorkerThread.registerChannel(WorkerThread.java:691)
              at org.xnio.nio.QueuedNioTcpServer.accept(QueuedNioTcpServer.java:394)
              at org.xnio.nio.QueuedNioTcpServer.accept(QueuedNioTcpServer.java:57)
              at org.xnio.ChannelListeners$10.handleEvent(ChannelListeners.java:289)
              at org.xnio.ChannelListeners$10.handleEvent(ChannelListeners.java:286)
              at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
              at org.xnio.nio.QueuedNioTcpServer$1.run(QueuedNioTcpServer.java:128)
              at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:588)
              at org.xnio.nio.WorkerThread.run(WorkerThread.java:468)
      

       

      Il is a minimal installation in standalone mode with Spring & Hibernate.

      If it can help, here is may standalone.xml:

      <server xmlns="urn:jboss:domain:4.2">
      
          <extensions>
              <extension module="org.jboss.as.deployment-scanner"/>
              <extension module="org.jboss.as.ee"/>
              <extension module="org.jboss.as.jmx"/>
              <extension module="org.jboss.as.logging"/>
              <extension module="org.jboss.as.naming"/>
              <extension module="org.jboss.as.security"/>
              <extension module="org.wildfly.extension.io"/>
              <extension module="org.wildfly.extension.request-controller"/>
              <extension module="org.wildfly.extension.security.manager"/>
              <extension module="org.wildfly.extension.undertow"/>
          </extensions>
      
      
          <management>
              <security-realms>
                  <security-realm name="ManagementRealm">
                      <authentication>
                          <local default-user="$local"/>
                          <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
                      </authentication>
                      <authorization map-groups-to-roles="false">
                          <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
                      </authorization>
                  </security-realm>
                  <security-realm name="ApplicationRealm">
                      <server-identities>
                          <ssl>
                              <keystore path="esp.jks" relative-to="jboss.server.config.dir" keystore-password="adminSSL" alias="ESP" key-password="adminSSL"/>
                          </ssl>
                      </server-identities>
                      <authentication>
                          <local default-user="$local" allowed-users="*"/>
                          <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
                      </authentication>
                      <authorization>
                          <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
                      </authorization>
                  </security-realm>
              </security-realms>
              <audit-log>
                  <formatters>
                      <json-formatter name="json-formatter"/>
                  </formatters>
                  <handlers>
                      <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>
                  </handlers>
                  <logger log-boot="true" log-read-only="false" enabled="false">
                      <handlers>
                          <handler name="file"/>
                      </handlers>
                  </logger>
              </audit-log>
              <management-interfaces>
                  <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">
                      <socket-binding http="management-http"/>
                  </http-interface>
              </management-interfaces>
              <access-control provider="simple">
                  <role-mapping>
                      <role name="SuperUser">
                          <include>
                              <user name="$local"/>
                          </include>
                      </role>
                  </role-mapping>
              </access-control>
          </management>
      
          <profile>
              <subsystem xmlns="urn:jboss:domain:logging:3.0">
                  <add-logging-api-dependencies value="false"/>
                  <use-deployment-logging-config value="false"/>
                  <console-handler name="CONSOLE">
                      <level name="INFO"/>
                      <formatter>
                          <named-formatter name="COLOR-PATTERN"/>
                      </formatter>
                  </console-handler>
                  <periodic-rotating-file-handler name="FILE" autoflush="true">
                      <formatter>
                          <named-formatter name="PATTERN"/>
                      </formatter>
                      <file relative-to="jboss.server.log.dir" path="server.log"/>
                      <suffix value=".dd"/>
                      <append value="true"/>
                  </periodic-rotating-file-handler>
                  <logger category="com.arjuna">
                      <level name="WARN"/>
                  </logger>
                  <logger category="org.jboss.as">
                      <level name="INFO"/>
                  </logger>
                  <logger category="com.editag.connector">
                      <level name="INFO"/>
                  </logger>
                  <logger category="com.editag.services">
                      <level name="INFO"/>
                  </logger>
                  <logger category="com.editag">
                      <level name="WARN"/>
                  </logger>
                  <logger category="org.hibernate">
                      <level name="INFO"/>
                  </logger>
                  <logger category="sun.rmi">
                      <level name="WARN"/>
                  </logger>
                  <logger category="jacorb">
                      <level name="WARN"/>
                  </logger>
                  <logger category="jacorb.config">
                      <level name="ERROR"/>
                  </logger>
                  <root-logger>
                      <level name="INFO"/>
                      <handlers>
                          <handler name="CONSOLE"/>
                          <handler name="FILE"/>
                      </handlers>
                  </root-logger>
                  <formatter name="PATTERN">
                      <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
                  </formatter>
                  <formatter name="COLOR-PATTERN">
                      <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
                  </formatter>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
                  <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:ee:4.0">
                  <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
                  <concurrent>
                      <context-services>
                          <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="false"/>
                      </context-services>
                      <managed-thread-factories>
                          <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>
                      </managed-thread-factories>
                      <managed-executor-services>
                          <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>
                      </managed-executor-services>
                      <managed-scheduled-executor-services>
                          <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/>
                      </managed-scheduled-executor-services>
                  </concurrent>
                  <default-bindings context-service="java:jboss/ee/concurrency/context/default" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:io:1.1">
                  <worker name="default" io-threads="100" task-max-threads="1000"/>
                  <buffer-pool name="default" buffer-size="16384" buffers-per-slice="128"/>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:jmx:1.3">
                  <expose-resolved-model/>
                  <expose-expression-model/>
                  <remoting-connector/>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:naming:2.0"/>
              <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
              <subsystem xmlns="urn:jboss:domain:security:1.2">
                  <security-domains>
                      <security-domain name="other" cache-type="default">
                          <authentication>
                              <login-module code="Remoting" flag="optional">
                                  <module-option name="password-stacking" value="useFirstPass"/>
                              </login-module>
                              <login-module code="RealmDirect" flag="required">
                                  <module-option name="password-stacking" value="useFirstPass"/>
                              </login-module>
                          </authentication>
                      </security-domain>
                  </security-domains>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
                  <deployment-permissions>
                      <maximum-set>
                          <permission class="java.security.AllPermission"/>
                      </maximum-set>
                  </deployment-permissions>
              </subsystem>
              <subsystem xmlns="urn:jboss:domain:undertow:3.1">
                  <buffer-cache name="default" buffer-size="1025" buffers-per-region="1054" max-regions="20"/>
                  <server name="default-server">
                      <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
                      <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
                      <host name="default-host" alias="localhost">
                          <location name="/" handler="welcome-content"/>
                          <filter-ref name="server-header"/>
                          <filter-ref name="x-powered-by-header"/>
                      </host>
                  </server>
                  <servlet-container name="default" default-encoding="UTF-8">
                      <jsp-config/>
                      <websockets/>
                  </servlet-container>
                  <handlers>
                      <file name="welcome-content" path="${jboss.home.dir}/monalitag.war"/>
                  </handlers>
                  <filters>
                      <response-header name="server-header" header-name="Server" header-value="WildFly/10"/>
                      <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
                  </filters>
              </subsystem>
          </profile>
      
          <interfaces>
              <interface name="management">
                  <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
              </interface>
              <interface name="public">
                  <inet-address value="${jboss.bind.address:0.0.0.0}"/>
              </interface>
          </interfaces>
      
          <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
              <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
              <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
              <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
              <socket-binding name="http" port="${jboss.http.port:80}"/>
              <socket-binding name="https" port="${jboss.https.port:443}"/>
          </socket-binding-group>
      
      </server>
      

       

      Thanks for help!