> One of my CAS Servers (3.2.1) is having a problem with deadlocks.

It's a known issue and appears to be caused in part by the design of
JpaTicketRegistry.  The root problem is lock escalation caused by
parent-child relationships between TGT and ST tables.  An example flow
that illustrates the problem:

 1. Obtain read lock on parent TGT row
 2. Insert ST with FK reference to TGT row
 3. Upgrade lock on parent TGT to update lastUsedTimestamp and other metadata

The problem is at 3.  While this flow doesn't make clear how a
circular lock condition is obtained, I'm fairly certain the root cause
is lock escalation.  Additionally, the locking details are entirely
platform specific.  Oracle handles this the best, followed by MSSQL,
with PostgreSQL coming in distant third.

I hope to address these design issues for CAS 4, but you should try to
triage the problem for now.  I'd recommend testing additional indices
or dropping the FK reference between TGT and ST -- that helped in the
case of PostgreSQL.

M

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to