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