manifoldcf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Wright <daddy...@gmail.com>
Subject RE: Lock Warnings in ManifoldCF logs
Date Fri, 10 Jan 2014 10:52:22 GMT
Just a quick observation; ManifoldCF can only have n lock files open at
once, where n is the number of threads.

Karl

Sent from my Windows Phone
------------------------------
From: Adrian Conlon
Sent: 1/10/2014 4:17 AM
To: user@manifoldcf.apache.org
Subject: RE: Lock Warnings in ManifoldCF logs

    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:Adrian.Conlon@arup.com]
*Sent:* 08 January 2014 19:16
*To:* user@manifoldcf.apache.org
*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:daddywri@gmail.com <daddywri@gmail.com>]
*Sent:* 08 January 2014 17:51
*To:* user@manifoldcf.apache.org
*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 <Adrian.Conlon@arup.com>
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

Mime
View raw message