2 This patch fixes migration SQL not to migrate a job that has not
3 terminated, or in otherwords do not migrate a running job.
4 This is a partial fix to bug #1164.
6 Any prior patches to src/dird/migration must already be applied.
7 Apply it to 2.4.2 with:
10 patch -p0 <2.4.2-migration-deadlock.patch
11 ./configure <your-options>
17 Index: src/dird/migrate.c
18 ===================================================================
19 --- src/dird/migrate.c (revision 7729)
20 +++ src/dird/migrate.c (working copy)
22 const char *sql_jobids_from_mediaid =
23 "SELECT DISTINCT Job.JobId,Job.StartTime FROM JobMedia,Job"
24 " WHERE JobMedia.JobId=Job.JobId AND JobMedia.MediaId IN (%s)"
26 + " AND Job.Type='B' AND Job.JobStatus = 'T'"
27 " ORDER by Job.StartTime";
29 /* Get the number of bytes in the pool */
31 " (SELECT DISTINCT Job.JobId from Pool,Job,Media,JobMedia WHERE"
32 " Pool.Name='%s' AND Media.PoolId=Pool.PoolId AND"
33 " VolStatus in ('Full','Used','Error','Append') AND Media.Enabled=1 AND"
35 + " Job.Type='B' AND Job.JobStatus = 'T' AND"
36 " JobMedia.JobId=Job.JobId AND Job.PoolId=Media.PoolId)";
38 /* Get the number of bytes in the Jobs */
40 "SELECT DISTINCT Job.JobId from Pool,Job,Media,JobMedia WHERE"
41 " Pool.Name='%s' AND Media.PoolId=Pool.PoolId AND"
42 " VolStatus in ('Full','Used','Error') AND Media.Enabled=1 AND"
44 + " Job.Type='B' AND Job.JobStatus = 'T' AND"
45 " JobMedia.JobId=Job.JobId AND Job.PoolId=Media.PoolId"
46 " AND Job.RealEndTime<='%s'";