Chris Lamb [2015-12-28 21:18 +0000]:
>   ./test_blame.sh
>   ln: failed to create symbolic link 
> ‘/tmp/tmp.qdthkLehjc/data/packages/unstable/amd64/f/foobar/20151228_221440.autopkgtest.log.gz’:
>  File exists
>   ln: failed to create symbolic link 
> ‘/tmp/tmp.VTKBDbCmvI/data/packages/unstable/amd64/f/foobar/20151228_221449.autopkgtest.log.gz’:
>  File exists

I see that in Ubuntu's production CI tests too, and I can reproduce it
reliably. Keeping some notes from my initial investigation for the
record:

 - Tests currently use real-time timestamps, and as a single process()
   run usually takes less than a second, the chance that two
   successive calls to process() use the same timestamp is thus very
   high.

 - process() does "__day=$(($__day + 1))" but that's not being used
   anywhere. The intention was certainly to use that to forge the
   timestamps.

 - This happened until
   http://anonscm.debian.org/cgit/collab-maint/debci.git/commit/?id=499f3d0f
   which removed the usage of faketime. Antonio says that using
   faketime created other problems.

 - One possibility is to add a "sleep 1" to process() so that the time
   stamps are guaranteed to be different. This makes the tests a tad
   slower, but would at least fix this RC bug for the time being.

Martin
-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

Reply via email to