SDP-449 #5

  • //
  • spec/
  • job/
  • SDP-449
  • View
  • Commits
  • Open Download .zip Download (6 KB)
# The form data below was edited by robert_cowham
# 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 givenjob 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/Feature].  Required.
#
#  Release:       Release in which job is intended to be fixed.

Job:	SDP-449

Status:	open

Project:	perforce-software-sdp

Severity:	C

ReportedBy:	brett

ReportedDate:	2020/01/24 14:38:33

ModifiedBy:	robert_cowham

ModifiedDate:	2020/02/19 01:26:55

OwnedBy:	robert_cowham

Description:
	Add support for sidetrack servers to Windows SDP.
	
	A "sidetrack server" is an additional p4d process that shares
	the same P4ROOT as the main p4d process, but listens on a
	differnt P4PORT.  P4D uses file-locking for db.* files,
	making this a safe thing to do.
	
	Sidetrack servers have various use cases. Some info:
	* https://community.perforce.com/s/article/3132
	* https://community.perforce.com/s/article/5183
	
	The Windows implementation will need to extend the Windows
	service naming convention for Helix services from something
	like p4d_1 to maybe p4d_1 and p4d_1s or some such. It might
	even be something we can document a manual procedure for
	setting up?
	
	========
	This can be done by a editing the single .bat file which is generated as part of install process – the one which creates the service definition.
	
	From:
	<<<<< 
	C:\p4\sdp\Windows\setup>type install_services_win-b7uq3e1tn83.bat
	@echo off
	FOR /F "usebackq" %%i IN (`hostname`) DO SET HOSTNAME=%%i
	if /i "%HOSTNAME%" NEQ "win-b7uq3e1tn83" (
	  echo ERROR: This command file should only be run on machine with hostname "win-b7uq3e1tn83"
	  exit /b 1
	)
	@echo on
	c:\p4\common\bin\instsrv.exe p4_fm1 "c:\p4\fm1\bin\p4s.exe"
	c:\p4\fm1\bin\p4.exe set -S p4_fm1 P4ROOT=c:\p4\fm1\root
	c:\p4\fm1\bin\p4.exe set -S p4_fm1 P4JOURNAL=c:\p4\fm1\logs\journal
	c:\p4\fm1\bin\p4.exe set -S p4_fm1 P4NAME=fm1
	c:\p4\fm1\bin\p4.exe set -S p4_fm1 P4PORT=2111
	c:\p4\fm1\bin\p4.exe set -S p4_fm1 P4LOG=c:\p4\fm1\logs\fm1.log
	>>>> 
	
	To (noting change of "fm1" to "fm1a" at appropriate points):
	
	<<<<<<< 
	@echo off
	FOR /F "usebackq" %%i IN (`hostname`) DO SET HOSTNAME=%%i
	if /i "%HOSTNAME%" NEQ "win-b7uq3e1tn83" (
	  echo ERROR: This command file should only be run on machine with hostname "win-b7uq3e1tn83"
	  exit /b 1
	)
	@echo on
	c:\p4\common\bin\instsrv.exe p4_fm1a "c:\p4\fm1\bin\p4s.exe"
	c:\p4\fm1\bin\p4.exe set -S p4_fm1a P4ROOT=c:\p4\fm1\root
	c:\p4\fm1\bin\p4.exe set -S p4_fm1a P4JOURNAL=c:\p4\fm1\logs\journal
	c:\p4\fm1\bin\p4.exe set -S p4_fm1a P4NAME=fm1a
	c:\p4\fm1\bin\p4.exe set -S p4_fm1a P4PORT=2111
	c:\p4\fm1\bin\p4.exe set -S p4_fm1a P4LOG=c:\p4\fm1\logs\fm1a.log
	>>>>> 
	
	C:\p4\sdp\Windows\setup>p4 -p 2005 info
	:
	Server address: WIN-B7UQ3E1TN83:2005
	Server root: c:\p4\FM1\root
	Server date: 2020/01/25 12:42:39 +0000 GMT Standard Time
	Server uptime: 00:07:48
	Server version: P4D/NTX64/2019.2/1897966 (2019/12/16)
	ServerID: FM1
	Server services: commit-server
	Server license: none
	Case Handling: insensitive
	
	C:\p4\sdp\Windows\setup>p4 -p 2111 info
	:
	Server address: WIN-B7UQ3E1TN83:2111
	Server root: c:\p4\fm1\root
	Server date: 2020/01/25 12:42:43 +0000 GMT Standard Time
	Server uptime: 00:00:27
	Server version: P4D/NTX64/2019.2/1897966 (2019/12/16)
	ServerID: FM1
	Server services: commit-server
	Server license: none
	Case Handling: insensitive
	
	So the above uses same journal but a different log – not sure whether it is easier just to use same log too…

DevNotes:

Component:	core-win

Type:	Feature
# Change User Description Committed
#5 default
#4 default
#3 default
#2 default
#1 default