Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock evolvotron/0.7.1-3. It fixes frequent segfaults at
startup, namely #929034.

Full source debdiff:

diff -Nru evolvotron-0.7.1/debian/changelog evolvotron-0.7.1/debian/changelog
--- evolvotron-0.7.1/debian/changelog   2018-01-02 08:32:53.000000000 +0100
+++ evolvotron-0.7.1/debian/changelog   2019-05-21 01:40:39.000000000 +0200
@@ -1,3 +1,15 @@
+evolvotron (0.7.1-3) unstable; urgency=high
+
+  [ Ondřej Nový ]
+  * debian/watch: Use HTTPS.
+
+  [ Axel Beckert ]
+  * Apply patch to fix erasing while iterating. Fixes frequent segfaults
+    on startup. (Closes: #929034) Thanks to Saverio Brancaccio for
+    reporting the issue and thanks to Jan Nordholz for the patch!
+
+ -- Axel Beckert <a...@debian.org>  Tue, 21 May 2019 01:40:39 +0200
+
 evolvotron (0.7.1-2) unstable; urgency=medium
 
   * Add lintian override for bogus tech-ctte decision imposed onto policy,
diff -Nru evolvotron-0.7.1/debian/patches/fix_erasing_while_iterating.patch 
evolvotron-0.7.1/debian/patches/fix_erasing_while_iterating.patch
--- evolvotron-0.7.1/debian/patches/fix_erasing_while_iterating.patch   
1970-01-01 01:00:00.000000000 +0100
+++ evolvotron-0.7.1/debian/patches/fix_erasing_while_iterating.patch   
2019-05-21 01:39:42.000000000 +0200
@@ -0,0 +1,66 @@
+Description: Fix erasing while iterating
+Author: Jan Nordholz <j.nordh...@tu-berlin.de>
+Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929034#41
+Bug-Debian: https://bugs.debian.org/929034
+Forwarded: yes
+
+Index: evolvotron-0.7.1/libevolvotron/mutatable_image_computer_farm.cpp
+===================================================================
+--- evolvotron-0.7.1.orig/libevolvotron/mutatable_image_computer_farm.cpp
++++ evolvotron-0.7.1/libevolvotron/mutatable_image_computer_farm.cpp
+@@ -72,19 +72,20 @@ void MutatableImageComputerFarm::fasttra
+ {
+   QMutexLocker lock(&_mutex);
+   
+-  // \todo: Inefficient starting search again each time.  Some problem with 
erase otherwise though, but might have been task abort mem leak.
+-  TodoQueue::iterator it;
+-  while (
+-       (
+-        it=std::find_if(_todo.begin(),_todo.end(),predicate_aborted)
+-        )
+-       !=
+-       _todo.end()
+-       )
+-    {
+-      _done[(*it)->display()].insert(*it);
+-      _todo.erase(it);
+-    }  
++  TodoQueue::iterator it = _todo.begin();
++
++  while (it != _todo.end())
++    {
++      if ((*it)->aborted())
++      {
++        _done[(*it)->display()].insert(*it);
++        it = _todo.erase(it);
++      }
++      else
++      {
++        it++;
++      }
++    }
+ }
+ 
+ void MutatableImageComputerFarm::push_todo(const 
boost::shared_ptr<MutatableImageComputerTask>& task)
+@@ -214,7 +215,9 @@ void MutatableImageComputerFarm::abort_f
+       if ((*it)->display()==disp)
+       {
+         (*it)->abort();
+-        _todo.erase(it);
++        it = _todo.erase(it);
++        if (it == _todo.end())
++          break;
+       }
+     }
+   
+@@ -234,7 +237,9 @@ void MutatableImageComputerFarm::abort_f
+         if ((*it1)->display()==disp)
+           {
+             (*it1)->abort();
+-            q.erase(it1);
++            it1 = q.erase(it1);
++            if (it1 == q.end())
++              break;
+           }
+       }
+     }
diff -Nru evolvotron-0.7.1/debian/patches/series 
evolvotron-0.7.1/debian/patches/series
--- evolvotron-0.7.1/debian/patches/series      1970-01-01 01:00:00.000000000 
+0100
+++ evolvotron-0.7.1/debian/patches/series      2019-05-21 01:20:58.000000000 
+0200
@@ -0,0 +1 @@
+fix_erasing_while_iterating.patch
diff -Nru evolvotron-0.7.1/debian/watch evolvotron-0.7.1/debian/watch
--- evolvotron-0.7.1/debian/watch       2016-05-18 23:16:11.000000000 +0200
+++ evolvotron-0.7.1/debian/watch       2019-05-17 00:24:11.000000000 +0200
@@ -1,2 +1,2 @@
 version=3
-http://sf.net/evolvotron/evolvotron-(.*)\.tar\.gz
+https://sf.net/evolvotron/evolvotron-(.*)\.tar\.gz

It has been built successfully on all release architectures as well on
all other architectures except kfreebsd-* where the build is still
pending: https://buildd.debian.org/status/package.php?p=evolvotron

So please:

unblock evolvotron/0.7.1-3

-- System Information:
Debian Release: 10.0
  APT prefers unstable
  APT policy: (990, 'unstable'), (600, 'testing'), (500, 'unstable-debug'), 
(500, 'buildd-unstable'), (110, 'experimental'), (1, 'experimental-debug'), (1, 
'buildd-experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C.UTF-8 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Reply via email to