Hi Karl,

Well, the good news is we've got rid of pretty much *all* of the lock file 
warnings by ensuring the all ManifoldCF programs are running as the same user.

The bad news is that we're left with a lock error that shuts down the agents 
process:

ERROR 2014-01-09 23:43:47,560 (Worker thread '17') - Couldn't write to lock 
file; disk may be full.  Shutting down process; locks may be left dangling.  
You must cleanup before restarting.
java.io.FileNotFoundException: 
C:\Solr\Application\crawler\Enterprise-Search\.\syncharea\32\542\lock-_Cache_OUTPUTCONNECTION_Oasys&58!
 Output connection.file (Access is denied)
                at java.io.FileOutputStream.open(Native Method)
                at java.io.FileOutputStream.<init>(Unknown Source)
                at java.io.FileOutputStream.<init>(Unknown Source)
                at java.io.FileWriter.<init>(Unknown Source)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.writeFile(LockObject.java:732)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.enterReadLockNoWait(LockObject.java:449)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.enterReadLock(LockObject.java:401)
                at 
org.apache.manifoldcf.core.lockmanager.LockManager.enterLocks(LockManager.java:924)
                at 
org.apache.manifoldcf.core.cachemanager.CacheManager.enterCache(CacheManager.java:278)
                at 
org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:98)
                at 
org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.loadMultiple(OutputConnectionManager.java:256)
                at 
org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.load(OutputConnectionManager.java:233)
                at 
org.apache.manifoldcf.agents.incrementalingest.IncrementalIngester.getOutputDescription(IncrementalIngester.java:306)
                at 
org.apache.manifoldcf.crawler.system.WorkerThread.run(WorkerThread.java:306)

This error looks like some kind of resource management limit issue, so I'll 
look into this (the disk isn't full).  If you've got any further ideas, that'd 
be useful...

Adrian

From: Adrian Conlon [mailto:[email protected]]
Sent: 08 January 2014 19:16
To: [email protected]
Subject: RE: Lock Warnings in ManifoldCF logs

Hi Karl,

Thanks for the reply: that does make some sense, I haven't bothered ensuring my 
agents are running under the same account as the servlet container on Windows.  
On Linux, I *did* sort this out just because it was the most straightforward 
approach.

I'll sort out my Windows agents process (might take a day or two before I get 
around to this) and reply back to this thread.

Thanks again for the info,

Adrian

From: Karl Wright [mailto:[email protected]]
Sent: 08 January 2014 17:51
To: [email protected]<mailto:[email protected]>
Subject: Re: Lock Warnings in ManifoldCF logs


Hi Adrian,

"WARN 2014-01-06 11:06:00,782 (http-bio-8080-exec-5) - Attempt to set file lock 
'C:\Solr\Application\crawler\Enterprise-Search\.\syncharea\392\308\lock-_Cache_JOB_1387380847667.lock'
 failed: The system cannot find the path specified
java.io.IOException: The system cannot find the path specified
                at java.io.WinNTFileSystem.
createFileExclusively(Native Method)"

This does not have anything to do with your controller software.  What it is 
complaining about is that it cannot create a file.  There are a number of 
possible reasons for this.

(1) You may be out of system resources
(2) You may have run ManifoldCF scripts as an incorrect user, causing 
directories to be created which other manifoldcf processes don't have write 
access to
(3) Windows may have gotten itself into a funky state

My suggestion is to first of all make SURE your ManifoldCF processes are all 
being executed by the same user.  THEN perform the lock clean sequence:

- shut down all manifoldcf processes
- run the lockclean.bat script
- start your manifoldcf processes again

Thanks,
Karl


On Wed, Jan 8, 2014 at 11:51 AM, Adrian Conlon 
<[email protected]<mailto:[email protected]>> wrote:
Hi All,

I'm getting large numbers of locking warnings in my logs on a Windows server 
(normally I run under Ubuntu/Linux).  Eventually the agent service stops 
working.

Anyway, here's a couple of sample exceptions from the log:

WARN 2014-01-07 02:04:47,740 (http-bio-8080-exec-20) - Attempt to set file lock 
'C:\Solr\Application\crawler\Enterprise-Search\.\syncharea\32\542\lock-_Cache_OUTPUTCONNECTION_Oasys&58!
 Output connection.lock' failed: Access is denied
java.io.IOException: Access is denied
                at java.io.WinNTFileSystem.createFileExclusively(Native Method)
                at java.io.File.createNewFile(Unknown Source)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.grabFileLock(LockObject.java:550)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.enterReadLockNoWait(LockObject.java:439)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.enterReadLock(LockObject.java:401)
                at 
org.apache.manifoldcf.core.lockmanager.LockManager.enterLocks(LockManager.java:924)
                at 
org.apache.manifoldcf.core.cachemanager.CacheManager.enterCache(CacheManager.java:278)
                at 
org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:98)
                at 
org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.loadMultiple(OutputConnectionManager.java:256)
                at 
org.apache.manifoldcf.agents.outputconnection.OutputConnectionManager.load(OutputConnectionManager.java:233)
                at 
org.apache.manifoldcf.crawler.system.ManifoldCF.apiReadOutputConnection(ManifoldCF.java:2122)
                at 
org.apache.manifoldcf.crawler.system.ManifoldCF.executeReadCommand(ManifoldCF.java:3191)
                at 
org.apache.manifoldcf.apiservlet.APIServlet.executeRead(APIServlet.java:231)
                at 
org.apache.manifoldcf.apiservlet.APIServlet.doGet(APIServlet.java:77)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
                at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
                at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
                at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
                at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
                at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
                at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
                at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
                at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
                at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
                at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
                at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source)
                at java.lang.Thread.run(Unknown Source)

WARN 2014-01-06 11:06:00,782 (http-bio-8080-exec-5) - Attempt to set file lock 
'C:\Solr\Application\crawler\Enterprise-Search\.\syncharea\392\308\lock-_Cache_JOB_1387380847667.lock'
 failed: The system cannot find the path specified
java.io.IOException: The system cannot find the path specified
                at java.io.WinNTFileSystem.createFileExclusively(Native Method)
                at java.io.File.createNewFile(Unknown Source)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.grabFileLock(LockObject.java:550)
                at 
org.apache.manifoldcf.core.lockmanager.LockObject.leaveReadLock(LockObject.java:489)
                at 
org.apache.manifoldcf.core.lockmanager.LockManager.leaveReadLock(LockManager.java:752)
                at 
org.apache.manifoldcf.core.lockmanager.LockManager.leaveLocks(LockManager.java:1216)
                at 
org.apache.manifoldcf.core.cachemanager.CacheManager.commitTransaction(CacheManager.java:761)
                at 
org.apache.manifoldcf.core.database.Database.endTransaction(Database.java:395)
                at 
org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.endTransaction(DBInterfacePostgreSQL.java:1161)
                at 
org.apache.manifoldcf.core.database.BaseTable.endTransaction(BaseTable.java:277)
                at org.apache.manifoldcf.crawler.jobs.Jobs.getAll(Jobs.java:538)
                at 
org.apache.manifoldcf.crawler.jobs.JobManager.getAllJobs(JobManager.java:486)
                at 
org.apache.manifoldcf.crawler.system.ManifoldCF.apiReadJobs(ManifoldCF.java:1753)
                at 
org.apache.manifoldcf.crawler.system.ManifoldCF.executeReadCommand(ManifoldCF.java:3069)
                at 
org.apache.manifoldcf.apiservlet.APIServlet.executeRead(APIServlet.java:231)
                at 
org.apache.manifoldcf.apiservlet.APIServlet.doGet(APIServlet.java:77)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
                at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
                at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
                at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
                at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
                at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
                at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
                at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
                at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
                at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
                at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
                at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source)
                at java.lang.Thread.run(Unknown Source)


Does anyone have any ideas on what might be causing this?  I note that although 
my AWS Ubuntu instance doesn't fail (or generate warnings), the syncharea does 
seem to get awfully large.  Is it the intention that the syncharea should be 
self-cleansing?

Adrian

p.s.
I should note that my (home-grown) ManifoldCF controller software generates 
large amounts of ManifoldCF jobs, and is always tinkering with them (starting, 
stopping, modifying, etc.).


____________________________________________________________
Electronic mail messages entering and leaving Arup  business
systems are scanned for acceptability of content and viruses

Reply via email to