SDP-883 #1

  • //
  • spec/
  • job/
  • SDP-883
  • View
  • Commits
  • Open Download .zip Download (6 KB)
# The form data below was edited by tom_tyler
# Perforce Workshop Jobs
#
#  Job:           The job name. 'new' generates a sequenced job number.
#
#  Status:        Job status; required field.  There is no enforced or
#                 promoted workflow for transition of jobs from one
#                 status to another, just a set of job status values
#                 for users to apply as they see fit.  Possible values:
#
#                 open - Issue is available to be worked on.
#
#                 inprogress - Active development is in progress.
#
#                 blocked - Issue cannot be implemented for some reason.
#
#                 fixed - Fixed, optional status to use before closed.
#                 
#                 closed - Issue has been dealt with definitively.
#
#                 punted - Decision made not to address the issue,
#                    possibly not ever.
#
#                 suspended - Decision made not to address the issue
#                    in the immediate future, but noting that it may
#                    have some merit and may be revisited later.
#
#                 duplicate - Duplicate of another issue that.
#
#                 obsolete - The need behind the request has become
#                    overcome by events.
#
#  Project:       The project this job is for. Required.
#
#  Severity:      [A/B/C] (A is highest)  Required.
#
#  ReportedBy     The user who created the job. Can be changed.
#
#  ReportedDate:  The date the job was created.  Automatic.
#
#  ModifiedBy:    The user who last modified this job. Automatic.
#
#  ModifiedDate:  The date this job was last modified. Automatic.
#
#  OwnedBy:       The owner, responsible for doing the job. Optional.
#
#  Description:   Description of the job.  Required.
#
#  DevNotes:      Developer's comments.  Optional.  Can be used to
#                 explain a status, e.g. for blocked, punted,
#                 obsolete or duplicate jobs.  May also provide
#                 additional information such as the earliest release
#                 in which a bug is known to exist.
#
# Component:      Projects may use this optional field to indicate
#                 which component of the project a given job is associated
#                 with.
#
#                 For the SDP, the list of components is defined in:
#                 //guest/perforce_software/sdp/tools/components.txt
#
#  Type:          Type of job [Bug/Doc/Feature/Problem].  Required.
#                 
#                 Bug: is a problem that is fairly well understood,
#                 e.g. one for which there is a reproduction or clear
#                 articulation of the problem.
#                 
#                 Doc: A Documentation fix.
#                 
#                 Feature: An enhancement request, perhaps adding
#                 a new product features, improving maintainability,
#                 essentially any new software improvement other than
#                 a fix to something broken.
#                 
#                 Problem: a suspected bug, or one without a clear
#                 understanding of exactly what is broken.
#
#  Release:       Release in which job is intended to be fixed.

Job:	SDP-883

Status:	open

Project:	perforce-software-sdp

Severity:	C

ReportedBy:	tom_tyler

ReportedDate:	2023/02/22 16:59:53

ModifiedBy:	tom_tyler

ModifiedDate:	2023/02/22 16:59:53

OwnedBy:	tom_tyler

Description:
	On Windows, sync_replica does not reliably clean old journals.
	
	=== BEGIN LOG ===
	Observed on a customer replica's sync.log:
	Start Sync Replica
	Wed 02/22/2023
	04:00 AM
	xcopy /D /I \\P4DServer-04\F$\p4\1\checkpoints\*.* c:\p4\1\checkpoints\*.*
	\\P4DServer-04\F$\p4\1\checkpoints\p4_1.ckp.936.gz
	\\P4DServer-04\F$\p4\1\checkpoints\p4_1.ckp.936.gz.md5
	2 File(s) copied
	Determining current journal counter with 'p4 counter journal'.
	Journal counter 936 found.
	ATTRIB -r c:\p4\1\checkpoints\*.925.*                       <-- The *.925.* does not
	del c:\p4\1\checkpoints\*.925.*                                 catch the jnl file, so
	c:\p4\1\checkpoints\p4_1.jnl.925                                the ATTRIB -r is not done.
	Access is denied.                                           <-- The "Access is denied." is
	del c:\p4\1\offline_db\db.*                                     because the ATTRIB is not done.
	c:\p4\1\bin\p4d.exe -r c:\p4\1\offline_db -jr -z c:\p4\1\checkpoints\p4_1.ckp.936.gz
	Perforce db files in 'c:\p4\1\offline_db' will be created if missing...
	Recovering from c:\p4\1\checkpoints\p4_1.ckp.936.gz...
	End Sync Replica
	Wed 02/22/2023
	04:04 AM
	=== END LOG ===
	
	A possible solution is to change the 'DEL' command to 'DEL /F/Q', making the 'ATTRIB -R'
	unnecessary.
	
	Here are sample manual commands and outputs illustrating first change to the
	wildcard handling to make the ATTRIB apply to the journal, and then trying 'DEL'
	with the '/F/Q' options (thus no need for 'ATTRIB').
	
	C:\p4\1\checkpoints>ATTRIB p4_1.jnl.225
	A    R               C:\p4\1\checkpoints\p4_1.jnl.225
	
	C:\p4\1\checkpoints>ATTRIB *.226.*
	A    R               C:\p4\1\checkpoints\p4_1.ckp.226.gz
	A    R               C:\p4\1\checkpoints\p4_1.ckp.226.gz.md5
	
	C:\p4\1\checkpoints>ATTRIB *.jnl.226
	A    R               C:\p4\1\checkpoints\p4_1.jnl.226
	
	C:\p4\1\checkpoints>ATTRIB -r *.226.*
	
	C:\p4\1\checkpoints>ATTRIB -r *.jnl.226
	
	C:\p4\1\checkpoints>ATTRIB *.226.*
	A                    C:\p4\1\checkpoints\p4_1.ckp.226.gz
	A                    C:\p4\1\checkpoints\p4_1.ckp.226.gz.md5
	
	C:\p4\1\checkpoints>ATTRIB *.jnl.226
	A                    C:\p4\1\checkpoints\p4_1.jnl.226
	
	C:\p4\1\checkpoints>DEL *.226.* *.jnl.226
	
	C:\p4\1\checkpoints>DEL /F /Q *.227.* *.jnl.227

Component:	core-win

Type:	Bug
# Change User Description Committed
#1 default