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

Bug#860310: marked as done (unblock pre-apptoval request for yade/2017.01a-8)



Your message dated Wed, 19 Apr 2017 09:08:00 +0000
with message-id <ac1b447b-ea2d-040d-ceda-3c4cabb08869@thykier.net>
and subject line Re: Bug#860310: unblock pre-apptoval request for yade/2017.01a-8
has caused the Debian Bug report #860310,
regarding unblock pre-apptoval request for yade/2017.01a-8
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
860310: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860310
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package yade

Yade upstream have found a critical bug in so-called periodic
boundaries contact detection [1]. It would be good to have this
fix in Debian as well. I cherry-picked the upstream's patch,
which is attached to this mail.

unblock yade/2017.01a-8

[1] http://www.mail-archive.com/yade-dev@lists.launchpad.net/msg12355.html


Thanks,

Anton
diff -Nru yade-2017.01a/debian/changelog yade-2017.01a/debian/changelog
--- yade-2017.01a/debian/changelog	2017-02-28 22:03:24.000000000 +0100
+++ yade-2017.01a/debian/changelog	2017-04-14 12:43:59.000000000 +0200
@@ -1,3 +1,10 @@
+yade (2017.01a-8) unstable; urgency=medium
+
+  [ Bruno Chareyre ]
+  * [be08409] Critical bugfix for periodic boundaries.
+
+ -- Anton Gladky <gladk@debian.org>  Fri, 14 Apr 2017 12:43:59 +0200
+
 yade (2017.01a-7) unstable; urgency=medium
 
   * [31387da] Add missing dependency on python-pyqt5.qtsvg in python-yade.
diff -Nru yade-2017.01a/debian/patches/09_fix_periodic_boundaries.patch yade-2017.01a/debian/patches/09_fix_periodic_boundaries.patch
--- yade-2017.01a/debian/patches/09_fix_periodic_boundaries.patch	1970-01-01 01:00:00.000000000 +0100
+++ yade-2017.01a/debian/patches/09_fix_periodic_boundaries.patch	2017-04-14 12:42:33.000000000 +0200
@@ -0,0 +1,28 @@
+From c7c8e6f62d452c81a31415f05a12587a6cc8c452 Mon Sep 17 00:00:00 2001
+From: bchareyre <bruno.chareyre@grenoble-inp.fr>
+Date: Fri, 14 Apr 2017 12:04:32 +0200
+Subject: [PATCH] Critical bugfix for collision detection in periodic boundary
+ conditions. Bounds lists were left partially unordered,  then some
+ interactions were never detected (my toughest yade debugging until now).
+
+---
+ pkg/common/InsertionSortCollider.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/pkg/common/InsertionSortCollider.cpp b/pkg/common/InsertionSortCollider.cpp
+index dc5d7ac..163a4f4 100644
+--- a/pkg/common/InsertionSortCollider.cpp
++++ b/pkg/common/InsertionSortCollider.cpp
+@@ -410,8 +410,10 @@ Real InsertionSortCollider::cellWrapRel(const Real x, const Real x0, const Real
+ void InsertionSortCollider::insertionSortPeri(VecBounds& v, InteractionContainer* interactions, Scene*, bool doCollide){
+ 	assert(periodic);
+ 	long &loIdx=v.loIdx; const long &size=v.size;
+-	for(long _i=0; _i<size; _i++){
+-		const long i=v.norm(_i);
++	/* We have to visit each bound at least once (first condition), but this is not enough. The correct ordering in the begining of the list needs a second pass to connect begin and end consistently (the second condition). Strictly the second condition should include "+ (v.norm(j+1)==loIdx ? v.cellDim : 0)" but it is ok as is since the shift is added inside the loop. */
++	long _i=0;
++	for(; (_i<size) || (v[v.norm(_i)].coord <  v[v.norm(_i-1)].coord); _i++){
++		const long i=v.norm(_i);//FIXME: useless, and many others can probably be removed
+ 		const long i_1=v.norm(i-1);
+ 		//switch period of (i) if the coord is below the lower edge cooridnate-wise and just above the split
+ 		if(i==loIdx && v[i].coord<0){ v[i].period-=1; v[i].coord+=v.cellDim; loIdx=v.norm(loIdx+1); }
diff -Nru yade-2017.01a/debian/patches/series yade-2017.01a/debian/patches/series
--- yade-2017.01a/debian/patches/series	2017-02-26 20:21:22.000000000 +0100
+++ yade-2017.01a/debian/patches/series	2017-04-14 12:42:59.000000000 +0200
@@ -1,3 +1,4 @@
 01_remove_google_analytics.patch
 08_fix_gui.patch
+09_fix_periodic_boundaries.patch
 

--- End Message ---
--- Begin Message ---
Anton Gladky:
> tags 860310 -moreinfo
> thanks
> 
> Hi Niels,
> 
> yade_2017.01a-8 has been succesfully built on all relevant release
> platforms [1].
> 
> [1] https://buildd.debian.org/status/package.php?p=yade
> 
> Best regards
> 
> Anton
> 
> 
> 2017-04-17 13:07 GMT+02:00 Niels Thykier <niels@thykier.net>:
>> Ack, please go ahead and let us know when the upload has been built on
>> all relevant release architectures.

Unblocked, thanks.

~Niels

--- End Message ---

Reply to: