Uploaded image for project: 'Service Packs and Hot Fixes'
  1. Service Packs and Hot Fixes
  2. MNT-4211

'patch.convertContentUrls' (3.3 Community, 3.2SP1) can result in "No ContentData value exists for ID" errors

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.2.1, 3.3
    • Fix Version/s: 3.2.1 HF, 3.2.2, 3.3
    • Component/s: Repository
    • Labels:
      None
    • Environment:
      CENTOS 5.4 VM
      Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
      JAVA_OPTS="-Xss1024K -Xms1G -Xmx2G -XX:MaxPermSize=128M -XX:NewSize=512m -server"

      Description

      Upgrade to 3.2SP1 or 3.3 Community can gives "No ContentData" errors when accessing certain spaces within the DM repository from the web client.

      A full index rebuild in 3.3 also reports many "No ContentData" errors in the Reindexer. For example:
      00:05:03,131 ERROR [index.AbstractReindexComponent.threads] Reindexer 320 failed with error: No ContentData value exists for ID 298342

      == Analysis ==

      'patch.convertContentUrls' runs concurrent batch jobs to perform the work. Due to a bug in AbstractPatchDAOImpl.updateAdmV31ContentProperties, some nodes can be left pointing to non-existent ContentData entries.

      == Detecting the Failure ==

      Run the following SQL after an upgrade to detect if a problem was caused:
      select * from alf_node_properties np
      left join alf_content_data cd on (cd.id = np.long_value)
      where np.actual_type_n = 21
      and cd.id is null
      Any returned results indicate an error

      == Switching off the Patch ==

      This patch can be switched off and executed at will at a later date. Add the following bean to an extension context:
      <bean id="patch.convertContentUrls" class="java.util.ArrayList" />
      <bean id="contentUrlConverterJobDetail" class="java.util.ArrayList"/>
      <bean id="contentUrlConverterTrigger" class="java.util.ArrayList"/>
      or set the following property to alfresco-global.properties:
      system.content.contentUrlConverter.runAsScheduledJob=true
      Applying the former bean overrides is better as you won't need to manually trigger the patch when the fix is available later on.

      == Recovery ==

      If the patch has executed and there ARE problem rows, you should either go back to a backup and upgrade without the patch or get a copy of the data from before the upgrade. Contact Alfresco support who will help to fix the specific database entries.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                closedbugs Closed Bugs
                Reporter:
                andrewlove Andrew Love (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: