Changes between Version 18 and Version 19 of NuWa_Slave

Show
Ignore:
Timestamp:
09/17/10 17:06:32 (14 years ago)
Author:
blyth (IP: 140.112.102.77)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NuWa_Slave

    v18 v19  
    4644642 lists of hostnames for "opt.dybinst" and "dybinst" builds. 
    465465  
    466 The '''copy''' step of the '''opt''' builds copies to : {{{ <dyb_copybase>/opt/Nuwa-<revision> }}}  
    467 rather than the normal : {{{<dyb_copybase>/NuWa-<revision>}}} where '''dyb_copybase''' is configured in  
    468 for examples '''~/.dybinstrc''' . 
    469   * not configuring it prevents the copy from being done 
     466 
    470467 
    471468 
     
    481478  
    482479 
    483 = ''dybbin'' Approach Under Discussion = 
    484  
    485  
    486   * '''dybbin''' allows a NuWa installation to be copied to another location 
    487  
    488 == email to David, Jiajie == 
    489  
    490 {{{ 
    491  I like the elimination of a separate build in this dybbin 
    492  approach however I see several problems with usage of update builds 
    493  and externally imposed cron dybbin,  my suggested solutions : 
    494  
    495   * Update build 
    496        Are promoting usage of an update build, 
    497        which is prone to breakage on data model changes and is generally 
    498        the subject of negative prejudice. 
    499  
    500        Can eliminate this issue by making the dybinst command used by the slave 
    501           "./dybinst -c trunk project dybgaudi" 
    502        do a refresh when data model changes are detected. 
    503  
    504  Enforcing external cron cut-off times introduces issues (and leads to 
    505  complicated workarounds) : 
    506  
    507    * A build can be in-progress at cron dybbin time or the last build 
    508      can be broken ... meaning there is no valid build to copy. 
    509  
    510    * Uncoordinated between sites, the prevalent build at dybbin time 
    511      may differ between sites according to speed/breakage differences between slaves. 
    512  
    513  To avoid these issues (and complicated workarounds), 
    514  I suggest not to impose an external cron job but rather to to add a 
    515  final step to the dybinst slave build that (if the tests succeeded) 
    516  performs a dybbin copy "installation" into a directory named after the revision. 
    517  And performs purging to remove excess revision directories. 
    518  
    519 > One possible problem with this scheme is that our 'daily' might not match the 
    520 > 'daily' elsewhere, but I think that could be handled, perhaps by having the master 
    521 > define the revision number corresponding to the current 'daily'. 
    522  
    523  
    524  Concerning coordination between slaves (although I have implemented 
    525  such a system in the ad-hoc daily.bash) I think supporting and explaining 
    526  complex procedures for this is not worth the effort/confusion. 
    527  
    528  Simply referring to builds by their real name : '''the revision number''' 
    529  and not the date eliminates the issue and benefits from direct 
    530  correspondence between the state of builds reported in the web interface 
    531  (including the timeline). 
    532  
    533  Users will want to use a build after a particular 
    534  feature has been added (or bug removed) ... thus they should 
    535  know the minimum revision they want. 
    536  They can then look for a corresponding build that the slave on 
    537  their cluster succeeded to build at : 
    538     http://dayabay.ihep.ac.cn/tracs/dybsvn/build/dybinst 
    539  
    540 Yours, Simon 
    541 }}} 
    542  
    543  
    544  
     480= dybinst copy step = 
     481 
     482The final copy step of builds allows the update build directory to be  
     483copied ( using ''dybbin pack/unpack/setup'' ) into a revision named directory. 
     484 
     485When enabled this prevents breakage of trunk from hindering progress by allowing  
     486users to trivially shift a recent prior revision. 
     487 
     488== when builds/tests fail == 
     489 
     490If a build fails (eg dybgaudi fails to compile) then the copy step is not reached  
     491and no copy is made.  However if the build completes but some of the tests fail then 
     492the copy is still done by the name of the copied directory is changed to indicate the  
     493number of failed tests. 
     494 
     495== configuration of the copy step == 
     496 
     497The copy is configured by means of variables '''dyb_copy..''' in envfiles  
     498such as  '''~/.dybinstrc'''.  
     499To allow separate configuration for debug and opt builds variants of the config vars ending  
     500with '''_opt''' or '''_dbg''' are accepted that take precendence over the generic vars. 
     501 
     502  * '''dyb_copybase''' : directory to which revision directories are copyied, not configuring this or the '''_dbg/_opt''' variant prevents the copying from being done 
     503  * '''dyb_copykeep''' : number of revision directories to be retained (defaults to 10, can have different opt/dbg settings using '''_dbg/_opt'''), others are purged 
     504   
     505Currently the purge algorithm decides what to purge/retain based on  
     506  * modification time of the revision directory 
     507  * number of symbolic links within '''dyb_copybase''' that point to the revision directory   
     508   
     509 
     510 
     511 
     512 
     513 
     514 
     515 
     516 
     517