Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-5228

5.0.1 - JBoss Installation error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not an issue
    • Neutral
    • None
    • 5.0.1
    • None
    • None
    • Linux, JBoss EAP 6.1

    Description

      This is in parts a duplicate to: http://forum.magnolia-cms.com/forum/thread.html?threadId=7e6ba798-b03e-462a-823e-2e1f3441c64b&forumId=caf52257-62a1-40c4-8da7-cefb66785062

      On a closed environment, we are deploying against a JBoss EAP 6.1 server (JBoss 7.1). There we stumbled upon the following issue that is turning into a complete hold on our end:

      We configured a proper repository location and use postgres instead:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN" "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
      <Repository>
        <DataSources>
          <DataSource name="magnolia">
               <param name="driver" value="javax.naming.InitialContext"/>
               <param name="url" value="java:jboss/datasources/magCMS"/>
               <param name="databaseType" value="postgres "/>
            </DataSource>
        </DataSources>
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
           <param name="path" value="${rep.home}/repository" />
        </FileSystem>
        <Security appName="magnolia">
          <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"/>
          <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
          </AccessManager>
          <!-- login module defined here is used by the repo to authenticate every request. not by the webapp to authenticate user against the webapp context (this one has to be passed before thing here gets invoked -->
          <LoginModule class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule">
          </LoginModule>
        </Security>
        <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
          <param name="path" value="${rep.home}/repository/datastore"/>
          <param name="minRecordLength" value="1024"/>
        </DataStore>
        <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
        <Workspace name="default">
          <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}/default" />
          </FileSystem>
          <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
            <param name="dataSourceName" value="magnolia"/>
            <param name="schemaObjectPrefix" value="pm_${wsp.name}_" />
          </PersistenceManager>
          <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${wsp.home}/index" />
            <param name="useCompoundFile" value="true" />
            <param name="minMergeDocs" value="100" />
            <param name="volatileIdleTime" value="3" />
            <param name="maxMergeDocs" value="100000" />
            <param name="mergeFactor" value="10" />
            <param name="maxFieldLength" value="10000" />
            <param name="bufferSize" value="10" />
            <param name="cacheSize" value="1000" />
            <param name="forceConsistencyCheck" value="false" />
            <param name="autoRepair" value="true" />
            <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" />
            <param name="resultFetchSize" value="100" />
            <param name="extractorPoolSize" value="3" />
            <param name="extractorTimeout" value="100" />
            <param name="extractorBackLogSize" value="100" />
          </SearchIndex>
          <WorkspaceSecurity>
            <AccessControlProvider class="info.magnolia.cms.core.MagnoliaAccessProvider" />
          </WorkspaceSecurity>
        </Workspace>
        <Versioning rootPath="${rep.home}/version">
          <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/workspaces/version" />
          </FileSystem>
          <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
            <param name="dataSourceName" value="magnolia"/>
            <param name="schemaObjectPrefix" value="version_" />
          </PersistenceManager>
        </Versioning>
      </Repository>
      

      We added a custom configuration, which gets loaded just fine:

      # the directories in which the bootstrap files are searched
      #magnolia.temp.home=/home/jboss/standalone/temp/devAuthor/
      magnolia.bootstrap.dir=WEB-INF/bootstrap/author WEB-INF/bootstrap/common
      magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-postgres-custom-search.xml
      #magnolia.cache.startdir=${magnolia.temp.home}/cache
      #magnolia.upload.tmpdir=${magnolia.temp.home}/tmp
      #magnolia.exchange.history=${magnolia.temp.home}/history
      #magnolia.repositories.home=${magnolia.temp.home}/repositories
      #magnolia.logs.dir=${magnolia.temp.home}/logs
      

      We modified jboss appropriately as described in the wiki (created the jboss-deployment-structure.xml & modified jboss to include bouncycastle)

      Due to restrictions we are deploying using cli:

      /opt/jboss/bin/jboss-cli.sh --commands="deploy standalone/deployment/devAuthor.war --name=devAuthor.war --runtime-name=devAuthor.war"
      

      The first deployment & installation runs fine and the system operates normally.

      However, on a subsequent installation, we receive a range of errors that relate to the way jboss is temporarily extracting the files on deployment. Several Warning with regards to missing nodes are thrown:

      13:22:26,651 INFO  [stdout] (ServerService Thread Pool -- 52) 2013-08-07 13:22:53,743 INFO  [stdout] (ServerService Thread Pool -- 52) 2013-08-07 13:22:53,739 WARN  org.apache.jackrabbit.core.value.BLOBInDataStore  : getSize for cbdcff8dfbfe81e32f17f765720dd7dc7bdae269 failed
      13:22:53,743 INFO  [stdout] (ServerService Thread Pool -- 52) org.apache.jackrabbit.core.data.DataStoreException: Record cbdcff8dfbfe81e32f17f765720dd7dc7bdae269 does not exist
      

      As well as classes that aren't loaded:

      13:23:05,617 INFO  [stdout] (ServerService Thread Pool -- 52) 2013-08-07 13:23:05,611 ERROR info.magnolia.module.ModuleManagerImpl            : Can't start module ui-framework
      
      ---
      
      13:23:05,624 INFO  [stdout] (ServerService Thread Pool -- 52) Caused by: java.lang.ClassNotFoundException: info.magnolia.ui.vaadin.richtext.MagnoliaRichTextField from [Module "deployment.devAuthor.war:main" from Service Module Loader]
      

      Setting the properties to specific locations for the caching & tmpdirs gets rid of the warnings at least, but the module error remains.

      I got a feeling this has to do with the relative tmp directories that are being used by jboss, but since we cannot use the deployment scanner, I fear that there is no way for us to explode the war files on deployment.

      Is there any workaround we could use to make this work?

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              had Jan Haderka
              madppiper Paul Piper
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Checklists

                  Bug DoR
                  Task DoD