[ 
https://issues.apache.org/jira/browse/PIG-1313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12852463#action_12852463
 ] 

Daniel Dai commented on PIG-1313:
---------------------------------

Thanks, Bill,
Let's leave triggerDeleteOnFail. This is the thing we want to fix. I've opened 
another Jira [PIG-1347|https://issues.apache.org/jira/browse/PIG-1347] for 
that. This patch is good to go and I will commit it shortly.

> PigServer leaks memory over time
> --------------------------------
>
>                 Key: PIG-1313
>                 URL: https://issues.apache.org/jira/browse/PIG-1313
>             Project: Pig
>          Issue Type: Bug
>          Components: impl
>    Affects Versions: 0.7.0
>            Reporter: Bill Graham
>            Assignee: Bill Graham
>             Fix For: 0.8.0
>
>         Attachments: PIG-1313-0.4.0-1.patch, PIG-1313-1.patch, 
> PIG-1313-1.patch, PIG-1313-2.patch, PIG-1313-3.patch, PIG-1313-4.patch, 
> Pig1313Reproducer.java
>
>
> When {{PigServer}} runs it creates temporary files using the 
> {{FileLocalizer.getTemporaryPath(..)}}. This static method creates and 
> returns a handle to a temporary file (as an instance of 
> {{ElementDescriptor}}). The {{ElementDescriptors}} returned by this method 
> are kept on a static {{Stack}} named {{toDelete}}. The items on {{toDelete}} 
> get removed by the {{FileLocalizer.deleteTempFile()}} method.
> The only place in the code where I see {{FileLocalizer.deleteTempFile()}} 
> called is in the Main class. {{PigServer}} does not call that method though, 
> so a long-running VM that repeatedly uses instances of {{PigServer}} to run 
> jobs will leak memory via {{toDelete}}.
> One suggested fix is to have {{PigServer.shutdown()}} call 
> {{FileLocalizer.deleteTempFile()}}, but this would cause problems in a 
> multi-threaded environment, since it seems {{ElementDescriptors}} are pushed 
> onto the {{toDelete}} stack before they're used, not once they're done with. 
> With this approach, running multiple instances of {{PigServer}} in separate 
> threads could cause one completed job to clobber the other's still-in-use 
> temp files.

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