plugins stored in weakhashmap lead memory leak
----------------------------------------------

                 Key: NUTCH-925
                 URL: https://issues.apache.org/jira/browse/NUTCH-925
             Project: Nutch
          Issue Type: Bug
    Affects Versions: 1.2
            Reporter: congliu


I suffer serious memory leak using Nutch 1.2 though a very deep crawl. I get 
the error like this:

Exception in thread "Thread-113544" java.lang.OutOfMemoryError: PermGen space
        at java.lang.Throwable.getStackTraceElement(Native Method)
        at java.lang.Throwable.getOurStackTrace(Throwable.java:591)
        at java.lang.Throwable.printStackTrace(Throwable.java:510)
        at 
org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:76)
        at 
org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:407)
        at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:305)
        at 
org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:359)
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:160)
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
        at 
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
        at org.apache.log4j.Category.callAppenders(Category.java:206)
        at org.apache.log4j.Category.forcedLog(Category.java:391)
        at org.apache.log4j.Category.log(Category.java:856)
        at org.slf4j.impl.Log4jLoggerAdapter.log(Log4jLoggerAdapter.java:509)
        at 
org.apache.commons.logging.impl.SLF4JLocationAwareLog.warn(SLF4JLocationAwareLog.java:173)
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:256)
Exception in thread "main" java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)
        at org.apache.nutch.fetcher.Fetcher.fetch(Fetcher.java:1107)
        at org.apache.nutch.crawl.Crawl.main(Crawl.java:133)


I guess Plugin repository cache lead to memory leak.

As u know plugins is stored in weakhashmap <conf, plugins>, and new class 
classload
create when u need plugins.
Usually,WeakHashMap object can been gc, but class and classload is stored in 
Perm NOT stack and gc can't perform in Perm, SO (java.lang.OutOfMemoryError: 
PermGen space) occured..., is any nutch-issues have concerned this promble? or 
there is any solution? 

nutch-356 may help?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to