cancel
Showing results for 
Search instead for 
Did you mean: 

Corrupt files

back0rifice
Champ in-the-making
Champ in-the-making
Hello,

atm I'm facing a quite weird problem. I think the root of this problem is that our /tmp volume (before I didn't even know that Alfresco uses a temp location - can this be configured anywhere?) ran out of space which led to several exceptions. After resizing the /tmp volume it seems to run fine again…

Now let's come to the problem: We added a lot of files when /tmp ran out of space. These files only show up in CIFS but not in the webclient. But - and this is a real big problem, since some of these files have been moved instead of copied - the files can't be opened or copied anymore although the show up in Windows Explorer (when trying to open them it says that the files couldn't be found). So it seems that these files became corrupted or something like that.

Is there any possibility to restore/recover these files? At least I want to be able to remove them! (ATM the files cant be deleted either!!!)



—-

2007-05-09 09:16:21,661 ERROR [org.quartz.core.JobRunShell] Job DEFAULT.ftsIndexerJobDetail threw an unhandled Exception:
org.alfresco.service.cmr.repository.ContentIOException: Failed to get writer
        at org.alfresco.repo.content.filestore.FileContentStore.getWriter(FileContentStore.java:276)
        at org.alfresco.repo.content.RoutingContentService.getTempWriter(RoutingContentService.java:396)
        at org.alfresco.repo.search.impl.lucene.LuceneIndexerImpl2.indexProperty(LuceneIndexerImpl2.java:1632)
        at org.alfresco.repo.search.impl.lucene.LuceneIndexerImpl2.createDocuments(LuceneIndexerImpl2.java:1273)
        at org.alfresco.repo.search.impl.lucene.LuceneIndexerImpl2.updateFullTextSearch(LuceneIndexerImpl2.java:2014)
        at org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl.index(FullTextSearchIndexerImpl.java:177)
        at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
        at $Proxy57.index(Unknown Source)
        at org.alfresco.repo.search.impl.lucene.fts.FTSIndexerJob.execute(FTSIndexerJob.java:44)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.io.IOException: No space left on device
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.createNewFile(File.java:850)
        at org.alfresco.repo.content.filestore.FileContentStore.createNewFile(FileContentStore.java:137)
        at org.alfresco.repo.content.filestore.FileContentStore.createNewFile(FileContentStore.java:110)
        at org.alfresco.repo.content.filestore.FileContentStore.getWriter(FileContentStore.java:253)
        … 18 more
4 REPLIES 4

back0rifice
Champ in-the-making
Champ in-the-making
Ok, some additional information:



I did a search on the database. E.g.:

"SELECT * FROM alfresco.alf_node_properties WHERE node_id = 14069" returns the following rows:

14069, 'CONTENT', 0, 'STRING', 0, 0, 0, 0, 'contentUrl=store://2007/5/9/11/15/c7dcfcc4-fe0d-11db-a368-3b09f364f642.bin|mimetype=application/msword|size=138240|encoding=UTF-8|locale=en_US_', '', '{http://www.alfresco.org/model/content/1.0}content'
14069, 'DATE', 0, 'STRING', 0, 0, 0, 0, '2007-05-09T11:15:07.826+02:00', '', '{http://www.alfresco.org/model/content/1.0}created'
14069, 'STRING', 0, 'STRING', 0, 0, 0, 0, 'hstangl', '', '{http://www.alfresco.org/model/content/1.0}creator'
14069, 'DATE', 0, 'STRING', 0, 0, 0, 0, '2007-05-09T11:15:07.952+02:00', '', '{http://www.alfresco.org/model/content/1.0}modified'
14069, 'STRING', 0, 'STRING', 0, 0, 0, 0, 'hstangl', '', '{http://www.alfresco.org/model/content/1.0}modifier'
14069, 'STRING', 0, 'STRING', 0, 0, 0, 0, 'maintenance_termsheet_StG20050122.doc', '', '{http://www.alfresco.org/model/content/1.0}name'


"SELECT * FROM alf_node WHERE id = 14069" returns 1 row, with the following content:
14069, 'workspace', 'SpacesStore', 'c7d4984b-fe0d-11db-a368-3b09f364f642', '{http://www.alfresco.org/model/content/1.0}content', 



In Linux filesystem the above mentioned file (2007/5/9/11/15/c7dcfcc4-fe0d-11db-a368-3b09f364f642.bin) does exist! I don't know if the file is ok, but at least the file size(s) seem to fit.


I don't know if this information is of any interest but maybe you can give me some feedback where to find these node/file entries and how to recover or at least get rid of them…  :?:

andy
Champ on-the-rise
Champ on-the-rise
Hi

See the clean up jobs defined in scheduled-jobs-context.xml.

Here you will find the bean definitions to clean up old and temporary content.

Andy

back0rifice
Champ in-the-making
Champ in-the-making
Hi,

Referring to this file these two cleanup jobs should be executed automatically, shouldn't they?

Assuming that they work, it doesn't seem to solve my problem. The files still appear in CIFS but not in webclient.

Is there any safe way to delete this content from the database?

back0rifice
Champ in-the-making
Champ in-the-making
Some additional information…

The "corrupt" files were created on 05/09/2007 so I looked after them in the folder …/contentstore/2007/5/9/11/15

The files in there seem to have a correct filesize and database entries exist for each of them…

In order to be able to at least delete them I took an working .bin-file and copied it, providing the name of one of the "corrupt" files (which I moved before). I thought this should make it possible to delete the file but it isn't. It still says, that the file cannot be found?!

Can someone please explain me what'S going on there…?!
:?:


— Edit —

I copied the .bin files from the server and renamed them according to their file type, e.g. ".doc". Seems that the files are fine.

But how comes that they can't be handled correctly by Alfresco anymore? So it must be a kind of database issue?! (Although I believe that the contentstore URL in table node_properties should be ok?!).

Any help appreciated!!