P4DTI issue job000026

TitleFields may change even when replication fails
Statusclosed
Prioritycritical
Assigned userGareth Rees
Productproject
OrganizationRavenbrook
DescriptionIf replication to TeamTrack fails after some fields have been converted, those fields will be updated anyway, despite the replication failing.
AnalysisThis happens because the converted fields are changed in the case object. This same case object is used in the call to update_action, which has the side effect of replicated (some of) the fields as well as setting the action.
How foundmanual_test
EvidenceFrom the logs during testing of release 0.3.2:

2000-10-18 15:17:09 UTC P4DTI-00 case 1 job has changed
2000-10-18 15:17:09 UTC P4DTI-00 case Replicating job 'case_BUG00017' to issue '18'
2000-10-18 15:17:10 UTC P4DTI-00 case -- Added filespec //depot/project/foom/white.css
2000-10-18 15:17:10 UTC P4DTI-00 case Issue '18' conflicts with corresponding job 'case_BUG00017'. An error occurred while trying to replicate.

Traceback (innermost last):
  File "replicator.py", line 747, in replicate_many
    self.replicate(issue, job, status)
  File "replicator.py", line 848, in replicate
    return self.replicate_job_to_issue(job, issue)
  File "replicator.py", line 960, in replicate_job_to_issue
    filespec_diffs)
  File "dt_teamtrack.py", line 166, in transform_from_job
    userid = self.dt.transform_user_p4_to_dt(job['P4DTI-user'])
  File "dt_teamtrack.py", line 690, in transform_user_p4_to_dt
    raise error, ("No TeamShare user corresponding to "
P4DTI TeamTrack interface error: No TeamShare user corresponding to Perforce user 'rb'
Observed in0.3.2
Created byRichard Brooksby
Created on2000-10-18 16:24:57
Last modified byGareth Rees
Last modified on2001-12-10 18:57:48
History2000-10-18 GDR Created during testing of release 0.3.2.

Fixes

Change Effect Date User Description
3822 closed 2000-10-27 21:47:11 Gareth Rees When updating the action fields of the issue and job when the replicator discovers a conflict, it make sure it updates the issue/job as found in the database and not the copy it has in hand, which may have changed.

This is probably not the best fix for this problem, but it's simple and quick for the alpha.