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