Date Published: Aug 29,2023 Category: Planned_First_Fix_Release:Will_Not_Fix,Will_Not_Fix_Collaborate; Product:Extensions_Learn,Web_Conferencing_Known_Issues_and_Error_Messages_Web_Conferencing; 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 Replicate: 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.
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:
- If necessary: re-enable the course
- Enter the course
- Go to Users & Groups ➔ Groups ➔ Group Sets
- Check the boxes on all group sets
- Click delete
- 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.
Target Release: Will Not Fix
Patch Available: No