Details

      Description

      The issue can't reproduce on ee-7.0.x. LPS-52963 solved the error from the commit https://github.com/brianchandotcom/liferay-portal/pull/24334/commits/f7c8f6b7dd06c1da86fa78fe356c3f04b24ff847 handle this exception. For how reproduce the issue on ee-7.0.x, we need to add related below code. You will see this error on ee-7.0.x

      ClusterExecutorImpl.executeClusterRequest() {
      .....
      catch (Exception e) {
                  _log.error(e, e); // add this print log.
      
                  return .....;
              }
      }
      

      Reproduce steps on ee-6.2.x:
      1. Start node1, and then node2.
      2. Use some users login node2.
      3. Add debug breakpoint in MainServlet class (https://github.com/liferay/liferay-portal/blob/6.2.x/portal-impl/src/com/liferay/portal/servlet/MainServlet.java#167-167)
      Explain: the error occurs when node1 close, the code (https://github.com/liferay/liferay-portal/blob/6.2.x/portal-impl/src/com/liferay/portal/servlet/MainServlet.java#161-161) execute finished. At this time, test user logout from node2 (it will send request from node2 to node1, to tell node1 execute destroyChannel(long,long). However, the destroyCompanies() has executed finished, it means "No channel hub exists for company **" so the error occurs).

      Please refer to the below log from node1:

      涓冩湀 01, 2016 8:45:58 涓婂崍 org.apache.coyote.AbstractProtocol pause
      淇℃伅: Pausing ProtocolHandler ["http-bio-9080"]
      涓冩湀 01, 2016 8:45:58 涓婂崍 org.apache.coyote.AbstractProtocol pause
      淇℃伅: Pausing ProtocolHandler ["ajp-bio-9009"]
      涓冩湀 01, 2016 8:45:58 涓婂崍 org.apache.catalina.core.StandardService stopInte
      rnal
      淇℃伅: Stopping service Catalina
      08:45:58,332 INFO  [localhost-startStop-2][PortletHotDeployListener:525] Unregis
      tering portlets for marketplace-portlet
      08:45:58,343 INFO  [localhost-startStop-2][PortletHotDeployListener:565] 3 portl
      ets for marketplace-portlet were unregistered
      08:45:58,345 INFO  [localhost-startStop-2][HookHotDeployListener:982] Hook for m
      arketplace-portlet was unregistered
      涓冩湀 01, 2016 8:45:58 涓婂崍 org.apache.catalina.core.ApplicationContext log
      淇℃伅: Closing Spring root WebApplicationContext
      08:45:58,355 INFO  [localhost-startStop-2][PluginPackageUtil:1016] Reading plugi
      n package for marketplace-portlet
      08:45:58,369 INFO  [localhost-startStop-2][HotDeployEvent:145] Plugin create all
       the things 6.2 portlet requires marketplace-portlet
      08:45:58,371 INFO  [localhost-startStop-2][PortletHotDeployListener:525] Unregis
      tering portlets for create all the things 6.2 portlet
      08:45:58,374 INFO  [localhost-startStop-2][PortletHotDeployListener:560] 1 portl
      et for create all the things 6.2 portlet was unregistered
      涓冩湀 01, 2016 8:45:58 涓婂崍 org.apache.catalina.core.ApplicationContext log
      淇℃伅: Closing Spring root WebApplicationContext
      08:45:58,379 INFO  [localhost-startStop-2][PluginPackageUtil:1016] Reading plugi
      n package for create all the things 6.2 portlet
      08:45:58,380 WARN  [localhost-startStop-2][PluginPackageUtil:1114] Plugin packag
      e on context create all the things 6.2 portlet cannot be tracked because this WA
      R does not contain a liferay-plugin-package.xml file
      08:46:25,157 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Aut
      oDeployDir:204] Processing marketplace-portlet-6.2.0.1.war
      08:46:25,163 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Por
      tletAutoDeployListener:79] Copying portlets for D:\liferay_code\code\6.2.x\deplo
      y\marketplace-portlet-6.2.0.1.war
      08:46:25,189 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Bas
      eDeployer:880] Deploying marketplace-portlet-6.2.0.1.war
      08:46:25,192 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Bas
      eDeployer:986] Updating Marketplace from version 6.2.0.1 to version 6.2.0.1
        Expanding: D:\liferay_code\code\6.2.x\deploy\marketplace-portlet-6.2.0.1.war i
      nto D:\liferay_code\code\6.2.x\tomcat-7.0.62\temp\20160701084625194
        Copying 1 file to D:\liferay_code\code\6.2.x\tomcat-7.0.62\temp\20160701084625
      194\WEB-INF
        Copying 1 file to D:\liferay_code\code\6.2.x\tomcat-7.0.62\temp\20160701084625
      194\WEB-INF\classes
        Copying 1 file to D:\liferay_code\code\6.2.x\tomcat-7.0.62\temp\20160701084625
      194\WEB-INF\classes
        Copying 1 file to D:\liferay_code\code\6.2.x\tomcat-7.0.62\temp\20160701084625
      194\WEB-INF\jsp
      08:46:25,832 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Bas
      eDeployer:2434] Modifying Servlet 2.4 D:\liferay_code\code\6.2.x\tomcat-7.0.62\t
      emp\20160701084625194\WEB-INF\web.xml
        Copying 282 files to D:\liferay_code\code\6.2.x\tomcat-7.0.62\webapps\marketpl
      ace-portlet
        Copying 1 file to D:\liferay_code\code\6.2.x\tomcat-7.0.62\webapps\marketplace
      -portlet
        Deleting directory D:\liferay_code\code\6.2.x\tomcat-7.0.62\temp\2016070108462
      5194
      08:46:26,383 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Por
      tletAutoDeployListener:91] Portlets for D:\liferay_code\code\6.2.x\deploy\market
      place-portlet-6.2.0.1.war copied successfully. Deployment will start in a few se
      conds.
      08:46:26,386 ERROR [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Aut
      oDeployDir:217] Auto deploy failed to remove marketplace-portlet-6.2.0.1.war
      08:46:26,387 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][Aut
      oDeployDir:224] Add marketplace-portlet-6.2.0.1.war to the blacklist
      08:46:35,503 ERROR [Incoming-1,liferay-channel-control,LOANER-L4-17240][ClusterR
      equestReceiver:213] Unable to invoke method {arguments=[20155, 25602], methodKey
      =com.liferay.portal.kernel.notifications.ChannelHubManagerUtil.destroyChannel(lo
      ng,long)}
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.liferay.portal.kernel.util.MethodHandler.invoke(MethodHandler.jav
      a:61)
              at com.liferay.portal.cluster.ClusterRequestReceiver.processClusterReque
      st(ClusterRequestReceiver.java:208)
              at com.liferay.portal.cluster.ClusterRequestReceiver.doReceive(ClusterRe
      questReceiver.java:70)
              at com.liferay.portal.cluster.BaseReceiver.receive(BaseReceiver.java:70)
      
              at org.jgroups.JChannel.invokeCallback(JChannel.java:749)
              at org.jgroups.JChannel.up(JChannel.java:710)
              at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1025)
              at org.jgroups.protocols.RSVP.up(RSVP.java:188)
              at org.jgroups.protocols.FRAG2.up(FRAG2.java:181)
              at org.jgroups.protocols.FlowControl.up(FlowControl.java:400)
              at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
              at org.jgroups.protocols.pbcast.GMS.up(GMS.java:896)
              at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:245)
              at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:453)
              at org.jgroups.protocols.pbcast.NAKACK2.handleMessage(NAKACK2.java:763)
              at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:574)
              at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:147)
              at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:187)
              at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:288)
              at org.jgroups.protocols.MERGE3.up(MERGE3.java:290)
              at org.jgroups.protocols.Discovery.up(Discovery.java:359)
              at org.jgroups.protocols.TP.passMessageUp(TP.java:1263)
              at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1825)
      
              at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1793)
              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)
      Caused by: com.liferay.portal.kernel.notifications.UnknownChannelHubException: N
      o channel exists with company id 20155
              at com.liferay.portal.notifications.ChannelHubManagerImpl.getChannelHub(
      ChannelHubManagerImpl.java:263)
              at com.liferay.portal.notifications.ChannelHubManagerImpl.getChannelHub(
      ChannelHubManagerImpl.java:253)
              at com.liferay.portal.notifications.ChannelHubManagerImpl.destroyChannel
      (ChannelHubManagerImpl.java:135)
              at com.liferay.portal.kernel.notifications.ChannelHubManagerUtil.destroy
      Channel(ChannelHubManagerUtil.java:94)
              ... 31 more
      08:47:04,693 ERROR [Incoming-2,liferay-channel-control,LOANER-L4-17240][ClusterR
      equestReceiver:213] Unable to invoke method {arguments=[20155, 20199], methodKey
      =com.liferay.portal.kernel.notifications.ChannelHubManagerUtil.destroyChannel(lo
      ng,long)}
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.liferay.portal.kernel.util.MethodHandler.invoke(MethodHandler.jav
      a:61)
              at com.liferay.portal.cluster.ClusterRequestReceiver.processClusterReque
      st(ClusterRequestReceiver.java:208)
              at com.liferay.portal.cluster.ClusterRequestReceiver.doReceive(ClusterRe
      questReceiver.java:70)
              at com.liferay.portal.cluster.BaseReceiver.receive(BaseReceiver.java:70)
      
              at org.jgroups.JChannel.invokeCallback(JChannel.java:749)
              at org.jgroups.JChannel.up(JChannel.java:710)
              at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1025)
              at org.jgroups.protocols.RSVP.up(RSVP.java:188)
              at org.jgroups.protocols.FRAG2.up(FRAG2.java:181)
              at org.jgroups.protocols.FlowControl.up(FlowControl.java:400)
              at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
              at org.jgroups.protocols.pbcast.GMS.up(GMS.java:896)
              at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:245)
              at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:453)
              at org.jgroups.protocols.pbcast.NAKACK2.handleMessage(NAKACK2.java:763)
              at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:574)
              at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:147)
              at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:187)
              at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:288)
              at org.jgroups.protocols.MERGE3.up(MERGE3.java:290)
              at org.jgroups.protocols.Discovery.up(Discovery.java:359)
              at org.jgroups.protocols.TP.passMessageUp(TP.java:1263)
              at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1825)
      
              at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1793)
              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)
      Caused by: com.liferay.portal.kernel.notifications.UnknownChannelHubException: N
      o channel exists with company id 20155
              at com.liferay.portal.notifications.ChannelHubManagerImpl.getChannelHub(
      ChannelHubManagerImpl.java:263)
              at com.liferay.portal.notifications.ChannelHubManagerImpl.getChannelHub(
      ChannelHubManagerImpl.java:253)
              at com.liferay.portal.notifications.ChannelHubManagerImpl.destroyChannel
      (ChannelHubManagerImpl.java:135)
              at com.liferay.portal.kernel.notifications.ChannelHubManagerUtil.destroy
      Channel(ChannelHubManagerUtil.java:94)
              ... 31 more
      

      If lots of users logout from node2, it will have lots of exception generated so that closing down node1 will take some time.

      Expected Behavior: when node1 close down, the exception won't throw.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                shitian.zhang Shitian "Shelton" Zhang (Inactive)
                Reporter:
                hai.yu Hai Yu
                Participants of an Issue:
                Recent user:
                Csaba Turcsan
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  2 years, 25 weeks, 5 days ago

                  Packages

                  Version Package
                  6.2.X EE
                  7.0.0 DXP FP1
                  7.0.2 CE GA3
                  7.0.0 DXP SP1
                  7.0.3 CE GA4
                  Master