You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Robbe (JIRA)" <ji...@apache.org> on 2019/01/09 11:37:00 UTC

[jira] [Commented] (BEAM-6395) Opcounters sampling test fails for some random seeds on Python3

    [ https://issues.apache.org/jira/browse/BEAM-6395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16738132#comment-16738132 ] 

Robbe commented on BEAM-6395:
-----------------------------

cc: [~tvalentyn], [~robertwb]

> Opcounters sampling test fails for some random seeds on Python3
> ---------------------------------------------------------------
>
>                 Key: BEAM-6395
>                 URL: https://issues.apache.org/jira/browse/BEAM-6395
>             Project: Beam
>          Issue Type: Sub-task
>          Components: sdk-py-core
>            Reporter: Robbe
>            Assignee: Ahmet Altay
>            Priority: Major
>
> test_should_sample (apache_beam.runners.worker.opcounters_test.OperationCountersTest) fails on Python 3 for the specified random seed (1717), but succeeds for other random seeds (eg. 1718).
> It is not clear if this test fails due to Python 3, or because it is not stable for all random seeds.
> According to the [random.seed docs|https://docs.python.org/3/library/random.html#random.seed], reproducing random sequences from older versions of Python should be possible by providing a 'version' argument. However, both with and without this argument, the results differ between python 2 and python 3.
> Using the following test:
> {code}
> import random
> random.seed(1717)
> results = []
> for i in range(10):
>     results.append(round(random.random(), 2))
>     results.append(random.randint(1, 50))
> print(results)
> {code}
> The obtained results are:
>  Python 2:
>  [0.78, 12, 0.94, 6, 0.54, 31, 0.53, 28, 0.44, 33, 0.36, 45, 0.47, 22, 0.71, 40, 0.45, 35, 0.0, 1] 
>  Python 3:
>  [0.78, 15, 0.94, 14, 0.12, 35, 0.22, 10, 0.53, 36, 0.45, 42, 0.65, 12, 0.9, 31, 0.78, 2, 0.71, 50]
>  Python 3 with version=1: 
>  [0.78, 15, 0.94, 14, 0.12, 35, 0.22, 10, 0.53, 36, 0.45, 42, 0.65, 12, 0.9, 31, 0.78, 2, 0.71, 50]
> The Python 3 result does not change due to the 'version' argument, since according to the docs, it only has effect on str or bytes type seeds.
>  
> Relevant test output:
> {noformat}
> ======================================================================
>  FAIL: test_should_sample (apache_beam.runners.worker.opcounters_test.OperationCountersTest)
>  ----------------------------------------------------------------------
>  Traceback (most recent call last):
>  File "/home/robbe/workspace/beam/sdks/python/apache_beam/runners/worker/opcounters_test.py", line 207, in test_should_sample
>  buckets[i] / (10.0 * total_runs / i)))
>  AssertionError: False is not true : i=256, buckets[i]=167, expected=117, ratio=1.425067{noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)