glassfish
  1. glassfish
  2. GLASSFISH-19588

Saving JVM Options to glassfish cluster configuration with contains the word profiler throws and error and wipes all JVM settings

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.1.2_b23
    • Fix Version/s: 4.0_b73
    • Component/s: admin_gui
    • Labels:
      None
    • Environment:

      CentOS release 6.3, Linux 2.6.32-279.11.1.el6.x86_64, Virtual Machine and Physical DAS, configuration is on NFS

      Description

      The cluster configuration is cloned from default configuration.

      When attempting to make changes to the JVM, for example adding JVM options or increase max heap size, and then clicking save, the admin GUI presents the below image and wipes the cluster configurations JVM options.

      I have been able to repeat this in various environments of ours across different DAS's.

      Example cluster names: word-profiler, wordprofilerword, profilerword

      https://www.dropbox.com/s/zrsedmgjsvfo6dt/2013-01-25_093241.png

      A diff a domain.xml and domain.xml.bak shows the backup and the running config are the same. This could be bad news in a production environment.

      diff domain.xml domain.xml.bak 
      

      Below is what is written to the DAS server.log

      [#|2013-01-25T09:32:27.917-0600|SEVERE|glassfish3.1.2|org.glassfish.admingui|_ThreadID=119;_ThreadName=Thread-2;|RestResponse.getResponse() gives FAILURE.  endpoint = 'https://localhost:4848/management/domain/configs/config/word-profiler-config/java-config/jvm-options'; attrs = '{-Djava.awt.headless=true, -Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy, -Dfile.encoding=UTF-8, -Dfelix.fileinstall.disableConfigSave=false, -Dosgi.shell.telnet.maxconn=1, "-XX:NewRatio"=2, -Dfelix.fileinstall.poll=5000, -Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed, -Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}, -Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory, -Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext, "-XX:PermSize"=64m, -Dgosh.args=--noshutdown -c noop=true, -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as, "-XX:MaxPermSize"=192m, "-XX:+UnlockDiagnosticVMOptions"=, -Dfelix.fileinstall.bundles.startTransient=true, -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false, -Dfelix.fileinstall.bundles.new.start=true, -Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/, -Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf, -Dfelix.fileinstall.log.level=3, -Dosgi.shell.telnet.ip=127.0.0.1, -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks, -server=, profiler=true, target=word-profiler-config, -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver, -Xmx512m=, -Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks, -DANTLR_USE_DIRECT_CLASS_LOADING=true}'|#]
      
      [#|2013-01-25T09:32:28.025-0600|SEVERE|glassfish3.1.2|org.glassfish.admingui|_ThreadID=119;_ThreadName=Thread-2;|RestResponse.getResponse() gives FAILURE.  endpoint = 'https://localhost:4848/management/domain/configs/config/word-profiler-config/java-config/jvm-options'; attrs = '{-Djava.awt.headless=true, -Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy, -Dfelix.fileinstall.disableConfigSave=false, -Dosgi.shell.telnet.maxconn=1, "-XX:NewRatio"=2, -Dfelix.fileinstall.poll=5000, -Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed, -Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}, -Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory, -Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext, "-XX:PermSize"=64m, -Dgosh.args=--noshutdown -c noop=true, -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as, "-XX:MaxPermSize"=192m, "-XX:+UnlockDiagnosticVMOptions"=, -Dfelix.fileinstall.bundles.startTransient=true, -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false, -Dfelix.fileinstall.bundles.new.start=true, -Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/, -Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf, -Dfelix.fileinstall.log.level=3, -Dosgi.shell.telnet.ip=127.0.0.1, -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks, -server=, profiler=true, target=word-profiler-config, -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver, -Xmx512m=, -Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks, -DANTLR_USE_DIRECT_CLASS_LOADING=true}'|#]
      
      [#|2013-01-25T09:32:28.026-0600|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=119;_ThreadName=Thread-2;|Exception Occurred :No profiler configured yet. Create a profiler first.|#]
      
      [#|2013-01-25T09:33:18.788-0600|SEVERE|glassfish3.1.2|org.glassfish.admingui|_ThreadID=46;_ThreadName=Thread-2;|RestResponse.getResponse() gives FAILURE.  endpoint = 'https://localhost:4848/management/domain/configs/config/wordprofilerword-config/java-config/jvm-options'; attrs = '{-Djava.awt.headless=true, -Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy, -Dfile.encoding=UTF-8, -Dfelix.fileinstall.disableConfigSave=false, -Dosgi.shell.telnet.maxconn=1, "-XX:NewRatio"=2, -Dfelix.fileinstall.poll=5000, -Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed, -Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}, -Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory, -Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext, "-XX:PermSize"=64m, -Dgosh.args=--noshutdown -c noop=true, -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as, "-XX:MaxPermSize"=192m, "-XX:+UnlockDiagnosticVMOptions"=, -Dfelix.fileinstall.bundles.startTransient=true, -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false, -Dfelix.fileinstall.bundles.new.start=true, -Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/, -Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf, -Dfelix.fileinstall.log.level=3, -Dosgi.shell.telnet.ip=127.0.0.1, -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks, -server=, profiler=true, target=wordprofilerword-config, -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver, -Xmx512m=, -Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks, -DANTLR_USE_DIRECT_CLASS_LOADING=true}'|#]
      
      [#|2013-01-25T09:33:18.916-0600|SEVERE|glassfish3.1.2|org.glassfish.admingui|_ThreadID=46;_ThreadName=Thread-2;|RestResponse.getResponse() gives FAILURE.  endpoint = 'https://localhost:4848/management/domain/configs/config/wordprofilerword-config/java-config/jvm-options'; attrs = '{-Djava.awt.headless=true, -Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy, -Dfelix.fileinstall.disableConfigSave=false, -Dosgi.shell.telnet.maxconn=1, "-XX:NewRatio"=2, -Dfelix.fileinstall.poll=5000, -Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed, -Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}, -Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory, -Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext, "-XX:PermSize"=64m, -Dgosh.args=--noshutdown -c noop=true, -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as, "-XX:MaxPermSize"=192m, "-XX:+UnlockDiagnosticVMOptions"=, -Dfelix.fileinstall.bundles.startTransient=true, -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false, -Dfelix.fileinstall.bundles.new.start=true, -Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/, -Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf, -Dfelix.fileinstall.log.level=3, -Dosgi.shell.telnet.ip=127.0.0.1, -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks, -server=, profiler=true, target=wordprofilerword-config, -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver, -Xmx512m=, -Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks, -DANTLR_USE_DIRECT_CLASS_LOADING=true}'|#]
      
      [#|2013-01-25T09:33:18.917-0600|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=46;_ThreadName=Thread-2;|Exception Occurred :No profiler configured yet. Create a profiler first.|#]
      

        Activity

        Hide
        Anissa Lam added a comment -

        Fx in the trunk for 4.0 release.

        Log Message:
        ------------
        GLASSFISH-19588. Fix JVM options and Profiler JVM options. Pass in "profiler=true" to the SaveJVMOptions handler.

        Revisions:
        ----------
        58811

        Modified Paths:
        ---------------
        trunk/main/appserver/admingui/common/src/main/resources/javaConfig/jvmOptions_2.inc
        trunk/main/appserver/admingui/common/src/main/resources/javaConfig/jvmProfiler_1.inc
        trunk/main/appserver/admingui/common/src/main/resources/javaConfig/jvmProfiler_2.inc

        Revisions:
        ----------
        58812
        Modified Paths:
        ---------------
        trunk/main/appserver/admingui/common/src/main/java/org/glassfish/admingui/common/handlers/InstanceHandler.java

        Show
        Anissa Lam added a comment - Fx in the trunk for 4.0 release. Log Message: ------------ GLASSFISH-19588 . Fix JVM options and Profiler JVM options. Pass in "profiler=true" to the SaveJVMOptions handler. Revisions: ---------- 58811 Modified Paths: --------------- trunk/main/appserver/admingui/common/src/main/resources/javaConfig/jvmOptions_2.inc trunk/main/appserver/admingui/common/src/main/resources/javaConfig/jvmProfiler_1.inc trunk/main/appserver/admingui/common/src/main/resources/javaConfig/jvmProfiler_2.inc Revisions: ---------- 58812 Modified Paths: --------------- trunk/main/appserver/admingui/common/src/main/java/org/glassfish/admingui/common/handlers/InstanceHandler.java

          People

          • Assignee:
            Anissa Lam
            Reporter:
            datatribe
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: