Thrift::FramedTransport sometimes calls close() on an undefined value
---------------------------------------------------------------------

                 Key: THRIFT-1082
                 URL: https://issues.apache.org/jira/browse/THRIFT-1082
             Project: Thrift
          Issue Type: Bug
          Components: Perl - Library
         Environment: CentOS release 5.4 (x86_64), perl 5.8.8
            Reporter: John Siracusa


The Thrift::FramedTransport module sometimes ends up calling the close() method 
on an undefined value inside its own close() method during global destruction.  
Events during global destruction are unordered, so it's difficult to reproduce 
this bug, but it does happen, producing error messages like this:

(in cleanup) Can't call method "close" on an undefined value at 
/usr/lib/perl5/vendor_perl/5.8.8/Thrift/FramedTransport.pm line 71 during 
global destruction.

The patch below is a simple workaround to the problem.

--- lib/Thrift/FramedTransport.pm       2011-03-03 11:02:25.000000000 -0500
+++ lib/Thrift/FramedTransport.pm.orig  2011-03-03 11:02:00.000000000 -0500
@@ -68,7 +68,7 @@
 {
     my $self = shift;
 
-    $self->{transport}->close() if (defined $self->{transport});
+    $self->{transport}->close();
 }
 
 #


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to