Hello community,

here is the log from the commit of package perl-Mojolicious for 
openSUSE:Factory checked in at 2020-10-12 13:57:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.3486 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Mojolicious"

Mon Oct 12 13:57:58 2020 rev:143 rq:839314 version:8.61

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes        
2020-09-29 19:02:16.693808096 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Mojolicious.new.3486/perl-Mojolicious.changes  
    2020-10-12 13:59:17.702215605 +0200
@@ -1,0 +2,10 @@
+Sat Oct  3 11:22:22 UTC 2020 - Oliver Kurz <ok...@suse.com>
+
+- updated to 8.61
+   see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+  8.61  2020-10-01
+    - Fixed fork-safety feature in Mojo::UserAgent to work with more than one 
fork.
+    - Fixed reset method in Mojo::IOLoop to not interfere with close events 
anymore, since that resulted in leaks.
+
+-------------------------------------------------------------------

Old:
----
  Mojolicious-8.60.tar.gz

New:
----
  Mojolicious-8.61.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.rxOsyv/_old  2020-10-12 13:59:18.294215852 +0200
+++ /var/tmp/diff_new_pack.rxOsyv/_new  2020-10-12 13:59:18.298215853 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Mojolicious
-Version:        8.60
+Version:        8.61
 Release:        0
 %define cpan_name Mojolicious
 Summary:        Real-time web framework

++++++ Mojolicious-8.60.tar.gz -> Mojolicious-8.61.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/Changes new/Mojolicious-8.61/Changes
--- old/Mojolicious-8.60/Changes        2020-09-27 17:46:20.000000000 +0200
+++ new/Mojolicious-8.61/Changes        2020-10-01 16:06:35.000000000 +0200
@@ -1,4 +1,8 @@
 
+8.61  2020-10-01
+  - Fixed fork-safety feature in Mojo::UserAgent to work with more than one 
fork.
+  - Fixed reset method in Mojo::IOLoop to not interfere with close events 
anymore, since that resulted in leaks.
+
 8.60  2020-09-27
   - Improved reset method in Mojo::IOLoop to prevent close event to be emitted 
in affected streams. (kiwiroy)
   - Improved cookbook with Envoy deployment recipe. (zakame)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/META.json 
new/Mojolicious-8.61/META.json
--- old/Mojolicious-8.60/META.json      2020-09-27 17:49:37.000000000 +0200
+++ new/Mojolicious-8.61/META.json      2020-10-02 13:01:03.000000000 +0200
@@ -63,6 +63,6 @@
          "web" : "https://webchat.freenode.net/#mojo";
       }
    },
-   "version" : "8.60",
+   "version" : "8.61",
    "x_serialization_backend" : "JSON::PP version 4.05"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/META.yml 
new/Mojolicious-8.61/META.yml
--- old/Mojolicious-8.60/META.yml       2020-09-27 17:49:37.000000000 +0200
+++ new/Mojolicious-8.61/META.yml       2020-10-02 13:01:02.000000000 +0200
@@ -34,5 +34,5 @@
   homepage: https://mojolicious.org
   license: http://www.opensource.org/licenses/artistic-license-2.0
   repository: https://github.com/mojolicious/mojo.git
-version: '8.60'
+version: '8.61'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/lib/Mojo/IOLoop.pm 
new/Mojolicious-8.61/lib/Mojo/IOLoop.pm
--- old/Mojolicious-8.60/lib/Mojo/IOLoop.pm     2020-09-27 02:33:25.000000000 
+0200
+++ new/Mojolicious-8.61/lib/Mojo/IOLoop.pm     2020-10-01 16:06:47.000000000 
+0200
@@ -95,7 +95,6 @@
 
 sub reset {
   my $self = _instance(shift)->emit('reset');
-  $self->stream($_)->unsubscribe('close') for (keys %{$self->{in}}, keys 
%{$self->{out}});
   delete @$self{qw(accepting acceptors events in out stop)};
   $self->reactor->reset;
   $self->stop;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/lib/Mojo/UserAgent.pm 
new/Mojolicious-8.61/lib/Mojo/UserAgent.pm
--- old/Mojolicious-8.60/lib/Mojo/UserAgent.pm  2020-09-17 13:42:07.000000000 
+0200
+++ new/Mojolicious-8.61/lib/Mojo/UserAgent.pm  2020-10-01 16:02:31.000000000 
+0200
@@ -51,7 +51,8 @@
   my ($self, $tx, $cb) = @_;
 
   # Fork-safety
-  $self->_cleanup->server->restart unless ($self->{pid} //= $$) eq $$;
+  $self->_cleanup->server->restart if $self->{pid} && $self->{pid} ne $$;
+  $self->{pid} //= $$;
 
   # Non-blocking
   if ($cb) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/lib/Mojolicious.pm 
new/Mojolicious-8.61/lib/Mojolicious.pm
--- old/Mojolicious-8.60/lib/Mojolicious.pm     2020-09-19 20:54:34.000000000 
+0200
+++ new/Mojolicious-8.61/lib/Mojolicious.pm     2020-10-01 15:18:43.000000000 
+0200
@@ -58,7 +58,7 @@
 has validator => sub { Mojolicious::Validator->new };
 
 our $CODENAME = 'Supervillain';
-our $VERSION  = '8.60';
+our $VERSION  = '8.61';
 
 sub BUILD_DYNAMIC {
   my ($class, $method, $dyn_methods) = @_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/t/mojo/ioloop.t 
new/Mojolicious-8.61/t/mojo/ioloop.t
--- old/Mojolicious-8.60/t/mojo/ioloop.t        2020-09-27 02:33:17.000000000 
+0200
+++ new/Mojolicious-8.61/t/mojo/ioloop.t        2020-10-01 16:08:28.000000000 
+0200
@@ -83,19 +83,18 @@
 };
 
 subtest 'Handle and reset' => sub {
-  my ($handle, $handle2, $reset, $close);
+  my ($handle, $handle2, $reset);
   Mojo::IOLoop->singleton->on(reset => sub { $reset++ });
   my $id = Mojo::IOLoop->server(
     (address => '127.0.0.1') => sub {
       my ($loop, $stream) = @_;
-      $stream->on(close => sub { $close++ });
       $handle = $stream->handle;
       Mojo::IOLoop->stop;
     }
   );
   my $port = Mojo::IOLoop->acceptor($id)->port;
   Mojo::IOLoop->acceptor($id)->on(accept => sub { $handle2 = pop });
-  my $id2 = Mojo::IOLoop->client((address => '127.0.0.1', port => $port) => 
sub { pop->on(close => sub { $close++ })});
+  my $id2 = Mojo::IOLoop->client((address => '127.0.0.1', port => $port) => 
sub { });
   Mojo::IOLoop->start;
   my ($count, $running, $timer) = (0) x 3;
   Mojo::IOLoop->recurring(10 => sub { $timer++ });
@@ -111,7 +110,6 @@
   is $handle,     $handle2, 'handles are equal';
   isa_ok $handle, 'IO::Socket', 'right reference';
   is $reset,      1,            'reset event has been emitted once';
-  is $close,      undef,        'reset unsubscribed close on streams';
 };
 
 subtest 'The poll reactor stops when there are no events being watched 
anymore' => sub {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-8.60/t/mojo/user_agent.t 
new/Mojolicious-8.61/t/mojo/user_agent.t
--- old/Mojolicious-8.60/t/mojo/user_agent.t    2020-09-17 13:41:35.000000000 
+0200
+++ new/Mojolicious-8.61/t/mojo/user_agent.t    2020-10-01 16:02:37.000000000 
+0200
@@ -517,33 +517,39 @@
 is $tx->res->code, 200,      'right status';
 is $tx->res->body, 'works!', 'right content';
 
-# Fork-safety
-$tx = $ua->get('/');
-ok $tx->keep_alive, 'keep connection alive';
-is $tx->res->body, 'works!', 'right content';
-my $last = $tx->connection;
-$port = $ua->server->url->port;
-$tx   = $ua->get('/');
-is $tx->res->body, 'works!', 'right content';
-is $tx->connection, $last, 'same connection';
-is $ua->server->url->port, $port, 'same port';
-{
-  local $$ = -23;
-  $tx = $ua->get('/');
-  ok !$tx->kept_alive, 'kept connection not alive';
+subtest 'Fork-safety' => sub {
+  my $tx = $ua->get('/');
   ok $tx->keep_alive, 'keep connection alive';
   is $tx->res->body, 'works!', 'right content';
-  isnt $tx->connection, $last, 'new connection';
-  isnt $ua->server->url->port, $port, 'new port';
-  $port = $ua->server->url->port;
-  $last = $tx->connection;
-  $tx   = $ua->get('/');
-  ok $tx->kept_alive, 'kept connection alive';
-  ok $tx->keep_alive, 'keep connection alive';
+  my $last = $tx->connection;
+  my $port = $ua->server->url->port;
+  $tx = $ua->get('/');
   is $tx->res->body, 'works!', 'right content';
   is $tx->connection, $last, 'same connection';
   is $ua->server->url->port, $port, 'same port';
-}
+  {
+    local $$ = -23;
+    my $tx = $ua->get('/');
+    ok !$tx->kept_alive, 'kept connection not alive';
+    ok $tx->keep_alive, 'keep connection alive';
+    is $tx->res->body, 'works!', 'right content';
+    isnt $tx->connection, $last, 'new connection';
+    isnt $ua->server->url->port, $port, 'new port';
+    my $port2 = $ua->server->url->port;
+    my $last2 = $tx->connection;
+    {
+      local $$ = -24;
+      my $tx = $ua->get('/');
+      ok !$tx->kept_alive, 'kept connection not alive';
+      ok $tx->keep_alive, 'keep connection alive';
+      is $tx->res->body, 'works!', 'right content';
+      isnt $tx->connection, $last,  'new connection';
+      isnt $tx->connection, $last2, 'new connection';
+      isnt $ua->server->url->port, $port,  'new port';
+      isnt $ua->server->url->port, $port2, 'new port';
+    }
+  }
+};
 
 # Introspect
 my $req = my $res = '';


Reply via email to