Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-5469

ws calls for find group should not cache

    XMLWordPrintable

Details

    • New Feature
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • None
    • None

    Description

      Graham Ballantyne
      12 days ago
      Running into a strange issue on 4.10.3 – if I use WS to update a group (e.g. change the description), and then immediately fetch the group again via another WS call, I'm getting stale data. The result body from the update call reflects the change, but the subsequent findGroup returns the old description. We're in a clustered setup with three nodes, so our guess is there's some per-node caching at play? If I introduce a delay between update and find it'll return the right result, but the amount of delay required isn't consistent. (edited)
      image.png

      image.png

      Tommy Doan
      12 days ago
      I can't help myself. What do you use to make those beautiful annotations?

      Graham Ballantyne
      12 days ago
      Just the builtin screenshot utility in macOS

      Graham Ballantyne
      12 days ago
      When I tried on our single-node dev environment it works fine, so that's why we're thinking cache
      :+1:
      1

      Carey Black
      11 days ago
      I would suggest a 'reasonable and short(ish)' sticky load balancer for the WS calls.

      Jeffrey F Williams
      11 days ago
      @Graham Ballantyne
      is the Group you're fetching a composite by chance?

      Chris Hyzer
      11 days ago
      when you fetch the group, are you doing findGroups with a group name or uuid or id index? if you do that it should not cache (see cache is false)
      if (hasName)

      { theGroup = GroupFinder.findByName(grouperSession, this.groupName, true, new QueryOptions().secondLevelCache(false)); }

      else if (hasUuid)

      { theGroup = GroupFinder.findByUuid(grouperSession, this.uuid, true, new QueryOptions().secondLevelCache(false)); }

      else if (hasIdIndex)

      { theGroup = GroupFinder.findByIdIndexSecure( GrouperUtil.longValue(this.idIndex), true, new QueryOptions().secondLevelCache(false)); }

      Chris Hyzer
      11 days ago
      i.e. whats the request you are doing exactly for findGroups?
      New

      Graham Ballantyne
      11 days ago
      @Jeff Williams
      no, not a composite (but this particular one does have a rule attached requiring membership in another group)

      Graham Ballantyne
      11 days ago
      @mchyzer
      I'm doing it by name

      Chris Hyzer
      < 1 minute ago
      there must be some caching going on that we are not aware of, we will need to address this since this call should not cache

      Attachments

        Activity

          People

            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: