code: func newAdvisoryLock(db *sql.DB, stackName string) (*pglock.AdvisoryLock, error) {
  	l, err := pglock.NewAdvisoryLock(db, stackLockKey(stackName))
  	if err != nil {
  		return l, err
  	}
  	l.LockTimeout = lockTimeout
  	l.Context = fmt.Sprintf("stack %s", stackName)
  	return l, nil
  }
docs: // newAdvsiroyLock returns a new AdvisoryLock suitable for obtaining a lock to
  // perform the stack update.