CVSROOT:        /cvs
Module name:    ports
Changes by:     es...@cvs.openbsd.org   2013/07/17 23:36:55

Modified files:
        infrastructure/lib/DPB: Engine.pm Locks.pm PortBuilder.pm 
        infrastructure/lib/DPB/Job: Port.pm 

Log message:
change the way errors are handled, fixed version:
- pass error condition from Job/Port.pm all the way to the engine
- use that to know whether we fail, instead of the existence of packages
(but still keep track of what we're doing correctly, THAT'S the fix)
- refactor error handling into OO version
- keep track of locks/errors/packages we're waiting for thx to nfs

all of these keep the lock around, and react to the lock being removed.

use case for nfs: if there was a revision bump after dpb scanned the port,
it will never find the package. Removing the lock will allow dpb to rescan
and find the correct packages.

with this, dpb no longer waits after nfs. More importantly, it does not
report nfs hangs as E:, rather as H:... (and it can "wait" for much longer
periods, since it keeps running and only checks on new jobs).

Reply via email to