Article - CS241618

Files that are actually referenced will get deleted when "Remove unreferenced files" and "Automated cleanup of replica vaults" are running at the same time in Windchill

Modified: 12-Jan-2022   


Applies To

  • Windchill PDMLink 10.0 F000 to 11.0 M010

Description

  • wt.fv.master.deleteUnreferencedFilesOnAutoVaultCleanup has been set to true
  • Almost at the same time, Remove unreferenced files job and Automated cleanup of replica vaults job is performed
  • The Remove unreferenced files job failed with the following exceptions
java.lang.NullPointerException
    at wt.fv.VaultCleanupAuditLogger.writeLine(VaultCleanupAuditLogger.java:104)
    at wt.fv.ReplicaCleanUp.processUnreferencedFiles(ReplicaCleanUp.java:1630)
    at wt.fv.ReplicaCleanUp.findUnreferencedFiles(ReplicaCleanUp.java:1526)
    at wt.fv.ReplicaCleanUp.cleanUpFilesInMaster(ReplicaCleanUp.java:1380)
    at wt.fv.ReplicaCleanUp.serverSide_cleanUpRemoteFolder(ReplicaCleanUp.java:904)
    at wt.fv.ReplicaCleanUp.serverRequestor_cleanUpRemoteFolder(ReplicaCleanUp.java:718)
    at wt.fv.ReplicaCleanUp.cleanUpRemoteFolder(ReplicaCleanUp.java:535)
    at wt.fv.ReplicaCleanUp.cleanUpRemoteFolder(ReplicaCleanUp.java:502)
    at com.ptc.windchill.enterprise.replication.server.RemoveUnreferencedFilesTask.performCleanUp(RemoveUnreferencedFilesTask.java:308)
    at com.ptc.windchill.enterprise.replication.server.RemoveUnreferencedFilesTask._run(RemoveUnreferencedFilesTask.java:213)
    at com.ptc.core.task.AtomicTask.run(AtomicTask.java:58)
    at com.ptc.core.task.Task.execute(Task.java:238)
    at com.ptc.core.task.Task.executeInBackground(Task.java:397)
    at com.ptc.core.task.QueueableTaskServerHelper.executeTaskInQueue(QueueableTaskServerHelper.java:163)
    at sun.reflect.GeneratedMethodAccessor2603.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at wt.queue.QueueEntry.execute(QueueEntry.java:232)
    at wt.queue.ProcessingQueue.execEntry(ProcessingQueue.java:287)
    at wt.queue.ProcessingQueue.execEntries(ProcessingQueue.java:904)
    at wt.queue.PollingQueueThread.run(PollingQueueThread.java:115)
java.lang.NullPointerException
    at wt.fv.ReplicaCleanUp.cleanUpFilesInReplicaComplete(ReplicaCleanUp.java:1306)
    at wt.fv.ReplicaCleanUp.cleanUpFilesInReplicaComplete(ReplicaCleanUp.java:1295)
    at wt.fv.ReplicaCleanUp.cleanUpFilesInMaster(ReplicaCleanUp.java:1381)
    at wt.fv.ReplicaCleanUp.serverSide_cleanUpRemoteFolder(ReplicaCleanUp.java:904)
    at wt.fv.ReplicaCleanUp.serverRequestor_cleanUpRemoteFolder(ReplicaCleanUp.java:718)
    at wt.fv.ReplicaCleanUp.cleanUpRemoteFolder(ReplicaCleanUp.java:535)
    at wt.fv.ReplicaCleanUp.cleanUpRemoteFolder(ReplicaCleanUp.java:502)
    at com.ptc.windchill.enterprise.replication.server.RemoveUnreferencedFilesTask.performCleanUp(RemoveUnreferencedFilesTask.java:308)
    at com.ptc.windchill.enterprise.replication.server.RemoveUnreferencedFilesTask._run(RemoveUnreferencedFilesTask.java:213)
    at com.ptc.core.task.AtomicTask.run(AtomicTask.java:58)
    at com.ptc.core.task.Task.execute(Task.java:238)
    at com.ptc.core.task.Task.executeInBackground(Task.java:397)
    at com.ptc.core.task.QueueableTaskServerHelper.executeTaskInQueue(QueueableTaskServerHelper.java:163)
    at sun.reflect.GeneratedMethodAccessor2603.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at wt.queue.QueueEntry.execute(QueueEntry.java:232)
    at wt.queue.ProcessingQueue.execEntry(ProcessingQueue.java:287)
    at wt.queue.ProcessingQueue.execEntries(ProcessingQueue.java:904)
    at wt.queue.PollingQueueThread.run(PollingQueueThread.java:115)
wt.util.WTException: wt.util.WTException: VaultCleanerLog is not opened for writing
ネステッド例外: wt.util.WTException: VaultCleanerLog is not opened for writing
    at wt.fv.VaultCleanupAuditLogger.writeLine(VaultCleanupAuditLogger.java:102)
    at wt.fv.ReplicaCleanUp.serverSide_cleanUpRemoteFolder(ReplicaCleanUp.java:906)
    at wt.fv.ReplicaCleanUp.serverRequestor_cleanUpRemoteFolder(ReplicaCleanUp.java:718)
    at wt.fv.ReplicaCleanUp.cleanUpRemoteFolder(ReplicaCleanUp.java:535)
    at wt.fv.ReplicaCleanUp.cleanUpRemoteFolder(ReplicaCleanUp.java:502)
    at com.ptc.windchill.enterprise.replication.server.RemoveUnreferencedFilesTask.performCleanUp(RemoveUnreferencedFilesTask.java:308)
    at com.ptc.windchill.enterprise.replication.server.RemoveUnreferencedFilesTask._run(RemoveUnreferencedFilesTask.java:213)
    at com.ptc.core.task.AtomicTask.run(AtomicTask.java:58)
    at com.ptc.core.task.Task.execute(Task.java:238)
    at com.ptc.core.task.Task.executeInBackground(Task.java:397)
    at com.ptc.core.task.QueueableTaskServerHelper.executeTaskInQueue(QueueableTaskServerHelper.java:163)
    at sun.reflect.GeneratedMethodAccessor2603.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at wt.queue.QueueEntry.execute(QueueEntry.java:232)
    at wt.queue.ProcessingQueue.execEntry(ProcessingQueue.java:287)
    at wt.queue.ProcessingQueue.execEntries(ProcessingQueue.java:904)
    at wt.queue.PollingQueueThread.run(PollingQueueThread.java:115)
  • Files that are still referenced are deleted
  • Logs of the two jobs are mixed up
  • In BackgroundMethodServer, it appears that two job threads wrote something to the same file:
[RemoveUnreferencedTaskQueue.PollingThread] wt.system.out administrator - Writing to file /apl/Windchill_10.1/Windchill/tmp/ReferencedFiles
[AutomaticVaultCleaner.SchedulingThread] wt.system.out administrator - Writing to file /apl/Windchill_10.1/Windchill/tmp/ReferencedFiles
This is a printer-friendly version of Article 241618 and may be out of date. For the latest version click CS241618