Transaction Timed Out when Deleting a Space

Still need help?

The Atlassian Community is here for you.

Ask the community

Symptoms

When deleting a space, the following appears in Confluence:

org.springframework.transaction.TransactionTimedOutException: Transaction timed out: deadline was Wed Aug 12 22:54:41 PDT 2009
	at org.springframework.transaction.support.ResourceHolderSupport.checkTransactionTimeout(ResourceHolderSupport.java:139)
	at org.springframework.transaction.support.ResourceHolderSupport.getTimeToLiveInMillis(ResourceHolderSupport.java:128)
	at org.springframework.transaction.support.ResourceHolderSupport.getTimeToLiveInSeconds(ResourceHolderSupport.java:112)
	at org.springframework.orm.hibernate.SessionFactoryUtils.applyTransactionTimeout(SessionFactoryUtils.java:532)
	at org.springframework.orm.hibernate.HibernateTemplate.prepareQuery(HibernateTemplate.java:1027)

Cause

This can happen when the SQL transaction timed out when Confluence is trying to do something else to delete a space.

Diagnosis

Check the atlassian-confluence.log to determine the real cause.

For example, missing attachments can cause this issue:

2009-08-12 22:54:35,145 ERROR [http-8080-2] [pages.persistence.dao.FileSystemAttachmentDataDao] removeDataForAttachment Could not 
find attachments to remove at 'confluence-home-folder/attachments/88888888/9999999'
 -- referer:  http://confluence-url/spaces/removespace.action?key=SPACEKEY | url: /spaces/doremovespace.action | userName: admin 
| action: doremovespace | space: 7777777
2009-08-12 22:54:41,741 ERROR [http-8080-2] [atlassian.confluence.event.ConfluenceEventManager] publishEvent An exception was 
encountered while processing the event: com.atlassian.confluence.event.events.content.attachment.AttachmentRemoveEvent
[source=com.atlassian.confluence.pages.DefaultAttachmentManager@39522c]
 -- referer: http://confluence-url/spaces/removespace.action?key=SPACEKEY | url: /confluence/spaces/doremovespace.action | 
userName: admin | action: doremovespace | space: 7777777
org.springframework.transaction.TransactionTimedOutException: Transaction timed out: deadline was Wed Aug 12 22:54:41 PDT 2009
	at org.springframework.transaction.support.ResourceHolderSupport.checkTransactionTimeout(ResourceHolderSupport.java:139)
	at org.springframework.transaction.support.ResourceHolderSupport.getTimeToLiveInMillis(ResourceHolderSupport.java:128)
	at org.springframework.transaction.support.ResourceHolderSupport.getTimeToLiveInSeconds(ResourceHolderSupport.java:112)
	at org.springframework.orm.hibernate.SessionFactoryUtils.applyTransactionTimeout(SessionFactoryUtils.java:532)
	at org.springframework.orm.hibernate.HibernateTemplate.prepareQuery(HibernateTemplate.java:1027)

In this example, Confluence was complaining that it could not find a bunch of attachments in the file system to remove from the space.

Resolution

Delete the attachment links from the database:

For Confluence 5.7 and above

Always backup your data before performing any modifications to the database.

Shut Down confluence and,

Step 1: Identify the space's spaceid:

/* Grab Space ID */
SELECT spaceid FROM spaces WHERE spacekey='<spacekey>';

Make a note of the space id.
Copy the script below, then do a find and replace for:

  • SPACEID_HERE = your space id.

Step 2: delete all attachments from this space in the database type:

(The following code is created for MySQL. You might need to adjust accordingly to your database)

//create a temp table similar to "content" table
CREATE TABLE TC LIKE CONTENT;

//insert all *attachments* that belong to the affected space
INSERT INTO TC SELECT * FROM CONTENT WHERE contenttype = 'ATTACHMENT' and spaceid = <SPACEID_HERE>;

//delete the contentproperties of the attachments
DELETE FROM CONTENTPROPERTIES WHERE CONTENTID IN (SELECT CONTENTID FROM TC);

//delete the contentproperties of the previous versions of the attachments
DELETE FROM CONTENTPROPERTIES WHERE CONTENTID IN (SELECT CONTENTID FROM CONTENT WHERE PREVVER IN (SELECT CONTENTID FROM TC));

//delete the content, the of the previous versions of the attachments
DELETE FROM CONTENT WHERE PREVVER IN (SELECT CONTENTID FROM TC);

//delete the imagedetails of the attachments
DELETE FROM IMAGEDETAILS WHERE ATTACHMENTID IN (SELECT CONTENTID FROM TC);

//delete the content of the attachments
DELETE FROM CONTENT WHERE CONTENTID IN (SELECT CONTENTID FROM TC);

//drop temp table
DROP TABLE TC;

After the deletion was successful, proceed with a cleanup of the filesystem of any leftover attachments.

Follow the documentation for the location of the attachment in the filesystem:

 

Example

If the space ID is "135823361", we might want to delete everything that is inside the folder:
 
CONF_HOME/attachments/ver003/111/73/135823361

Perform backup of the folder before modifying them.

For Confluence 5.6 and below

Always backup your data before performing any modifications to the database.

  1. Remove the reference to the attachments manually from the database:

    delete from attachments where pageid=<the page ids from the log file>;
    
  2. If some attachments have previous version(s), you will encounter a foreign key constraint violation. So you need to remove the previous versions separately as well:

    select * from attachments where pageid=<page id> AND prevver is not null;
    
  3. The query will list the previous version of the attachments, which we need to remove. Then for each listed attachments delete the attachments using their attachmentid:

    delete from attachments where attachmentid=<attachmentid returned from the query above>;
    
  4. And lastly, don't forget to delete the latest version of the attachment:

    delete from attachments where pageid=<the page ids from the above>;
    
    tip/resting Created with Sketch.

    For Confluence 3.x and later you need to identify the pageids in the database. If you are not sure how to do so, have a look at this article which explains the file structure and how it relates to page ids, or contact Atlassian support.

 

SPACEID_HERE

Last modified on Nov 2, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.