Bug#1028722: [Debichem-devel] Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Hi, On 2023-11-06 14:17, Santiago Vila wrote: Note: I'd like to see this fixed in stable, but RMs require (rightly so) that this is fixed in unstable first. Thanks. You may look into disabling prody's part which uses biopython, maybe this will make it easier to fix the comparison issue in unstable. I don't know whether this is possible, though. Well, I was thinking about something a lot more simple, which is to disable the offending test, since it's clearly a bad test. Disabling the offending test with '==' is fine. However, in sid you will stumble upon #1053865 which is due to a legit test case. If this helps, you may disable this test in sid as well. I understand that this is not the help you expected. However, in return, I can commit myself to checking that whatever new version trying to fix this "the right way" works in Hetzner machines, which are the ones where I can reproduce this problem 100% of the time. This is more than I expect - thanks a lot! It would be best to leave #1053865 for the upstream. Best, Andrius
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Note: I'd like to see this fixed in stable, but RMs require (rightly so) that this is fixed in unstable first. Thanks. You may look into disabling prody's part which uses biopython, maybe this will make it easier to fix the comparison issue in unstable. I don't know whether this is possible, though. Well, I was thinking about something a lot more simple, which is to disable the offending test, since it's clearly a bad test. I understand that this is not the help you expected. However, in return, I can commit myself to checking that whatever new version trying to fix this "the right way" works in Hetzner machines, which are the ones where I can reproduce this problem 100% of the time. Thanks.
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Hi Santiago, On 2023-11-02 01:14, Santiago Vila wrote: El 13/10/23 a las 8:04, Andrius Merkys escribió: To summarize: The failing test is buggy because when it fails it does not necessarily mean that the package was misbuilt, and in my opinion the best thing to do would be to disable it, both in stable and unstable. Trivial patch in the second attach. Many thanks for investigating this issue. I will apply your patch, but prody would still FTBFS in sid and trixie due to unrelated incompatibility with python3-biopython. Note: I'd like to see this fixed in stable, but RMs require (rightly so) that this is fixed in unstable first. Thanks. You may look into disabling prody's part which uses biopython, maybe this will make it easier to fix the comparison issue in unstable. I don't know whether this is possible, though. I would be willing to join debichem and do the work myself if it helps, for this kind of stuff. Sure, feel free to do that. Restoring compatibility with biopython in unstable might be tricky, at least this is what upstream says: https://github.com/prody/ProDy/issues/1723 Best, Andrius
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
El 13/10/23 a las 8:04, Andrius Merkys escribió: To summarize: The failing test is buggy because when it fails it does not necessarily mean that the package was misbuilt, and in my opinion the best thing to do would be to disable it, both in stable and unstable. Trivial patch in the second attach. Many thanks for investigating this issue. I will apply your patch, but prody would still FTBFS in sid and trixie due to unrelated incompatibility with python3-biopython. Note: I'd like to see this fixed in stable, but RMs require (rightly so) that this is fixed in unstable first. I would be willing to join debichem and do the work myself if it helps, for this kind of stuff. Thanks.
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Hello, On 2023-10-12 21:22, Santiago Vila wrote: To summarize: The failing test is buggy because when it fails it does not necessarily mean that the package was misbuilt, and in my opinion the best thing to do would be to disable it, both in stable and unstable. Trivial patch in the second attach. Many thanks for investigating this issue. I will apply your patch, but prody would still FTBFS in sid and trixie due to unrelated incompatibility with python3-biopython. Best, Andrius
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
tags 1028722 + patch thanks Hello. I asked Drew Parsons to look at this bug because he reported a similar bug with severity:serious here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1053265 In both cases the failure happens while comparing floating point numbers using the equality comparison operator (==), or something similarly dangerous. It's true that in a first look it might seem that it's comparing integer numbers, but as upstream explains here: https://github.com/prody/ProDy/issues/1594#issuecomment-1748400116 it's actually comparing vectors of floating point numbers and after that it's counting the number of matches between those vectors. This is known to be a bad practice and should be avoided, as machines with different floating point implementations may yield different results for the "same" math operation. This is why it fails 100% of the time in the virtual machines from Hetzner where I tried, and for this reason I would consider this to be a violation of Policy 4.2. As an experiment (suggested by Drew) I ran today "autopkgtest -B -- null" on a Hetzner machine using the installed packages from the archive (built by the official buildds) and as expected it also fails that way (see first attach). To summarize: The failing test is buggy because when it fails it does not necessarily mean that the package was misbuilt, and in my opinion the best thing to do would be to disable it, both in stable and unstable. Trivial patch in the second attach. Thanks.=== FAILURES === __ TestSelect.testFunctionSelection13 __ self = pdb = 'pdb3mht', test = ('abs(x) == sqrt(sq(x))', 3211), type_ = 'function' kwargs = {}, atoms = selstr = 'abs(x) == sqrt(sq(x))', natoms = 3211, selstr2 = None sel = array([ 0,1,2, ..., 3208, 3209, 3210]) def func(self, pdb=case, test=test, type_=type_, **kwargs): atoms = SELECTION_TESTS[pdb]['ag'] selstr = test[0] natoms = test[1] selstr2 = None kwargs = EMPTYDICT if len(test) == 3: selstr2 = test[2] if len(test) == 4: kwargs = test[3] if natoms is None: self.assertRaises(prody.select.SelectionError, SELECT.getIndices, atoms, selstr, **kwargs) elif selstr2 is None: sel = SELECT.getIndices(atoms, selstr, **kwargs) > self.assertEqual(len(sel), natoms, 'selection {0} for {1} failed, expected ' '{2}, selected {3}'.format(repr(selstr), str(atoms), natoms, len(sel))) E AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for AtomGroup 3mht failed, expected 3211, selected 3205 tests/atomic/test_select.py:442: AssertionError __ TestSelect.testFunctionSelection14 __ self = pdb = 'pdb3mht', test = ('abs(x) == sqrt(sq(x))', 3211), type_ = 'function' kwargs = {}, atoms = selstr = 'abs(x) == sqrt(sq(x))', natoms = 3211, selstr2 = None sel = array([ 0,1,2, ..., 3208, 3209, 3210]) @dec.slow def func(self, pdb=case, test=test, type_=type_, **kwargs): atoms = SELECTION_TESTS[pdb]['all'] selstr = test[0] natoms = test[1] selstr2 = None kwargs = EMPTYDICT if len(test) == 3: selstr2 = test[2] if len(test) == 4: kwargs = test[3] if natoms is None: self.assertRaises(prody.select.SelectionError, SELECT.getIndices, atoms, selstr, **kwargs) elif selstr2 is None: sel = SELECT.getIndices(atoms, selstr, **kwargs) > self.assertEqual(len(sel), natoms, 'selection {0} for {1} failed, expected ' '{2}, selected {3}'.format(repr(selstr), str(atoms), natoms, len(sel))) E AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205 tests/atomic/test_select.py:483: AssertionError === warnings summary === utilities/misctools.py:424 /usr/lib/python3/dist-packages/prody/utilities/misctools.py:424: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources ../Bio/pairwise2.py:278 /usr/lib/python3/dist-packages/Bio/pairwise2.py:278: BiopythonDeprecationWarning: Bio.pairwise2 has been deprecated, and we intend to remove it in a future release of Biopython. As an alternative, please consider using Bio.Align.PairwiseAligner as a replacement, and contact the Biopython developers if you still need the Bio.pairwise2 module. warnings.warn( apps/evol_apps/__init__.py:3 /usr/lib/python3/dist-packages/prody/apps/evol_apps/__init__.py:3: DeprecationWarning: the imp module is de
Bug#1028722: [Debichem-devel] Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Hello, On 2023-09-30 15:11, Drew Parsons wrote: There seems to be ambiguity about the reproducibility of this bug. That's possibly consistent with problems with rounding, though the bug here seems to be more than an issue with floating point precision. Upstream has made a new release. I suggest packaging and uploading the new version. That will give more fresh information on the state of the build, whether the FTBFS is reliably reproducible. prody is incompatible with the version of python3-biopython in Debian, even in the new upstream release. Upstream has been informed about that [1]. I am OK with letting prody fall out of testing, unless someone wants to help the upstream to update to newer python3-biopython. [1] https://github.com/prody/ProDy/issues/1723 Best, Andrius
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Source: prody Followup-For: Bug #1028722 There seems to be ambiguity about the reproducibility of this bug. That's possibly consistent with problems with rounding, though the bug here seems to be more than an issue with floating point precision. Upstream has made a new release. I suggest packaging and uploading the new version. That will give more fresh information on the state of the build, whether the FTBFS is reliably reproducible.
Bug#1028722: [Debichem-devel] Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Hi, On 27/01/23 at 14:31 +0200, Andrius Merkys wrote: > Control: severity -1 important > Control: tags -1 + moreinfo unreproducible > > Hello, > > On 2023-01-27 13:40, Adrian Bunk wrote: > > On Sat, Jan 14, 2023 at 01:42:10PM +0100, Lucas Nussbaum wrote: > > > Source: prody > > > Version: 2.3.1+dfsg-3 > > > Severity: serious > > > Justification: FTBFS > > > Tags: bookworm sid ftbfs > > > User: lu...@debian.org > > > Usertags: ftbfs-20230113 ftbfs-bookworm > > > > > > Hi, > > > > > > During a rebuild of all packages in sid, your package failed to build > > > on amd64. > > > ... > > > > == > > > > FAIL: testFunctionSelection13 > > > > (prody.tests.atomic.test_select.TestSelect) > > > > Test function selections 'abs(x) == sqrt(sq(x))' for pdb3mht > > > > -- > > > > Traceback (most recent call last): > > > >File > > > > "/<>/.pybuild/cpython3_3.10_prody/build/prody/tests/atomic/test_select.py", > > > > line 442, in func > > > > self.assertEqual(len(sel), natoms, > > > > AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for > > > > AtomGroup 3mht failed, expected 3211, selected 3205 > > > > > > > > == > > > > FAIL: testFunctionSelection14 > > > > (prody.tests.atomic.test_select.TestSelect) > > > > Test function selections "abs(x) == sqrt(sq(x))" > > > > -- > > > > Traceback (most recent call last): > > > >File > > > > "/<>/.pybuild/cpython3_3.10_prody/build/prody/tests/atomic/test_select.py", > > > > line 483, in func > > > > self.assertEqual(len(sel), natoms, > > > > AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for > > > > Selection 'all' failed, expected 3211, selected 3205 > > > > > > > > -- > > > > Ran 954 tests in 46.514s > > > > > > > > FAILED (failures=2, skipped=37) > > > ... > > > > Are you still able to reproduce this? > > > > It built both on the buildds and in reproducible: > > https://buildd.debian.org/status/package.php?p=prody > > https://tests.reproducible-builds.org/debian/history/prody.html > > I cannot reproduce this neither in sid nor bookworm. Maybe this has > something to do with temporary broken numpy. It still fails for me Lucas
Bug#1028722: [Debichem-devel] Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
Control: severity -1 important Control: tags -1 + moreinfo unreproducible Hello, On 2023-01-27 13:40, Adrian Bunk wrote: On Sat, Jan 14, 2023 at 01:42:10PM +0100, Lucas Nussbaum wrote: Source: prody Version: 2.3.1+dfsg-3 Severity: serious Justification: FTBFS Tags: bookworm sid ftbfs User: lu...@debian.org Usertags: ftbfs-20230113 ftbfs-bookworm Hi, During a rebuild of all packages in sid, your package failed to build on amd64. ... == FAIL: testFunctionSelection13 (prody.tests.atomic.test_select.TestSelect) Test function selections 'abs(x) == sqrt(sq(x))' for pdb3mht -- Traceback (most recent call last): File "/<>/.pybuild/cpython3_3.10_prody/build/prody/tests/atomic/test_select.py", line 442, in func self.assertEqual(len(sel), natoms, AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for AtomGroup 3mht failed, expected 3211, selected 3205 == FAIL: testFunctionSelection14 (prody.tests.atomic.test_select.TestSelect) Test function selections "abs(x) == sqrt(sq(x))" -- Traceback (most recent call last): File "/<>/.pybuild/cpython3_3.10_prody/build/prody/tests/atomic/test_select.py", line 483, in func self.assertEqual(len(sel), natoms, AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205 -- Ran 954 tests in 46.514s FAILED (failures=2, skipped=37) ... Are you still able to reproduce this? It built both on the buildds and in reproducible: https://buildd.debian.org/status/package.php?p=prody https://tests.reproducible-builds.org/debian/history/prody.html I cannot reproduce this neither in sid nor bookworm. Maybe this has something to do with temporary broken numpy. Andrius
Bug#1028722: prody: FTBFS: AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for Selection 'all' failed, expected 3211, selected 3205
On Sat, Jan 14, 2023 at 01:42:10PM +0100, Lucas Nussbaum wrote: > Source: prody > Version: 2.3.1+dfsg-3 > Severity: serious > Justification: FTBFS > Tags: bookworm sid ftbfs > User: lu...@debian.org > Usertags: ftbfs-20230113 ftbfs-bookworm > > Hi, > > During a rebuild of all packages in sid, your package failed to build > on amd64. >... > > == > > FAIL: testFunctionSelection13 (prody.tests.atomic.test_select.TestSelect) > > Test function selections 'abs(x) == sqrt(sq(x))' for pdb3mht > > -- > > Traceback (most recent call last): > > File > > "/<>/.pybuild/cpython3_3.10_prody/build/prody/tests/atomic/test_select.py", > > line 442, in func > > self.assertEqual(len(sel), natoms, > > AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for > > AtomGroup 3mht failed, expected 3211, selected 3205 > > > > == > > FAIL: testFunctionSelection14 (prody.tests.atomic.test_select.TestSelect) > > Test function selections "abs(x) == sqrt(sq(x))" > > -- > > Traceback (most recent call last): > > File > > "/<>/.pybuild/cpython3_3.10_prody/build/prody/tests/atomic/test_select.py", > > line 483, in func > > self.assertEqual(len(sel), natoms, > > AssertionError: 3205 != 3211 : selection 'abs(x) == sqrt(sq(x))' for > > Selection 'all' failed, expected 3211, selected 3205 > > > > -- > > Ran 954 tests in 46.514s > > > > FAILED (failures=2, skipped=37) >... Are you still able to reproduce this? It built both on the buildds and in reproducible: https://buildd.debian.org/status/package.php?p=prody https://tests.reproducible-builds.org/debian/history/prody.html Thanks Adrian