5 Replies Latest reply on May 12, 2009 10:26 AM by alrubinger

    Default JGroups Configs

    alrubinger

      I'm swapping out the legacy bootstrap implementation for the new one, and in the process have somehow missed setting default properties for:

      jboss.partition.udpGroup
      jboss.jgroups.udp.mcast_port

      ...when they're not explicitly specified. Leaving these out results in the trace below. Manually supplying them gets me a full boot.

      Who knows where the existing default are specified, or what the default values should be (so that I may set them accordingly during then configuration initialization phase)?

      S,
      ALR

      14:32:03,539 ERROR [ExceptionUtil] org.jboss.messaging.core.jmx.MessagingPostOfficeService@116639 startService
      java.lang.IllegalStateException: Invalid parameter mcast_addr= in stack UDP(discard_incompatible_packets=true;ucast_recv_buf_size=20000000;oob_thread_pool.enabled=true;mcast_addr=;thread_pool.max_threads=200;loopback=true;oob_thread_pool.keep_alive_time=5000;mcast_recv_buf_size=25000000;max_bundle_size=64000;oob_thread_pool.min_threads=1;thread_pool.min_threads=20;ucast_send_buf_size=640000;tos=8;ip_ttl=2;thread_pool.keep_alive_time=5000;oob_thread_pool.queue_max_size=100;thread_naming_pattern=cl;use_concurrent_stack=true;mcast_send_buf_size=640000;mcast_port=;oob_thread_pool.rejection_policy=run;singleton_name=shared-udp;oob_thread_pool.max_threads=20;oob_thread_pool.queue_enabled=false;thread_pool.queue_enabled=true;thread_pool.queue_max_size=1000;timer.num_threads=12;thread_pool.enabled=true;max_bundle_timeout=30;use_incoming_packet_handler=true;thread_pool.rejection_policy=discard;enable_bundling=false):PING(timeout=2000;num_initial_members=3):MERGE2(max_interval=100000;min_interval=20000):FD_SOCK:FD(timeout=6000;max_tries=5;shun=true):VERIFY_SUSPECT(timeout=1500):BARRIER:pbcast.NAKACK(exponential_backoff=150;use_mcast_xmit=true;gc_lag=0;use_stats_for_retransmission=false;discard_delivered_msgs=true;retransmit_timeout=50,300,600,1200):UNICAST(timeout=300,600,1200,2400,3600):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=400000):VIEW_SYNC(avg_send_interval=10000):pbcast.GMS(print_local_addr=true;join_timeout=3000;view_bundling=true;shun=true):FC(max_credits=500000;ignore_synchronous_response=true;min_threshold=0.20):FRAG2(frag_size=60000):pbcast.STATE_TRANSFER:pbcast.FLUSH(timeout=20000)
       at org.jboss.ha.framework.server.JChannelFactory.getTransportProperties(JChannelFactory.java:811)
       at org.jboss.ha.framework.server.JChannelFactory.createMultiplexerChannel(JChannelFactory.java:242)
       at org.jboss.ha.framework.server.JChannelFactory.createMultiplexerChannel(JChannelFactory.java:309)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:414)
       at javax.management.StandardMBean.invoke(StandardMBean.java:323)
       at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
       at org.jboss.messaging.core.impl.jchannelfactory.MultiplexerChannelFactory.createControlChannel(MultiplexerChannelFactory.java:130)
       at org.jboss.messaging.core.impl.postoffice.GroupMember.start(GroupMember.java:116)
       at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.start(MessagingPostOffice.java:367)
       at org.jboss.messaging.core.jmx.MessagingPostOfficeService.startService(MessagingPostOfficeService.java:462)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:376)
       at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:269)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
       at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:138)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)
       at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:140)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
       at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
       at $Proxy38.start(Unknown Source)
       at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
       at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
       at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
       at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
       at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
       at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
       at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
       at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
       at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
       at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
       at org.jboss.system.ServiceController.start(ServiceController.java:460)
       at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
       at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
       at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
       at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
       at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
       at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
       at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
       at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
       at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
       at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
       at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
       at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
       at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
       at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
       at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:266)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:101)
       at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:702)
       at org.jboss.bootstrap.impl.base.server.AbstractServer.start(AbstractServer.java:335)
       at org.jboss.bootstrap.impl.as.server.JBossASServerImpl.start(JBossASServerImpl.java:301)
       at org.jboss.Main.boot(Main.java:384)
       at org.jboss.Main$1.run(Main.java:734)
       at java.lang.Thread.run(Thread.java:595)


        • 1. Re: Default JGroups Configs
          jaikiran

          This gave some clue http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Clustering_Guide/4/html/jbosscache-jgroups-transport-udp.html

          Turns out, this configuration comes from a xml file JBOSS_HOME/server/all/deploy/cluster/jgroups-channelfactory.sar/META-INF/jgroups-channelfactory-stacks.xml :

          <UDP
           singleton_name="udp-async"
           mcast_port="${jboss.jgroups.udp_async.mcast_port:45689}"
           mcast_addr="${jboss.partition.udpGroup:228.11.11.11}"


          So based on this syntax, if the jboss.partition.udpGroup property is not set, then it defaults to 228.11.11.11. I guess, the code parsing this xml file should have taken care of setting this mcast_addr correctly.


          • 2. Re: Default JGroups Configs
            brian.stansberry

            Yep, jaikiran's correct. Those properties are very often not set and the default comes from the system property substitution logic. Can you think of anything you might have done that would interfere with that? Somehow setting the property to "" ???

            • 3. Re: Default JGroups Configs
              alrubinger

               

              "bstansberry@jboss.com" wrote:
              Somehow setting the property to "" ???


              That's what I'm looking at now. :)

              S,
              ALR

              • 4. Re: Default JGroups Configs
                alrubinger

                I'm brilliant:

                // Adjust for null
                 String valueToSet = value;
                 if (valueToSet == null)
                 {
                 valueToSet = "";
                 }
                
                 // Set
                 SecurityActions.setSystemProperty(key, valueToSet);


                Wonderful coding, Andy! (Thumbs down). Thanks, guys. :D

                S,
                ALR

                • 5. Re: Default JGroups Configs
                  alrubinger

                  https://jira.jboss.org/jira/browse/JBBOOT-72

                  And the failing case:

                  /**
                   * Ensures that the partitioning properties are not initialized,
                   * and return null from {@link System#getProperty(String)}
                   *
                   * JBBOOT-72
                   */
                   @Test
                   public void testClusteringPropertiesUninitialized() throws Throwable
                   {
                   // Log
                   log.info("testClusteringPropertiesUninitialized");
                  
                   // Initialize
                   server.initialize();
                  
                   // Define property keys
                   final String udpGroupPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_GROUP;
                   final String udpPortPropKey = JBossASServerConfig.PROP_KEY_JBOSSAS_PARTITION_UDP_PORT;
                  
                   // Get Properties from System
                   final String udpGroupFromSystem = System.getProperty(udpGroupPropKey);
                   final String udpPortFromSystem = System.getProperty(udpPortPropKey);
                  
                   // Ensure null
                   final String failMessage = "Expected non-defaulted property value to be null from system property";
                   TestCase.assertNull(failMessage, udpGroupFromSystem);
                   TestCase.assertNull(failMessage, udpPortFromSystem);
                   }


                  S,
                  ALR