2 Replies Latest reply on Nov 23, 2010 5:47 PM by Gerald Turner

    Slave node boot failure on JBoss 5.1.0

    Gerald Turner Newbie

      Slave nodes fail to boot near jmx-console deployment with bits about "profile" installation for the "farm" which results in an "IOException: No such file or directory" while trying to create a temporary file.

       

      What's unique about this JBoss installation is that the server/all directory has been copied and renamed to server/jboss1.

       

      Master node boots up fine.  I've even restarted the cluster with having different servers booting first as the master node so there's nothing unusual (i.e. permissions, missing dirs, etc.) about any particular node since each server has no problem running as master.

       

      The most concise error message is:

       

      2010-11-23 11:41:38,280 ERROR [org.jboss.system.server.profileservice.repository.ScopedProfileServiceController] (main:) Error installing to Create: name=ProfileKey@7433c78b[domain=default, server=default, name=farm] state=Configured mode=On Demand requiredState=Installed
      java.lang.reflect.InvocationTargetException
          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:597)
          at org.jboss.system.server.profileservice.repository.AbstractProfileLifeCycleAction.invoke(AbstractProfileLifeCycleAction.java:97)
          at org.jboss.system.server.profileservice.repository.AbstractProfileLifeCycleAction.invoke(AbstractProfileLifeCycleAction.java:77)
          at org.jboss.system.server.profileservice.repository.AbstractProfileLifeCycleAction.install(AbstractProfileLifeCycleAction.java:49)
          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:271)
          at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
          at org.jboss.Main.boot(Main.java:221)
          at org.jboss.Main$1.run(Main.java:556)
          at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.RuntimeException: java.io.IOException: No such file or directory
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.rethrowAsUnchecked(DefaultRepositoryClusteringHandler.java:951)
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.installModifications(DefaultRepositoryClusteringHandler.java:630)
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.synchronizeContent(DefaultRepositoryClusteringHandler.java:324)
          at org.jboss.system.server.profileservice.repository.clustered.ClusteredDeploymentRepository.load(ClusteredDeploymentRepository.java:255)
          at org.jboss.system.server.profile.repository.AbstractProfile.create(AbstractProfile.java:158)
          ... 22 more
      Caused by: java.io.IOException: No such file or directory
          at java.io.UnixFileSystem.createFileExclusively(Native Method)
          at java.io.File.checkAndCreate(File.java:1704)
          at java.io.File.createTempFile(File.java:1792)
          at org.jboss.system.server.profileservice.repository.clustered.local.file.FileUtil.createTempFile(FileUtil.java:100)
          at org.jboss.system.server.profileservice.repository.clustered.local.file.AbstractLocalContentChangeAction.createTempFile(AbstractLocalContentChangeAction.java:225)
          at org.jboss.system.server.profileservice.repository.clustered.local.file.AbstractFileWriteAction.getTempFile(AbstractFileWriteAction.java:124)
          at org.jboss.system.server.profileservice.repository.clustered.local.file.AbstractFileWriteAction.getOutputStream(AbstractFileWriteAction.java:114)
          at org.jboss.system.server.profileservice.repository.clustered.local.file.AbstractFileWriteAction.writeBytes(AbstractFileWriteAction.java:72)
          at org.jboss.system.server.profileservice.repository.clustered.local.file.FileWriteAction.writeBytes(FileWriteAction.java:62)
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.executePullFromPeer(DefaultRepositoryClusteringHandler.java:754)
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.executePull(DefaultRepositoryClusteringHandler.java:702)
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.executeSynchronizationActions(DefaultRepositoryClusteringHandler.java:677)
          at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.installModifications(DefaultRepositoryClusteringHandler.java:592)
          ... 25 more

       

      Attaching the server.log output with DEBUG.

        • 1. Re: Slave node boot failure on JBoss 5.1.0
          Gerald Turner Newbie

          Found it.

           

          Started the slave node with a debugger.

           

          The temporary directory the deployment repository is trying it use is server/jboss1/temp/cluster-repo.  This is configured in server/conf/bootstrap/profile.xml:

           

            <bean name="FilesystemLocalContentManagerFactory"
                   class="org.jboss.system.server.profileservice.repository.clustered.local.file.FilesystemLocalContentManagerFactory">
                <property name="metadataPersister"><inject bean="ClusteredDeploymentRepositoryMetadataPersister"/></property>
                <property name="tempDirURI">${jboss.server.home.url}temp${/}cluster-repo</property>
             </bean>

           

          Our servers have some restrictive permissions set to keep them from building cruft over the years and in particular the server/jboss1 dir is not writable.

           

          I believe this configuration parameter should be set to:

           

            ${jboss.server.temp.dir}/cluster-repo

          1 of 1 people found this helpful