Your message dated Sun, 25 Sep 2016 17:06:39 +0000
with message-id <e1bocsx-0000qi...@franck.debian.org>
and subject line Bug#838828: fixed in pyeapi 0.7.0-1
has caused the Debian Bug report #838828,
regarding pyeapi: FTBFS 286019 times out of 41990400 (approx 1 every 147 times)
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 ow...@bugs.debian.org
immediately.)


-- 
838828: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838828
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:pyeapi
Version: 0.6.1-2
Severity: serious

Dear maintainer:

I tried to build this package in stretch with "dpkg-buildpackage -A"
(which is what the "Arch: all" autobuilder would do to build it)
but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --with python3,python2,sphinxdoc --buildsystem=pybuild
   dh_testdir -i -O--buildsystem=pybuild
   dh_update_autotools_config -i -O--buildsystem=pybuild
   dh_auto_configure -i -O--buildsystem=pybuild
I: pybuild base:184: python2.7 setup.py config 
running config
I: pybuild base:184: python3.5 setup.py config 
running config
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_build
I: pybuild base:184: /usr/bin/python setup.py build 

[... snipped ...]

test_make_connection_raises_typeerror (test_client.TestClient) ... ok
test_missing_connection_raises_attribute_error (test_client.TestClient) ... ok
test_node_hasattr_connection (test_client.TestClient) ... ok
test_node_repr_returns (test_client.TestClient) ... ok
test_node_returns_cached_startup_confgi (test_client.TestClient) ... ok
test_node_returns_running_config (test_client.TestClient) ... ok
test_node_returns_startup_config (test_client.TestClient) ... ok
test_node_str_returns (test_client.TestClient) ... ok
test_api_autoloader (test_client.TestNode) ... ok
test_config_with_multiple_commands (test_client.TestNode) ... ok
test_config_with_multiple_multilines (test_client.TestNode) ... ok
test_config_with_single_command (test_client.TestNode) ... ok
test_config_with_single_multiline (test_client.TestNode) ... ok
test_enable_authentication (test_client.TestNode) ... ok
test_enable_with_config_statement (test_client.TestNode) ... ok
test_enable_with_multiple_commands (test_client.TestNode) ... ok
test_enable_with_single_command (test_client.TestNode) ... ok
test_get_config (test_client.TestNode) ... ok
test_get_config_as_string (test_client.TestNode) ... ok
test_get_config_raises_type_error (test_client.TestNode) ... ok
test_collapse_mixed (test_utils.TestUtils) ... ok
test_collapse_range (test_utils.TestUtils) ... ok
test_collapse_singles (test_utils.TestUtils) ... ok
test_debug (test_utils.TestUtils) ... ok
test_expand_mixed (test_utils.TestUtils) ... ok
test_expand_range (test_utils.TestUtils) ... ok
test_expand_singles (test_utils.TestUtils) ... ok
test_import_module (test_utils.TestUtils) ... ok
test_import_module_raises_import_error (test_utils.TestUtils) ... ok
test_load_module (test_utils.TestUtils) ... ok
test_load_module_raises_import_error (test_utils.TestUtils) ... ok
test_make_iterable_from_iterable (test_utils.TestUtils) ... ok
test_make_iterable_from_string (test_utils.TestUtils) ... ok
test_make_iterable_raises_type_error (test_utils.TestUtils) ... ok

======================================================================
FAIL: test_isvlan_with_string (test_api_vlans.TestApiVlans)
----------------------------------------------------------------------
Traceback (most recent call last):
  File 
"/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build/test/unit/test_api_vlans.py", 
line 52, in test_isvlan_with_string
    self.assertFalse(pyeapi.api.vlans.isvlan(random_string()))
AssertionError: True is not false

----------------------------------------------------------------------
Ran 333 tests in 0.233s

FAILED (failures=1)
E: pybuild pybuild:276: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build; python2.7 -m unittest discover 
-v test/unit
dh_auto_test: pybuild --test -i python{version} -p 2.7 returned exit code 13
debian/rules:6: recipe for target 'build-indep' failed
make: *** [build-indep] Error 25
dpkg-buildpackage: error: debian/rules build-indep gave error exit status 2
--------------------------------------------------------------------------------

The failing test creates a random string and then ensures that it's
not a valid vlan value (a number between 1 and 4094).

So this is what happens:

1 out of 50 times the string will have length 1.
Of those, 9 out of 10+26 times the string will be a valid vlan.
(from 1 to 9)

1 out of 50 times the string will have length 2.
Of those, 90 out of (10+26)**2 times the string will be a valid vlan.
(from 10 to 99)

1 out of 50 times the string will have length 3.
Of those, 900 out of (10+26)**3 times the string will be a valid vlan.
(from 100 to 999)

1 out of 50 times the string will have length 4.
Of those, 3094 out of (10+26)**4 times the string will be a valid vlan.
(from 1000 to 4094)

So I estimate that the probability that this fails is:

1/50*(9/b+90/b**2+900/b**3+3094/b**4) = 286019/41990400,
where b=10+26, i.e. approximately once every 147 times,
which of course is > 0 and not good enough.

To see how easy this is to happen, just try the program below.

TLDR: Please disable such test, we want tests to always succeed,
not just "most of the time".

Thanks.

#!/usr/bin/python
import random
import string

def isvlan(value):
  try:
    value = int(value)
    return value in range(1, 4095)
  except ValueError:
    return False

def random_string(minchar=1, maxchar=50):
  return ''.join(random.choice(string.ascii_uppercase + string.digits)
    for _ in range(random.randint(minchar, maxchar)))

while True:
  r=random_string()
  if isvlan(r):
    print r

--- End Message ---
--- Begin Message ---
Source: pyeapi
Source-Version: 0.7.0-1

We believe that the bug you reported is fixed in the latest version of
pyeapi, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 838...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Vincent Bernat <ber...@debian.org> (supplier of updated pyeapi package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sun, 25 Sep 2016 17:42:47 +0200
Source: pyeapi
Binary: python-pyeapi python3-pyeapi python-pyeapi-doc
Architecture: source all
Version: 0.7.0-1
Distribution: unstable
Urgency: medium
Maintainer: Vincent Bernat <ber...@debian.org>
Changed-By: Vincent Bernat <ber...@debian.org>
Description:
 python-pyeapi - Python API to interact with EOS network devices - Python 2.x
 python-pyeapi-doc - Python API to interact with EOS network devices - docs
 python3-pyeapi - Python API to interact with EOS network devices - Python 3.x
Closes: 838828
Changes:
 pyeapi (0.7.0-1) unstable; urgency=medium
 .
   * New upstream version.
   * d/patches: fix test case when random is a valid VLAN. Closes: #838828.
Checksums-Sha1:
 182406269a3e0e6b0be6787acc0fff7d0b6acf9f 2245 pyeapi_0.7.0-1.dsc
 4024662ccd4f2915508a0e65698209967dd4ea5b 120412 pyeapi_0.7.0.orig.tar.gz
 748d927e37e1beeee7b86ac6b5c73b19d86a92f5 3708 pyeapi_0.7.0-1.debian.tar.xz
 cb12e25f340e673ce9242f46287fcf1325792aad 39370 
python-pyeapi-doc_0.7.0-1_all.deb
 98c41cb4e72f95b114ff3f79f1c9a112ba125713 45770 python-pyeapi_0.7.0-1_all.deb
 dc36191a8a9f755f435bb4bff674c57947265188 45846 python3-pyeapi_0.7.0-1_all.deb
Checksums-Sha256:
 c275000a882db0a2c9cc34adea02c41f369dc52c0525417c3f77bbcc554fec8e 2245 
pyeapi_0.7.0-1.dsc
 27dd247be90628ff578ad8b21a2815cf841048b8af1b01335adee2ac118579a9 120412 
pyeapi_0.7.0.orig.tar.gz
 a4ecf0f5fbe9297f657c155a870cb88728eb70d3ac0bb11452def942efece54e 3708 
pyeapi_0.7.0-1.debian.tar.xz
 00fec096d9d475b32f5d85134f0ac3754a81e1569b2163ad6f8a3aa9bd6096fe 39370 
python-pyeapi-doc_0.7.0-1_all.deb
 12b766eb9e1a2a5b428ebe2b532063d92c33e9971306c5a4130890cb7b19b86d 45770 
python-pyeapi_0.7.0-1_all.deb
 63adf6fd64950d72e449fc4f85ff1e3c455fd3e932da3b4bc06f2cc551cb3b6d 45846 
python3-pyeapi_0.7.0-1_all.deb
Files:
 77f372aa0342a0422f1911dc10f85e49 2245 python optional pyeapi_0.7.0-1.dsc
 8fdfa80b73ce7a83f1e27476948ea680 120412 python optional 
pyeapi_0.7.0.orig.tar.gz
 8c1b927fb8661e524c75533c26719b19 3708 python optional 
pyeapi_0.7.0-1.debian.tar.xz
 f22c22e5aec64a485cec07a45a13df61 39370 doc extra 
python-pyeapi-doc_0.7.0-1_all.deb
 c33faa776ab4711d1f241e1f7bbcdfc7 45770 python optional 
python-pyeapi_0.7.0-1_all.deb
 a7c7627d9c4b663edcf42ff0ef4775c4 45846 python optional 
python3-pyeapi_0.7.0-1_all.deb

-----BEGIN PGP SIGNATURE-----

iQIvBAEBCAAZBQJX5/EZEhxiZXJuYXRAZGViaWFuLm9yZwAKCRCVpC/oNTUl+QnO
D/93da9kgXgcSLgvHQARdA/ZLh//+mJdFinAiTegUrQ8VHYgC21ULHUbOr8Pk1uR
gOdrY2jkHQVs82lG92KHETurUU1sG9t2suUFzU9DckJdPQ6rvWKAO5ehp76fidP7
6mJIE7jqpDyThB2xz4ri7s6MdM24tU96JGgbQY2sNJshqMnZE60bA2yAPQuDsWi/
b2FtY2+dE+gpCXFv9vpsDhFznlL3agfFySrq9xBrwBvNZbRf3kJqqw/3R86rOCw4
vuM6uNbro7Qhk1JAKy73fr1aFxLQuuH9HBFNxbV0aZW+LkhLz/JCzAR+J6ORQ6mO
8F0ejHvBu11ED5LgA01WsmV7RghCgYch/xHAHQegqmmmvEX1GVPvcJ4H06+Asjy1
jJK2+9B3/Ez6VU/vMqFkk4/QkB2j04RbaPKVZw9A+Uvn333jvGhQuWojDd0uXLXm
b1U7c6BBY+nTmMjgjlrIePtkjPFXzOVLV3twx1IwB5sY8znrTbj8GSpg82IxhPOq
v0PJDv7RSwCp9uPX+lXorUvz8xvzjpeZa9g5BqfRfpoW+o86QUhwt/1hC307raA/
hzV5t8oPBUgvgJM6/g4/+jUZIhWR+7LWGJkBVeE9LdI8OEsJ4yxP3hifwsSIxVop
Fsyw2EA/6W+/lhS84nZS3JRSKbYCMUJ3X3+LSzPMGruDnw==
=0JqG
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to