Hello community,
here is the log from the commit of package perl-Sys-SigAction for
openSUSE:Factory checked in at 2013-11-26 14:41:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Sys-SigAction (Old)
and /work/SRC/openSUSE:Factory/.perl-Sys-SigAction.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sys-SigAction"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Sys-SigAction/perl-Sys-SigAction.changes
2013-08-13 10:19:13.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Sys-SigAction.new/perl-Sys-SigAction.changes
2013-11-26 14:41:57.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Nov 26 07:33:35 UTC 2013 - [email protected]
+
+- updated to 0.21
+ Remove erroneous note at the end of the POD related to references to
+ this module in DBD:Oracle. In reality the reference was in DBI, and it
+ is still there.
+
+ Close pod error bug (which referred to the above paragraph) submitted
+ by the Debian Packaging team.
+
+-------------------------------------------------------------------
Old:
----
Sys-SigAction-0.20.tar.gz
New:
----
Sys-SigAction-0.21.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Sys-SigAction.spec ++++++
--- /var/tmp/diff_new_pack.olPjC1/_old 2013-11-26 14:41:58.000000000 +0100
+++ /var/tmp/diff_new_pack.olPjC1/_new 2013-11-26 14:41:58.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Sys-SigAction
-Version: 0.20
+Version: 0.21
Release: 0
%define cpan_name Sys-SigAction
Summary: Perl extension for Consistent Signal Handling
@@ -30,6 +30,7 @@
BuildRequires: perl
BuildRequires: perl-macros
#BuildRequires: perl(Sys::SigAction)
+#BuildRequires: perl(Sys::SigAction::Alarm)
%{perl_requires}
%description
@@ -40,6 +41,37 @@
reason it has always been recommended that one do as little as possible in
a signal handler, and only variables that already exist be manipulated.
+Perl 5.8.0 and later versions implements 'safe' signal handling on
+platforms which support the POSIX sigaction() function. This is
+accomplished by having perl note that a signal has arrived, but deferring
+the execution of the signal handler until such time as it is safe to do so.
+Unfortunately these changes can break some existing scripts, if they
+depended on a system routine being interrupted by the signal's arrival. The
+perl 5.8.0 implementation was modified further in version 5.8.2.
+
+From the perl 5.8.2 *perlvar* man page:
+
+ The default delivery policy of signals changed in Perl 5.8.0
+ from immediate (also known as "unsafe") to deferred, also
+ known as "safe signals".
+
+The implementation of this changed the 'sa_flags' with which the signal
+handler is installed by perl, and it causes some system routines (like
+connect()) to return EINTR, instead of another error when the signal
+arrives. The problem comes when the code that made the system call sees the
+EINTR code and decides it's going to call it again before returning. Perl
+doesn't do this but some libraries do, including for instance, the Oracle
+OCI library.
+
+Thus the 'deferred signal' approach (as implemented by default in perl 5.8
+and later) results in some system calls being retried prior to the signal
+handler being called by perl. This breaks timeout logic for DBD-Oracle
+which works with earlier versions of perl. This can be particularly vexing,
+when, for instance, the host on which a database resides is not available:
+'DBI->connect()' hangs for minutes before returning an error (and cannot
+even be interrupted with control-C, even when the intended timeout is only
+seconds). This is because SIGINT appears to be deferred as well.
+
%prep
%setup -q -n %{cpan_name}-%{version}
find . -type f -print0 | xargs -0 chmod 644
@@ -49,6 +81,7 @@
%{__make} %{?_smp_mflags}
%check
+# MANUAL
%if ! 0%{?qemu_user_space_build}
%{__make} test
%endif
++++++ Sys-SigAction-0.20.tar.gz -> Sys-SigAction-0.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sys-SigAction-0.20/Changes
new/Sys-SigAction-0.21/Changes
--- old/Sys-SigAction-0.20/Changes 2013-08-05 02:32:59.000000000 +0200
+++ new/Sys-SigAction-0.21/Changes 2013-11-20 12:34:31.000000000 +0100
@@ -8,24 +8,33 @@
Revision history for Sys::SigAction.
+=head2 Changes in Sys::SigAction 0.21 20 Nov 2013
+
+Remove erroneous note at the end of the POD related to references to
+this module in DBD:Oracle. In reality the reference was in DBI, and it
+is still there.
+
+Close pod error bug (which referred to the above paragraph) submitted
+by the Debian Packaging team.
+
=head2 Changes in Sys::SigAction 0.20 4 Aug 2013
Even if C<Time::HiRes::ualarm()> exists, it may not necessarily
-work. (There were way too many broken smoke tests with were
-the result of this. One reason for this may bave been that the test
-was looking for too small an interval of sub-second timeouts. On busy
-systems, this may have been causing tests to fail.
+work. (There were way too many broken smoke tests which might have been
+the result of this). One reason for this may also bave been that the test
+was looking for too small an interval in the sub-second timeout tests. On
busy
+systems, this may also have been causing tests to fail.
-Got rid of the attempt at tracking broken environments in timeout.t
-(the hash structure mentioned in the previous change.
+This version got rid of the attempt at tracking broken environments in
timeout.t
+(the hash structure mentioned in the previous change).
The sub-second timer tests now set a timeout at 0.1 seconds, and check
-for a delta time the is less then 0.8 seconds. Proving that they completed
-in under 1 second, but give a wide range of execution time to account
-for busy systems.
+for a delta time that is less than 0.8 seconds. Proving that they completed
+in under 1 second. This provides a 0.7 second range of execution time to
account
+for busy systems. Previous tests, only allowed for something less than 0.1
second.
-Also Makefile.PL now looks for C<Time::HiRes::ualarm()>, and tests it.
-If it works, high resolution timeouts are enabled in Sys
+Makefile.PL now looks for C<Time::HiRes::ualarm()>, and tests it.
+If it works, high resolution timeouts are enabled.
Makefile.PL reports what it finds, and t/timeout.t reports when high
resolution tests are disabled, but timeout.t should not fail because of
this... it will just run fewer tests.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sys-SigAction-0.20/META.yml
new/Sys-SigAction-0.21/META.yml
--- old/Sys-SigAction-0.20/META.yml 2013-08-05 02:35:55.000000000 +0200
+++ new/Sys-SigAction-0.21/META.yml 2013-11-20 12:41:04.000000000 +0100
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Sys-SigAction
-version: 0.20
+version: 0.21
abstract: Perl extension for Consistent Signal Handling
author:
- Lincoln A. Baxter <lab-at-lincolnbaxter-dot-com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sys-SigAction-0.20/Makefile.PL
new/Sys-SigAction-0.21/Makefile.PL
--- old/Sys-SigAction-0.20/Makefile.PL 2013-08-05 02:33:05.000000000 +0200
+++ new/Sys-SigAction-0.21/Makefile.PL 2013-11-20 12:37:56.000000000 +0100
@@ -34,7 +34,7 @@
This perl has multithread support enabled, this is not a problem for
single threaded perl applications.
- Please see "MULTITHREAD PERL in the Sys::SigAction POD for more information
+ Please see "MULTITHREAD PERL" in the Sys::SigAction POD for more
information.
Lincoln
@@ -82,14 +82,14 @@
warn q(
Smoke testers have discovered that t/mask.t fails on at least
some verions cygwin. Specific versions of the os and perl
- and now protected... but others may be found. On this platforms
+ are now protected... but others may be found. On these platforms
masking signals probably does not work. See the hash reference
\$broken_platforms for platforms known to be broken.
);
}
-my $SAAD = "lib/Sys/SigAction/" ;
+my $SAAD = "lib/Sys/SigAction" ;
my $SAA = "$SAAD/Alarm.pm" ;
print "Writing $SAA\n" ;
mkdir $SAAD if ( not -d $SAAD );
@@ -152,9 +152,10 @@
$et = Time::HiRes::time();
#print "outside forever eval\n" ;
};
+ Time::HiRes::ualarm( 0 );
my $delta = $et - $st;
if ( $delta < 0.8 ) {
- print q(
+ print qq(
Time::HiRes::ualarm() exists and works.
High resolution timeouts enabled."
);
@@ -162,8 +163,8 @@
}
else
{
- warn q(
- Time::HiRes exists on this platform but Time::HiRes::ualarm
+ warn qq(
+ Time::HiRes exists on this platform but Time::HiRes::ualarm()
appears to be broken. High resolution timeouts disabled.
);
}
@@ -173,7 +174,7 @@
print "\nWrote $SAA\n" ;
if ( not $hr_works ) {
- warn q(
+ warn qq(
Fractional seconds in timeout_call() may be used but will be
raised to the next higher integer value with POSIX::ceil().
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Sys-SigAction-0.20/lib/Sys/SigAction.pm
new/Sys-SigAction-0.21/lib/Sys/SigAction.pm
--- old/Sys-SigAction-0.20/lib/Sys/SigAction.pm 2013-08-04 23:29:04.000000000
+0200
+++ new/Sys-SigAction-0.21/lib/Sys/SigAction.pm 2013-11-20 12:29:31.000000000
+0100
@@ -29,7 +29,7 @@
@ISA = qw( Exporter );
@EXPORT_OK = qw( set_sig_handler timeout_call sig_name sig_number sig_alarm );
-$VERSION = '0.20';
+$VERSION = '0.21';
use Config;
my %signame = ();
@@ -535,8 +535,8 @@
That said, perl documentation for perl threading discusses a a way of
emulating signals in multi-threaded applications, when safe signals
is in effect. See perldoc threads and search for THREAD SIGNALLING.
-I have no test of multithreading and this module. If you thing they
-could used compatibly, and would provide value, patches are welcome.
+I have no test of multithreading and this module. If you think they
+could be used compatibly and would provide value, patches are welcome.
=head1 AUTHOR
@@ -556,11 +556,4 @@
perldoc perlvar
perldoc POSIX
-=head NOTE
-
-Recent versions of DBD::Oracle no longer reference this module in the
-POD, so DBD::Oracle may now have solved the connection timeout problem
-internally. For older versions, the dbd-oracle-timeout.pod file provides
-a DBD-Oracle test script, which illustrates the use of this
-module with the DBD-Oracle driver.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]