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)
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