<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Is it reasonable to expect to share DL_DIR between multiple builds?<br>
    <br>
    That is, are downloads properly locked so that multiple concurrent
    downloads of the same file won't collide?&nbsp; And if so, are they NFS
    safe locks?<br>
    <br>
    Or must each build download it's own copies of every component?<br>
    <br>
    I ask because our, (Palm), branch has been, but it's a bit of a
    nuisance to pick a suitable locking mechanism that is both
    functional and performant.<br>
    <ul>
      <li>Flock/lockf aren't reliably supported in heterogeneous
        environments.</li>
      <li>The old lockfiles don't work over NFS. Lock directories
        apparently do, but trying to clean these up after interruptions
        or failures is a losing battle so if we do use these, we end up
        with orphan locks periodically.</li>
      <li>With NFS as a possibility, we can't assume any kernel local
        IPC mechanism, so sysV ipc is out.</li>
      <li>It seems like a pretty huge overhead to try to create any sort
        of zeroconf overhead.</li>
    </ul>
    <p>Our solution so far has been to use NFS lock directories for
      multiple machine builds and flock/lockf for single machine
      builds.&nbsp; This mostly works, though it's not ideal, and it's
      significantly faster than downloading/copying all of the component
      source multiple times even over local mirrors.<br>
    </p>
    --rich<br>
  </body>
</html>