[ 
https://issues.apache.org/jira/browse/NUTCH-738?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirby Bohling updated NUTCH-738:
--------------------------------

    Attachment: NUTCH-738.patch

Alternative implementation, that uses Thread interruption as cancel semantics.  
 Because I'm not sure that the project properly handles interruption 
everywhere, I capture the interruption request to ensure the shutdown is not 
lost.

If this is not patch acceptable, I believe that the original patch needs to 
make the boolean used become volatile to conform to the Java Memory Model.

The this.$0 in the SegmentUpdater, the segmentUpdater and the fact that 
segmentUpdater is a GC root (all threads are GC roots), appears to confuse the 
GC into not releasing this cluster of objects, thus holding this the class 
loader in memory.

If segmentUpdater needs to stay final, just pass the values from FetchSegments 
and make SegmentUpdater become a static class.  I believe that will also 
resolve the problem, but I didn't actually try it.

Using this, and the patch from NUTCH-746, and adding 
"-XX:+CMSClassUnloadingEnabled" to Tomcat's 6.0.18 startup script will allow 
the classes to be unloaded.


> Close SegmentUpdater when FetchedSegments is closed
> ---------------------------------------------------
>
>                 Key: NUTCH-738
>                 URL: https://issues.apache.org/jira/browse/NUTCH-738
>             Project: Nutch
>          Issue Type: Improvement
>          Components: searcher
>    Affects Versions: 1.1
>            Reporter: Martina Koch
>            Priority: Minor
>         Attachments: FetchedSegments.patch, NUTCH-738.patch
>
>
> Currently FetchedSegments starts a SegmentUpdater, but never closes it when 
> FetchedSegments is closed.
> (The problem was described in this mailing: 
> http://www.mail-archive.com/[email protected]/msg13823.html)

-- 
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