[pkg-go] Bug#796400: Bug#796400: golang-github-jacobsa-ratelimit: Non-determistically FTBFS due to unreliable timing in tests
Aaron Jacobs
jacobsa at google.com
Sun Aug 23 21:47:43 UTC 2015
Yes, this is a test for an object whose functionality is based on wall time, so
it uses wall time. I know that makes it flaky and in general I try to avoid
such tests, but it was a conscious decision here.
The best way to deal with this may be to just delete the package. Michael, I
apologize because I know you've spent a bunch of time on this, but it seems
like the Debian packaging model just doesn't work out for us. (In particular:
lack of support for vendoring and needing a separate package per tiny
dependency.) :-(
Aaron
On Sun, Aug 23, 2015 at 9:08 PM, Michael Stapelberg
<stapelberg at debian.org> wrote:
> Aaron, could you take a look at this problem please? It seems to me
> like this is a shortcoming of your tests, unrelated to Debian.
>
> On Fri, Aug 21, 2015 at 8:44 PM, Chris Lamb <lamby at debian.org> wrote:
>> Source: golang-github-jacobsa-ratelimit
>> Version: 0.0~git20150723.0.2ca5e0c-1
>> Severity: serious
>> Justification: fails to build from source
>> User: reproducible-builds at lists.alioth.debian.org
>> Usertags: ftbfs
>> X-Debbugs-Cc: reproducible-builds at lists.alioth.debian.org
>>
>> Dear Maintainer,
>>
>> golang-github-jacobsa-ratelimit's testsuite appears to use method
>> timing/benchmarking in such
>> a way that it will non-deterministically FTBFS:
>>
>> throttle_test.go:
>> expected := smallerRateHz * (float64(perCaseDuration) /
>> float64(time.Second))
>>
>> For example:
>>
>> [..]
>> go test -v github.com/jacobsa/ratelimit
>> === RUN TestThrottle
>> [----------] Running tests from ThrottleTest
>> [ RUN ] ThrottleTest.IntegrationTest
>> throttle_test.go:202:
>> Expected: greater than 135, and less than 165
>> Actual: 88
>> Test case 0. expected: 150.000000
>>
>> throttle_test.go:202:
>> Expected: greater than 180, and less than 220.00000000000003
>> Actual: 138
>> Test case 1. expected: 200.000000
>>
>> throttle_test.go:202:
>> Expected: greater than 180, and less than 220.00000000000003
>> Actual: 163
>> Test case 2. expected: 200.000000
>>
>> [ FAILED ] ThrottleTest.IntegrationTest (6.031585896s)
>> [----------] Finished with tests from ThrottleTest
>> [----------] Running tests from ThrottledReaderTest
>> [ RUN ] ThrottledReaderTest.CallsThrottle
>> [ OK ] ThrottledReaderTest.CallsThrottle
>> [ RUN ] ThrottledReaderTest.ThrottleReturnsError
>> [ OK ] ThrottledReaderTest.ThrottleReturnsError
>> [ RUN ] ThrottledReaderTest.CallsWrapped
>> [ OK ] ThrottledReaderTest.CallsWrapped
>> [ RUN ] ThrottledReaderTest.WrappedReturnsError
>> [ OK ] ThrottledReaderTest.WrappedReturnsError
>> [ RUN ] ThrottledReaderTest.WrappedReturnsEOF
>> [ OK ] ThrottledReaderTest.WrappedReturnsEOF
>> [ RUN ] ThrottledReaderTest.WrappedReturnsFullRead
>> [ OK ] ThrottledReaderTest.WrappedReturnsFullRead
>> [ RUN ] ThrottledReaderTest.WrappedReturnsShortRead_CallsAgain
>> [ OK ] ThrottledReaderTest.WrappedReturnsShortRead_CallsAgain
>> [ RUN ]
>> ThrottledReaderTest.WrappedReturnsShortRead_SecondReturnsError
>> [ OK ]
>> ThrottledReaderTest.WrappedReturnsShortRead_SecondReturnsError
>> [ RUN ]
>> ThrottledReaderTest.WrappedReturnsShortRead_SecondReturnsEOF
>> [ OK ]
>> ThrottledReaderTest.WrappedReturnsShortRead_SecondReturnsEOF
>> [ RUN ]
>> ThrottledReaderTest.WrappedReturnsShortRead_SecondSucceedsInFull
>> [ OK ]
>> ThrottledReaderTest.WrappedReturnsShortRead_SecondSucceedsInFull
>> [ RUN ] ThrottledReaderTest.ReadSizeIsAboveThrottleCapacity
>> [ OK ] ThrottledReaderTest.ReadSizeIsAboveThrottleCapacity
>> [----------] Finished with tests from ThrottledReaderTest
>> [----------] Running tests from TokenBucketTest
>> [ RUN ] TokenBucketTest.CarefulAccounting
>> [ OK ] TokenBucketTest.CarefulAccounting
>> [----------] Finished with tests from TokenBucketTest
>> --- FAIL: TestThrottle (6.03s)
>> === RUN TestThrottledReader
>> --- PASS: TestThrottledReader (0.00s)
>> === RUN TestTokenBucket
>> --- PASS: TestTokenBucket (0.00s)
>> FAIL
>> exit status 1
>> FAIL github.com/jacobsa/ratelimit 6.074s
>> dh_auto_test: go test -v github.com/jacobsa/ratelimit returned exit
>> code 1
>> debian/rules:6: recipe for target 'build' failed
>> make: *** [build] Error 1
>> dpkg-buildpackage: error: debian/rules build gave error exit status 2
>>
>> [..]
>>
>> The full build log is attached or can be viewed here:
>>
>> https://reproducible.debian.net/logs/unstable/amd64/golang-github-jacobsa-ratelimit_0.0~git20150723.0.2ca5e0c-1.build2.log.gz
>>
>>
>> Regards,
>>
>> --
>> ,''`.
>> : :' : Chris Lamb
>> `. `'` lamby at debian.org / chris-lamb.co.uk
>> `-
>>
>> _______________________________________________
>> Pkg-go-maintainers mailing list
>> Pkg-go-maintainers at lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-go-maintainers
>
>
>
> --
> Best regards,
> Michael
More information about the Pkg-go-maintainers
mailing list