P4DTI issue job000225

TitleIf you "p4 fix" when there's no closed state, the replicator can't replicate
Statusclosed
Priorityessential
Assigned userGareth Rees
OrganizationPerforce
DescriptionWhen you do "p4 fix -c CHANGE JOB" then Perforce sets the status of the job to "closed". If "closed" is not a legal status in Perforce then the replicator can't get at the job any more, so it fails to poll.
AnalysisWhen you do "p4 fix -s closed -c CHANGE JOBNAME" Perforce checks that "closed" is a valid status. But if you do "p4 fix -c CHANGE JOBNAME" then Perforce doesn't check to see that "closed" is a valid status, it just sets the status to "closed" regardless. So if "closed" is not a legal status then the job is illegal, and "p4 -G job -o" will fail with an error message like:
Perforce error: Error detected at line 23.
Value for field 'State' must be one of _new/assigned/resolved/verified/deferred.
We can work around this by making sure that "closed" is always a legal status.
Perforce could fix this in one of three ways: (1) check that "closed" is a legal status when someone does "p4 fix"; (2) reject jobspecs that don't have "closed" as a legal status; (3) make "p4 -G job -o" work if the job's status is "closed" but "closed" is not a valid status.
How foundmanual_test
EvidenceFound during testing of 1.0.0.
Observed in1.0.0
Test procedure<http://www.ravenbrook.com/project/p4dti/master/test/test_p4dti.py>, section 10.3
Created byGareth Rees
Created on2001-02-22 13:50:12
Last modified byGareth Rees
Last modified on2001-12-10 19:25:37
History2001-02-21 GDR Created.

Fixes

Change Effect Date User Description
8912 closed 2001-02-22 14:03:52 Gareth Rees Made sure that 'closed' is a legal job status in Perforce, so that you can't make an illegal job by doing "p4 fix".