Yes, this is BUG 2615271 in Oracle.
No patch exists in 8.1.7, fixed in Oracle9.
The way around this is to either
1. Bounce the instance whenever this happens (not good)
2. Upgrade if possible
3. Write a script to check for deadlocks and kill them before the error occurs.
Use this SQL:
select count(*)
from v$session_wait w,v$session s
where event='row cache lock' and state='WAITING'
and p1 in (7,10) and p2 = 0 and p3 = 3 and seconds_in_wait > 60
and w.sid = s.sid;
To check for the problem every minute/5minutes or so. Also select the username,sid,serial# every time and if there is a problem kill the user before the problem starts.
Hope it helps.
Jaco