# 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 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-363 Status: open Project: perforce-software-sdp Severity: A ReportedBy: pgancarczyk ReportedDate: 2019/01/07 07:46:05 ModifiedBy: tom_tyler ModifiedDate: 2020/03/11 12:30:42 OwnedBy: pgancarczyk Description: Allow setup of Windows as a non-local service account. The customer explains it best: (00373607) ---------------------- When setting up a new server using the SDP, eventually I arrived at this state when first starting the new service: - The service stops immediately with a useless error message from windows. - There are no log files whatsoever. - The Windows event log says: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Perforce server" /> <EventID Qualifiers="0">0</EventID> <Level>2</Level> <Task>0</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2018-12-12T14:13:12.458353500Z" /> <EventRecordID>4078</EventRecordID> <Channel>Application</Channel> <Computer>desvcode01.brainlab.net</Computer> <Security /> </System> <EventData> <Data>Database open error on db.server! open: db.server: Access is denied.</Data> </EventData> </Event> Eventually, what I found out is this: - SDP uses instsrv to create the service. - We want to run the service not with the local system account, but with a dedicated domain account with limited permissions. - Note that instsrv actually helpfully suggests this! - Registry entries associated with the process (e.g. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\p4_1\Parameters) have permissions like files. - These keys belonged to the local system account, and the account running the service didn’t have permissions to read these. - These keys include the `p4 set -S <service> …` setting for P4ROOT and P4LOG. Without permission to read these values, the service was unable to create either the db files or the log files. ---------------------- Their suggestions on the matter: ---------------------- Suggestions: 1. In the SDP Guide, explicitly address the issue of running the service as a different user, and mention that permissions need to be fixed using regedit. 2. Even better, add an option for this in the SDP configuration and use it as `-a` parameter to instsrv. (I haven’t tried this, but it looks as if this is feature in instsrv.) 3. When failing to read the service’s parameters, produce an error message about this and fail immediately, instead of assuming an arbitrary P4ROOT and P4LOG and then failing because these are not writable. Not sure if this is possible: Are these variables set in the environment before Windows starts p4s.exe? Then this would still be helpful: 4. If the P4ROOT or P4LOG directories are not writable, show absolute paths in the error message instead of just filenames. That would help a lot in understanding what’s wrong. DevNotes: Component: core-win Type: Feature