LLACROIX%carleton.edu@RELAY.CS.NET (Les LaCroix) (10/31/86)
We recently discovered a problem with MMS rebuilding modules using information from CMS libraries. The SPR is on the way, but I thought others would like to know. Here's the scenario, simplified from the real-life case: There are two modules within an object library; call them 'file1.obj' and 'file2.obj'. 'file1.obj' depends on 'file1.c' and 'common.h', whereas 'file2.obj' depends on 'file2.c' and 'common.h'. On October 1, user A reserves a copy of 'file1.c', makes her changes and compiles. For one reason or another, it takes user A one week to test the changes, and it is therefore October 8 when user A is ready to check 'file1.c' back in. Now, CMS saves the dates of the files just as they were online, so 'file1.c' is dated as October 1, rather than October 8. The next day MMS is invoked to rebuild the object library. Everything would be fine, except that on October 2 user B replaced 'common.h'. B had added some comments to 'common.h' shortly before replacing the module in the CMS library, so CMS stored the date for 'common.h' as October 2. The next day (October 3) MMS was invoked to update the object library. Since 'common.h' was more recent than 'file1.obj', 'file1.obj' was recreated, and dated October 3... When the rebuild of October 9 came to be, the relevant objects were dated: file1.c Oct. 1 (not Oct. 8, when it was replaced!) common.h Oct. 2 file1.obj Oct. 3 As far as MMS knows, file1.obj is up-to-date with respect to both 'file1.c' and 'common.h', so 'file1.c' is not compiled! Now, we contend that MMS should pay attention to the time a file is replaced in the CMS library, rather than the file's original date attributes. The workaround is, of course, to "touch" all files just before they are replaced in the CMS library. Somewhat unsatisfying, but it works. Les LaCroix | csnet: llacroix@carleton.edu SPSS, Inc. | uucp: ...{ihnp4,decvax}!stolaf!ccnfld!llacroix 402 Washington Street | Northfield, MN 55057-2027 | [disclaimer: I have no commercial interest in CMS/MMS. Just another disgruntled user..]