Description
Unable to delete a User either via the GUI or SIS integration. It appears that the error is generated when attempting to remove a Course Membership record. The error appears to be triggered when removing Assignment attempts and Rubric/grading records for the use in a Course. Particularly, there appears to be more than one record in the table evaluation_entity, when the remove query for rubric_link is expecting only one record returned by a subquery of evaluation_entity.
Symptoms
SIS error log:
{noformat}
_Oct 29, 2018 01:40:45 PM - Membership [delete, xxxxx, XXXXX]_
_An error occurred while processing MembershipRemoveOperation...._
_Caused by: blackboard.persist.PersistenceRuntimeException: Could not perform database operation. An unknown error has occurred._
_Caused by: java.security.PrivilegedActionException: blackboard.persist.PersistenceException: Error running query: ERROR: more than one row returned by a subquery used as an expression_
_Where: SQL statement "DELETE FROM rubric_link WHERE eval_entity_pk1 =_
_(SELECT pk1 FROM evaluation_entity where attempt_pk1 = rec.pk1)"_
_PL/pgSQL function attempt_rm(bigint,bigint,bigint,bigint,character,bigint,character varying) line 46 at SQL statement_
_SQL statement "SELECT attempt_rm(gradebook_grade_pk1 := p1, modifier_pk1:=v_modifier_pk1, modifier_ip:=v_modifier_ip)"_
_PL/pgSQL function gradebook_grade_rm(bigint,bigint,bigint,boolean,bigint,character varying) line 16 at PERFORM_
_SQL statement "SELECT gradebook_grade_rm(p1 := myid.pk1, reset_only := false, modifier_pk1:=v_modifier_pk1, modifier_ip:=v_modifier_ip)"_
_PL/pgSQL function gradebook_grade_rm(bigint,bigint,bigint,boolean,bigint,character varying) line 53 at PERFORM_
_SQL statement "SELECT gradebook_grade_rm(course_users_pk1 := p1, modifier_pk1:=v_modifier_pk1, modifier_ip:=v_modifier_ip)"_
_PL/pgSQL function course_users_rm(bigint,bigint,bigint,character varying,character varying,timestamp without time zone,bigint,integer,character,bigint,character varying) line 112 at PERFORM_
_at java.security.AccessController.doPrivileged(Native Method)_
_at blackboard.persist.dao.impl.DAOSupport.executeInternal(DAOSupport.java:680)_
{noformat}
Steps to Replicate
Login to Blackboard Learn
Attempt to remove a User through SIS intergration
Observed Behavior:
The User is not removed and there are errors in the SIS log referring to Course Membership records
Target Release
Will Not Fix
