Releases of CPN

cpn/lock were simple scripts in /grid/fermiapp/minos/scripts through Nov 17 2012

cpn became a UPS/UPD product on Nov 17

cpn v1.0

  • current 2012 Nov 17
  • CHG000000004922
  • In the lock script
    • Returns the full path to the lock file, for use by cpn
    • Uses a LOCKING hard link to avoid simultaneous locks
    • Re-counts locks after obtaining a lock, to avoid race conditions
  • In the cpn script :
    • Keeps the lock alive while cp is executing, by touching the lockfile
    • Uses the lock script in the directory from which cpn is run.
  • Deployment
    • Commited to Minos admin/bluearc
    • Packaged and deployed in UPS/UPD, /grid/fermiapp/products/common/
    • Moved the scripts to a common area, /grid/fermiapp/common/tools

cpn v1.1 ( test only )

cpn v1.2

  • CHG000000004922 deployed 2012-11-29
  • per CS-DOCDB-4933 code review
    • touches lock while copying, for reduced stale
    • improved internal locking, using DO directory
    • added locks, queues to LOG entry

cpn v1.3

  • current 2012-12-13
  • RITM0041985
  • lock fixups
    • errors to stderr
    • removed unneeded chgrp
    • added statusv and statusallv
    • added exit 0 after lock action, pedantic
    • udp passes the lock to the next user in queue
    • Test for all needed directories and control files
    • ESLEEP increased from 1000 to 3600, 1 hour
    • Test that lock file exists and is writeable
    • find LOCKS and QUEUE stderr to /dev/null
    • touch queue entry like cpn for shorter staleq
    • statusall shows locks and queues for all groups
    • CLEAN clears first 50000 log entries per iteration
    • Removed tailoring advice, instead link to WIKI

cpn v1.4

  • declared 2013-02-15, current 2013-03-06
  • lock
    • lock and queue keepalive scripts run only while the parent is present
    • perl UDP read ends if orphaned
    • status has cleaner printout
    • free corrected to send UDP to true head of QUEUE
  • cpn
    • removed debug printout
  • lockclean
    • lockclean [lockdir] for mu2epro in group mu2e

cpn v1.5


  • declared 2013-04-04, current pending
  • lock
    • use find for QUEUE only if list under SMALLQ=200
  • lockclean
    • added second qual for sleep
    • default sleep decreased from 3600 to 300 sec in case lock is handling long queues

cpn v1.6

  • CHG000000007881
  • Drivers
    • correct username in jobsub_client jobs
    • correct unlock when ifdh cp generates a proxy between lock and unlock
    • equal share of locks to each queued user
  • declared 2014-06-21
  • current 2014-06-25 13:00
  • lock ( no cpn changes )
    • Get true username from proxy with openssl, not proxy name
      • needed for jobsub_client compatibility
    • Give lock randomly to another user in queue
    • Miscellaneous cleanup
      • Remove unnecessary QCOUNT for successful LOCK, for speed
      • Direct a few more dates to stderr
      • Add a few missing newlines to diagnostic printfs
  • Issues
    • logs user as 'subject=' when using OSG based proxy
      • formerly logged the name of of proxy file
      • moot with jobsub_client

cpn v1.7

  • CHG000000008337
  • Drivers
    • Lock with OSG proxies failed, due to 'subject=' name
    • This affects Minos DST production, which fell back to cpn v1.5
    • This affects new novapro production jobs.
  • declared 2014-07-17
  • current 2014-09-18 planned
  • lock ( no cpn changes )
    • Handle case of OSG proxy, which has a name string instead of CN=UID:...
      • Minos DST production jobs fail to get locks with cpn v1.6