best practices for secret_handle and secret?

Brad Fitzpatrick brad at danga.com
Wed Jun 8 09:52:27 PDT 2005


On Wed, 8 Jun 2005, Paul Crowley wrote:

> Brad Fitzpatrick wrote:
> > Heh, I did that last night too.  I even made it generate secrets too,
> > provided you gave it a storage interface.  But then I couldn't solve the
> > race condition problems inherent in a caller only providing "get" and
> > "set" for a time.  So still debating that interface.
>
> What's the race condition?

I suppose one that couldn't be fixed by documentation and warnings, but:

-- two callers who GET the secret at time t, but fail due to that secret
   not yet existing
-- both generate a new one
-- both SET secret(t) = their own random, one blowing away the other

I suppose if the setter is documented to MUST fail on duplicate, the
module can then just re-GET the value.

Obvious things like that weren't coming to me last night, which is why I
stopped working on it.

- Brad


More information about the yadis mailing list