Changes between Initial Version and Version 1 of Ticket #27827, comment 3


Ignore:
Timestamp:
Sep 23, 2018, 9:17:04 PM (6 months ago)
Author:
dcf
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #27827, comment 3

    initial v1  
    11The difference is different ordering of some symbols/path in the snowflake-client binary. Notice how (except for `cgo-gcc-prolog`), it's different orderings of three blocks, color coded below.
    22
    3 Notice also that each block contains a `/tmp/go-buildXXXXXXXXX` string. These come from [https://gitweb.torproject.org/builders/tor-browser-build.git/tree/projects/snowflake/build?h=tbb-8.5a2-build3#n38 the snowflake build descriptor]: the `XXXXXXXXX` overwrites a random number. What I suspect is happening is, the go compiler is generating three distinct random `/tmp/go-buildXXXXXXXXX` paths and sorting the blocks on them; then the build descriptor overwrites them all.
     3Notice also that each block contains a `/tmp/go-buildXXXXXXXXX` string. These come from [https://gitweb.torproject.org/builders/tor-browser-build.git/tree/projects/snowflake/build?h=tbb-8.5a2-build3#n38 the snowflake build descriptor]: the `XXXXXXXXX` overwrites a random number. What I suspect is happening is, the go compiler is generating three distinct random `/tmp/go-buildXXXXXXXXX` paths and sorting the blocks on them; then the build descriptor overwrites them all. Therefore each build randomly gets one of the six possible permutations.
    44
    55The overwriting is a workaround for the upstream Go bug [https://github.com/golang/go/issues/9206 #9206], which is now marked closed. The first thing I would try is upgrading to a newer Go and seeing if it just gets fixed.