Behind the Blackboard! Resolving Foreign Constraint Violation on "collab_session_fk3" When Trying to Delete old Courses - Behind the Blackboard Skip Navigation
Download PDF  Icon Download PDF    Print article

Resolving Foreign Constraint Violation on "collab_session_fk3" When Trying to Delete old Courses

Date Published: Aug 29,2023


CategoryPlanned First Fix Release:Will Not Fix,Will Not Fix; Product:Extensions,Known Issues & Error Messages; Version:Learn 9.1 3900.67.0,Learn 9.1 3900.69.0,Learn 9.1 3900.71.0,Learn 9.1 3900.74.0,Web Conferencing,SaaS
Article No.: 000077894
Product:
Blackboard Learn
Release:
9.1;SaaS
Service Pack(s):
Learn 9.1 3900.67.0, Learn 9.1 3900.69.0, Learn 9.1 3900.71.0, Learn 9.1 3900.74.0, Web Conferencing, SaaS
Description:
In courses that had legacy Collaborate Original, the course sometimes cannot be deleted due to a foreign key constraint violation on collab_session_fk3
Steps to Repeat:
The steps to replicate this issue are unknown. All examples shown to the company are very old. Legacy Collaborate has been discontinued and no longer functions in order to perform any potential replication.

Symptoms:

The delete fails with the following exception recorded in the logs
 
YYYY-MM-DD HH:MM:SS -TZTZ - [ERROR] Failed deleting course COURSE_ID_HERE - blackboard.persist.PersistenceException: A database error occurred.
	at blackboard.persist.impl.AbstractBaseDbPersister.runQuery(AbstractBaseDbPersister.java:199)
	at blackboard.persist.impl.AbstractBaseDbPersister.runQuery(AbstractBaseDbPersister.java:139)
	at blackboard.persist.course.impl.CourseDbPersisterImpl.deleteById(CourseDbPersisterImpl.java:303)
	at blackboard.persist.course.impl.CourseDbPersisterImpl.deleteById(CourseDbPersisterImpl.java:284)
	at blackboard.data.course.impl.CourseManagerImpl.remove(CourseManagerImpl.java:220)
	at blackboard.apps.platform.course.CourseDeleteQueuedOperation.execute(CourseDeleteQueuedOperation.java:137)
	at blackboard.platform.queue.QueuedTaskManager.processTask(QueuedTaskManager.java:488)
	at blackboard.platform.queue.QueuedTaskManager$WorkerThread.doRun(QueuedTaskManager.java:937)
	at blackboard.db.LeakCheckThread.run(LeakCheckThread.java:38)
Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table "groups" violates foreign key constraint "collab_session_fk3" on table "collab_session"
  Detail: Key (pk1)=(nnnnnn) is still referenced from table "collab_session".
  Where: SQL statement "DELETE FROM groups a WHERE a.crsmain_pk1=v_crsmain_pk1"
PL/pgSQL function groups_rm(bigint,bigint) line 37 at SQL statement
SQL statement "SELECT groups_rm(crsmain_pk1 := p1)"
PL/pgSQL function course_main_rm(bigint,character varying,timestamp without time zone,integer) line 37 at PERFORM
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413)
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190)
	at org.postgresql.jdbc.PgCallableStatement.executeWithFlags(PgCallableStatement.java:84)
	at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:177)
	at jdk.internal.reflect.GeneratedMethodAccessor284.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:118)
	at com.sun.proxy.$Proxy64.execute(Unknown Source)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at blackboard.db.impl.MonitoringConnectionPool$SQLRecorder.execute(MonitoringConnectionPool.java:225)
	at blackboard.db.impl.MonitoringConnectionPool$MonitoringCallableStatement.execute(MonitoringConnectionPool.java:667)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at blackboard.db.impl.SafetyNetCallableStatement.execute(SafetyNetCallableStatement.java:58)
	at blackboard.persist.impl.StoredProcedureQuery.doExecute(StoredProcedureQuery.java:319)
	at blackboard.persist.impl.Query.executeQuery(Query.java:143)
	at blackboard.persist.impl.AbstractBaseDbPersister$DbConnectivityPrivilege.run(AbstractBaseDbPersister.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at blackboard.persist.impl.AbstractBaseDbPersister.runQuery(AbstractBaseDbPersister.java:170)
	... 8 more

 


Resolution/Workaround:

  1. If necessary: re-enable the course
  2. Enter the course
  3. Go to Users & Groups ➔ Groups ➔ Group Sets
  4. Check the boxes on all group sets
  5. Click delete
  6. Retry the course deletion

Information:

All issues are important, but some issues naturally take precedence over others. After carefully reviewing this issue we have determined this issue should not be fixed.
  • The issue is reported solely in conjunction with the long-discontinued Original Collaborate product line
  • There is an easy workaround
  • The impact of the issue is minimal.
  • It is not possible for new instances of this issue to be created. Class Collaborate (Formerly: Collaborate Ultra) which is the sole supported product of the Collaborate line is not affected by this issue
  • Anthology, Inc sold the Collaborate product line to Class Technologies, Inc in Q2 2022.
This issue is very old. The last five released versions of Learn are selected as a convenience. In effect, the issue can be treated as not being specific to any version of Learn.

Target Release:

Will Not Fix

Patch Available:

No






The information contained in the Knowledge Base was written and/or verified by Blackboard Support. It is approved for client use. Nothing in the Knowledge Base shall be deemed to modify your license in any way to any Blackboard product. If you have comments, questions, or concerns, please send an email to kb@blackboard.com. © 2024 Blackboard Inc. All rights reserved