Folders not properly removed on library update

Issue #186 resolved
Petr Nejedly repo owner created an issue

Comments (11)

  1. Petr Nejedly reporter

    Easiest will be to clean up any empty containers (folders, genres, albums, etc) when checking for deleted files in update checker thread. Must run even if metadata update is disabled.

  2. Petr Nejedly reporter
    2011-10-20 20:11:38,563 INFO  [LibraryAdditionsCheckerThread] Added file 'SYNOPHOTO:THUMB_M.jpg' (title: SYNOPHOTO:THUMB_M) to Library
    2011-10-20 20:12:44,001 WARN  [LibraryUpdatesCheckerThread] Cannot remove metadata title Get On The Good Foot from Library. Message: Cannot delete Folder with id = 533
    org.serviio.db.dao.PersistenceException: Cannot delete Folder with id = 533
    	at org.serviio.library.dao.FolderDAOImpl.delete(FolderDAOImpl.java:76)
    	at org.serviio.library.local.service.FolderService.removeFolderAndItsParents(FolderService.java:68)
    	at org.serviio.library.local.service.AudioService.removeMusicTrackFromLibrary(AudioService.java:143)
    	at org.serviio.library.local.metadata.LibraryUpdatesCheckerThread.searchForRemovedAndUpdatedFiles(LibraryUpdatesCheckerThread.java:169)
    	at org.serviio.library.local.metadata.LibraryUpdatesCheckerThread.run(LibraryUpdatesCheckerThread.java:96)
    Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained within the time requested
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
    	at org.serviio.library.dao.FolderDAOImpl.delete(FolderDAOImpl.java:74)
    	... 4 more
    Caused by: java.sql.SQLException: A lock could not be obtained within the time requested
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
    	... 14 more
    Caused by: ERROR 40XL1: A lock could not be obtained within the time requested
    	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    	at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
    	at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source)
    	at org.apache.derby.impl.services.locks.ConcurrentPool.lockObject(Unknown Source)
    	at org.apache.derby.impl.store.raw.xact.ContainerLocking3.lockContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
    	at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openCompiledConglomerate(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DependentResultSet.openHeapConglomerateController(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DependentResultSet.openCore(Unknown Source)
    	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteResultSet.setup(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.setup(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.setup(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(Unknown Source)
    	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
    	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
    	... 8 more
    2011-10-20 20:12:44,001 WARN  [LibraryAdditionsCheckerThread] Cannot add file SYNOPHOTO:THUMB_L.jpg because of an unexpected error. Message: Cannot read file path for Folder 1679
    org.serviio.db.dao.PersistenceException: Cannot read file path for Folder 1679
    	at org.serviio.library.dao.FolderDAOImpl.getFolderPath(FolderDAOImpl.java:148)
    	at org.serviio.library.dao.MediaItemDAOImpl.isMediaItemPresent(MediaItemDAOImpl.java:75)
    	at org.serviio.library.local.service.MediaService.isMediaPresentInLibrary(MediaService.java:37)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.searchForNewFiles(LibraryAdditionsCheckerThread.java:142)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.searchForNewFiles(LibraryAdditionsCheckerThread.java:128)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.searchForNewFiles(LibraryAdditionsCheckerThread.java:128)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.searchForNewFiles(LibraryAdditionsCheckerThread.java:128)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.searchForNewFiles(LibraryAdditionsCheckerThread.java:128)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.searchForNewFiles(LibraryAdditionsCheckerThread.java:128)
    	at org.serviio.library.local.metadata.LibraryAdditionsCheckerThread.run(LibraryAdditionsCheckerThread.java:78)
    Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained within the time requested
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown Source)
    	at org.serviio.library.dao.FolderDAOImpl.getFolderPath(FolderDAOImpl.java:129)
    	... 9 more
    Caused by: java.sql.SQLException: A lock could not be obtained within the time requested
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
    	... 19 more
    Caused by: ERROR 40XL1: A lock could not be obtained within the time requested
    	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    	at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
    	at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source)
    	at org.apache.derby.impl.services.locks.ConcurrentPool.lockObject(Unknown Source)
    	at org.apache.derby.impl.store.raw.xact.RowLocking2.lockContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
    	at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openCompiledConglomerate(Unknown Source)
    	at org.apache.derby.impl.store.access.btree.index.B2IForwardScan.init(Unknown Source)
    	at org.apache.derby.impl.store.access.btree.index.B2I.openScan(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openScan(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openCompiledScan(Unknown Source)
    	at org.apache.derby.impl.sql.execute.TableScanResultSet.openScanController(Unknown Source)
    	at org.apache.derby.impl.sql.execute.TableScanResultSet.openCore(Unknown Source)
    	at org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.openCore(Unknown Source)
    	at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
    	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
    	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
    	... 13 more
    
    
  3. Petr Nejedly reporter
    2011-10-20 21:48:41,723 WARN  [LibraryUpdatesCheckerThread] Cannot update file Dawn (Go Away) in library because of an unexpected error. Message: Cannot delete MusicAlbum with id = 1050
    org.serviio.db.dao.PersistenceException: Cannot delete MusicAlbum with id = 1050
    	at org.serviio.library.dao.MusicAlbumDAOImpl.delete(MusicAlbumDAOImpl.java:107)
    	at org.serviio.library.local.service.AudioService.removeAlbum(AudioService.java:450)
    	at org.serviio.library.local.service.AudioService.updateMusicTrackInLibrary(AudioService.java:228)
    	at org.serviio.library.local.metadata.LibraryUpdatesCheckerThread.updateMetadata(LibraryUpdatesCheckerThread.java:229)
    	at org.serviio.library.local.metadata.LibraryUpdatesCheckerThread.run(LibraryUpdatesCheckerThread.java:110)
    Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained within the time requested
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
    	at org.serviio.library.dao.MusicAlbumDAOImpl.delete(MusicAlbumDAOImpl.java:105)
    	... 4 more
    Caused by: java.sql.SQLException: A lock could not be obtained within the time requested
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
    	... 14 more
    Caused by: ERROR 40XL1: A lock could not be obtained within the time requested
    	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    	at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
    	at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source)
    	at org.apache.derby.impl.services.locks.ConcurrentPool.lockObject(Unknown Source)
    	at org.apache.derby.impl.store.raw.xact.ContainerLocking3.lockContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
    	at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
    	at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
    	at org.apache.derby.impl.store.access.RAMTransaction.openCompiledConglomerate(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DependentResultSet.openHeapConglomerateController(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DependentResultSet.openCore(Unknown Source)
    	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteResultSet.setup(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.setup(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.setup(Unknown Source)
    	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(Unknown Source)
    	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
    	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
    	... 8 more
    
  4. Log in to comment