Re: juju bootstrap w/ gccgo built cli and tools
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 2013-12-06 6:24, David Cheney wrote: Ok, good news first. gccgo compiled tools work fine. statically linking libgo also makes the tools as self contained as our gc compiled ones. Bad news, jujud is 40mb, -Os or -O2 effect, in fact the latter makes it a bit larger the binaries cannot be stripped, the debug data is required for operation of the program, i'm guessing gccgo's reflection implementation requires the debug symbols. Dave Two tidbits from me: 1) jujud on my system is 20MB, so this is approx 2x larger. A fair amount, but I think with compression we saw it wasn't quite as big of a deal (4.6MB vs 5.5MB in tgz form for the last test, but that was a smaller binary). 2) The Ubuntu security team would *really* like it if we used a system libgo.so so that they could supply security fixes for it (like the built in SSL libs) without having to have us rebuild all of our jujud binaries. Which would save us some of that size (I think you said approx 10MB was libgo.so), at a cost of having to have a libgo package for all supported platforms. If we name the package appropriately (libgo-1.1, etc) then we can probably even still migrate to a different version of the runtime when it becomes useful (we just install a different package in cloud-init). John =:- -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.13 (Cygwin) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEUEARECAAYFAlKhVPYACgkQJdeBCYSNAAMAGgCXRPrIqBlFaHOEAuLA4zRZGarV ZACfS1NM6K6bIZHzaRTBvxO8f/LRrKE= =Xa62 -END PGP SIGNATURE- -- Juju-dev mailing list Juju-dev@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev
Re: juju bootstrap w/ gccgo built cli and tools
On Fri, Dec 6, 2013 at 3:39 PM, John Arbash Meinel j...@arbash-meinel.com wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 2013-12-06 6:24, David Cheney wrote: Ok, good news first. gccgo compiled tools work fine. statically linking libgo also makes the tools as self contained as our gc compiled ones. Bad news, jujud is 40mb, -Os or -O2 effect, in fact the latter makes it a bit larger the binaries cannot be stripped, the debug data is required for operation of the program, i'm guessing gccgo's reflection implementation requires the debug symbols. Dave Two tidbits from me: 1) jujud on my system is 20MB, so this is approx 2x larger. A fair amount, but I think with compression we saw it wasn't quite as big of a deal (4.6MB vs 5.5MB in tgz form for the last test, but that was a smaller binary). 2) The Ubuntu security team would *really* like it if we used a system libgo.so so that they could supply security fixes for it (like the built in SSL libs) without having to have us rebuild all of our jujud binaries. Which would save us some of that size (I think you said approx 10MB was libgo.so), at a cost of having to have a libgo package for all supported platforms. If we name the package appropriately (libgo-1.1, etc) then we can probably even still migrate to a different version of the runtime when it becomes useful (we just install a different package in cloud-init). That is a fair request, but brings with it a lot of complexity. It isn't sufficient to have a libgo.so, but one that very closely matches the one that the tools were built against. Considering that libgo.so contains all the important parts of the standard library like crypto, compression, http, json, reflection, etc. We also need to ensure that whatever tools we are deploying, are running with an up to date libgo.so. In short, libgo.so and the tools need to be distributed together -- or -- the tools need to control the version of libgo that is installed on the system. This would be easier to accomplish if the tools were packaged as a deb. But that come with other complications for things like upgrades. John =:- -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.13 (Cygwin) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEUEARECAAYFAlKhVPYACgkQJdeBCYSNAAMAGgCXRPrIqBlFaHOEAuLA4zRZGarV ZACfS1NM6K6bIZHzaRTBvxO8f/LRrKE= =Xa62 -END PGP SIGNATURE- -- Juju-dev mailing list Juju-dev@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev
juju bootstrap w/ gccgo built cli and tools
Good news, everyone! We are ---this--- close to getting a gccgo build juju working. lucky(~/src/launchpad.net/juju-core) % juju bootstrap -v --upload-tools verbose is deprecated with the current meaning, use show-log 2013-12-05 05:57:50 INFO juju.environs open.go:156 environment info already exists; using New not Prepare 2013-12-05 05:57:50 INFO juju.provider.ec2 ec2.go:176 opening environment ap-southeast-2 2013-12-05 05:57:50 INFO juju.environs.tools build.go:162 found existing jujud: /home/dfc/bin/jujud 2013-12-05 05:57:50 INFO juju.environs.tools build.go:172 target: /tmp/juju-tools033710042/jujud compiled with gccgo 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:244 built 1.17.0.1-saucy-amd64 (5583kB) 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:70 listing available tools 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:94 found 2 tools 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:104 listing target bucket 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:117 found 0 tools in target; 2 tools to be copied 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:155 copying 1.17.0.1-precise-amd64 from file:///tmp/142843249/tools/releases/juju-1.17.0.1-precise-amd64.tgz 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:169 copying tools/releases/juju-1.17.0.1-precise-amd64.tgz 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:183 downloaded tools/releases/juju-1.17.0.1-precise-amd64.tgz (5583kB), uploading 2013-12-05 05:57:53 INFO juju.environs.sync sync.go:184 download 5583kB, uploading 2013-12-05 05:59:09 INFO juju.environs.sync sync.go:155 copying 1.17.0.1-saucy-amd64 from file:///tmp/142843249/tools/releases/juju-1.17.0.1-saucy-amd64.tgz 2013-12-05 05:59:09 INFO juju.environs.sync sync.go:169 copying tools/releases/juju-1.17.0.1-saucy-amd64.tgz 2013-12-05 05:59:09 INFO juju.environs.sync sync.go:183 downloaded tools/releases/juju-1.17.0.1-saucy-amd64.tgz (5583kB), uploading 2013-12-05 05:59:09 INFO juju.environs.sync sync.go:184 download 5583kB, uploading 2013-12-05 06:00:18 INFO juju.environs.sync sync.go:122 copied 2 tools 2013-12-05 06:00:18 INFO juju.environs.sync sync.go:124 generating tools metadata 2013-12-05 06:00:19 INFO juju.environs.tools simplestreams.go:357 Writing tools/streams/v1/index.json 2013-12-05 06:00:19 INFO juju.environs.tools simplestreams.go:357 Writing tools/streams/v1/com.ubuntu.juju:released:tools.json 2013-12-05 06:00:19 INFO juju.environs.sync sync.go:136 tools metadata written 2013-12-05 06:00:22 INFO juju.environs.bootstrap bootstrap.go:45 bootstrapping environment ap-southeast-2 2013-12-05 06:00:22 INFO juju.environs.tools tools.go:85 reading tools with major.minor version 1.17 2013-12-05 06:00:22 INFO juju.environs.tools tools.go:93 filtering tools by version: 1.17.0.1 2013-12-05 06:00:22 INFO juju.environs.tools tools.go:96 filtering tools by series: precise 2013-12-05 06:00:22 INFO juju.environs.bootstrap bootstrap.go:57 picked newest version: 1.17.0.1 Launching instance 2013-12-05 06:00:29 INFO juju.provider.ec2 ec2.go:418 started instance i-813692be - i-813692be Waiting for DNS name.. - ec2-54-253-221-206.ap-southeast-2.compute.amazonaws.com Attempting to connect to ec2-54-253-221-206.ap-southeast-2.compute.amazonaws.com:22 2013-12-05 06:01:45 INFO juju.cloudinit.sshinit configure.go:24 Provisioning machine agent on ubu...@ec2-54-253-221-206.ap-southeast-2.compute.amazonaws.com Warning: Permanently added 'ec2-54-253-221-206.ap-southeast-2.compute.amazonaws.com,54.253.221.206' (ECDSA) to the list of known hosts. Logging to /var/log/cloud-init-output.log on remote host Installing add-apt-repository Adding apt repository: deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/cloud-tools main Running apt-get update Running apt-get upgrade Installing package: git Installing package: cpu-checker Installing package: mongodb-server Fetching tools: wget --no-verbose -O $bin/tools.tar.gz 'https://s3-ap-southeast-2.amazonaws.com/juju-syd-en-ee-ii/tools/releases/juju-1.17.0.1-precise-amd64.tgz?AWSAccessKeyId=AKIAJ4SOKUWG25EDMAOAExpires=1701756022Signature=us5XxZbNtgjiPQ5kMVVyC1b9450%3D' Starting MongoDB server (juju-db) Bootstrapping Juju machine agent Connection to ec2-54-253-221-206.ap-southeast-2.compute.amazonaws.com closed. Stopping instance... 2013-12-05 06:05:07 ERROR juju supercommand.go:282 exit status 1 Unfortunately the agent will fail to start because lucky(~/src/launchpad.net/juju-core) % ldd $(which jujud) linux-vdso.so.1 = (0x7fffbc3fe000) libgo.so.5 = /usr/lib/libgo.so.5 (0x7f57fc52e000) ^^^ this library libpthread.so.0 = /lib/x86_64-linux-gnu/libpthread.so.0 (0x7f57fc311000) libm.so.6 = /lib/x86_64-linux-gnu/libm.so.6 (0x7f57fc00c000) libgcc_s.so.1 = /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x7f57fbdf6000) libc.so.6 = /lib/x86_64-linux-gnu/libc.so.6