# 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-837 Status: open Project: perforce-software-sdp Severity: C ReportedBy: perforce ReportedDate: 2022/10/09 20:59:21 ModifiedBy: tom_tyler ModifiedDate: 2022/10/10 13:44:19 OwnedBy: perforce Description: Make force_start in p4d_N_init easier with systemd. The 'force_start' option to p4d_N_init scripts (coded in p4d_base) is easy to use when only raw SDP init scripts are used. That is, one can run 'p4d_1_init force_start' just as easily as 'p4d_1_init start'. Even the safety feature requiring systemctl to be used can be bypassed by calling the underlying init script with the force_start option. However, when systemd init scripts are used, as is typical in 2022, utilizing the force_start option while still using systemctl requires root access and familiarity with systemd to edit the systemd *.service file(s) for p4d, and then doing a 'systemctl daemon-reload' before restarting the service. Later, these steps must be undone when force starts are no longer required. Implementation Goals: * Avoid modifying the systemd *.service files, as changes to these require an update to the install mechanism. While possible, this is discouraged. Suggested Implementation: * Provide a second method of specifying a force start should be done, by touching a file /p4/N/bin/force_start. * Modify the p4d_base to check for existence of the force_start file, and if detected, behave as if 'force_start' had been used instead of start. * Make no changes to the systemd *.service file templates. Digression: Passing parameters to scripts called in systemd *.service files directly is not supported by systemd. It's possible with creative workarounds using the Environment field to read in settings from a file. For our purpose, a 'touch file' is all that is needed. Also: Document the intent of the force start option, and potential risks of using it. Without force_start, the init scripts refuse to start p4d if the databases in P4ROOT fail a 'p4d -xvU' safety check, indicating possible database corruption. Component: core-unix Type: Feature