[Bps-public-commit] brackup branch, master, updated. 98e86321eef84f38420ccb7ab56760a5d4fcc657

Thomas Sibley trs at bestpractical.com
Thu Apr 4 16:16:57 EDT 2013


The branch, master has been updated
       via  98e86321eef84f38420ccb7ab56760a5d4fcc657 (commit)
      from  4d172c9edcdc3f5a8e2d6aada1b590d2613f5040 (commit)

Summary of changes:
 lib/Brackup/GPGProcManager.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

- Log -----------------------------------------------------------------
commit 98e86321eef84f38420ccb7ab56760a5d4fcc657
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Thu Apr 4 12:53:41 2013 -0700

    Remove GPG chunk tempfiles after they're used instead of at global destruction
    
    Active GPGProcess objects are keyed by the PositionedChunk address, not
    their own address.  This bug left dangling references to GPGProcess
    objects which in turn kept references to their File::Temp object,
    causing any GPG-encrypted content to collect on disk until global
    process destruction.  Rather than passing the pchunk to
    get_proc_chunkref, simply move the delete up into the caller which
    already manages $self->{procs}.
    
    This restores the original behaviour (and current code's intent)
    pre-bf78b0c.

diff --git a/lib/Brackup/GPGProcManager.pm b/lib/Brackup/GPGProcManager.pm
index 1e4b0f8..da73467 100644
--- a/lib/Brackup/GPGProcManager.pm
+++ b/lib/Brackup/GPGProcManager.pm
@@ -44,6 +44,7 @@ sub enc_chunkref_of {
 
     $self->_proc_summary_dump;
     my ($cref, $enc_length) = $self->get_proc_chunkref($proc);
+    delete $self->{procs}{$pchunk};
     $self->_proc_summary_dump;
     $self->start_some_processes;
 
@@ -90,7 +91,6 @@ sub next_chunk_to_encrypt {
 sub get_proc_chunkref {
     my ($self, $proc) = @_;
     my $cref = $proc->chunkref;
-    delete $self->{procs}{$proc};
     $self->{uncollected_bytes} -= $proc->size_on_disk;
     $self->{uncollected_chunks}--;
     return ($cref, $proc->size_on_disk);

-----------------------------------------------------------------------



More information about the Bps-public-commit mailing list