[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#929336: unblock: evolvotron/0.7.1-3



Package: release.debian.org
Severity: normal
User: release.debian.org@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 <abe@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.nordholz@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 to: