Skip to content

Conversation

@shykes
Copy link
Contributor

@shykes shykes commented Aug 10, 2014

  • Merge daemonconfig into daemon/config.go
  • Apply post-parsing default values in NewDaemon for DRY
  • Command-line flags are defined and installed in daemon.Config.InstallFlags instead of in main

This depends on #7497

@shykes
Copy link
Contributor Author

shykes commented Aug 10, 2014

Heads up I'm pushing an update with simplified opts interface.

@shykes
Copy link
Contributor Author

shykes commented Aug 10, 2014

@tianon @tibor @crosbymichael I'm not sure why, but this seems to break make cross. I'm guessing it's because I moved something I shouldn't have around main, but I don't see anything obvious.

I bisected the problem to this commit: ca776d7b29f4922cfff6cf1b6234c3b2c3fc1715

Here's the error:

$ make cross
[...]
---> Making bundle: cross (in bundles/1.1.2-dev/cross)
Created symlinks: /go/src/github.com/docker/docker/bundles/1.1.2-dev/cross/linux/amd64/docker /go/src/github.com/docker/docker/bundles/1.1.2-dev/cross/linux/amd64/docker-1.1.2-dev /go/src/github.com/docker/docker/bundles/1.1.2-dev/cross/linux/amd64/docker-1.1.2-dev.md5 /go/src/github.com/docker/docker/bundles/1.1.2-dev/cross/linux/amd64/docker-1.1.2-dev.sha256
# github.com/docker/libcontainer/apparmor
vendor/src/github.com/docker/libcontainer/apparmor/setup.go:15: undefined: IsEnabled
# github.com/docker/docker/daemon/graphdriver/devmapper
daemon/graphdriver/devmapper/attach_loopback.go:13: undefined: LoNameSize
daemon/graphdriver/devmapper/attach_loopback.go:13: invalid array bound LoNameSize
daemon/graphdriver/devmapper/devmapper.go:76: undefined: CDmTask
make: *** [cross] Error 1

@shykes
Copy link
Contributor Author

shykes commented Aug 10, 2014

cc @unclejack

@LK4D4
Copy link
Contributor

LK4D4 commented Aug 11, 2014

@shykes You've bringed daemon code to client side(daemon.Config in docker/flags.go and docker/docker.go) and now unsupported platforms can't build only client side.
Look at

// +build daemon

in docker/daemon.go.

@LK4D4
Copy link
Contributor

LK4D4 commented Aug 11, 2014

Also need rebase :)

@shykes
Copy link
Contributor Author

shykes commented Aug 11, 2014

Rebased and fixed cross-compile issue.

@crosbymichael
Copy link
Contributor

There are Travis gofmt issues with your last changes

@shykes
Copy link
Contributor Author

shykes commented Aug 11, 2014

Fixed gofmt

On Mon, Aug 11, 2014 at 3:55 PM, Michael Crosby notifications@github.com
wrote:

There are Travis gofmt issues with your last changes


Reply to this email directly or view it on GitHub
#7506 (comment).

@crosbymichael
Copy link
Contributor

panic in the runconfig unit tests

+ go test github.com/docker/docker/runconfig
--- FAIL: TestParseRunLinks (0.00 seconds)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x4d605d]

goroutine 21 [running]:
runtime.panic(0x7a9600, 0xbbf233)
        /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
testing.func·006()
        /usr/local/go/src/pkg/testing/testing.go:416 +0x176
runtime.panic(0x7a9600, 0xbbf233)
        /usr/local/go/src/pkg/runtime/panic.c:248 +0x18d
github.com/docker/docker/opts.(*ListOpts).String(0xc208000b10, 0x0, 0x0)
        /go/src/github.com/docker/docker/opts/opts.go:55 +0x11d
github.com/docker/docker/pkg/mflag.(*FlagSet).Var(0xc2080045a0, 0x7fb57db89c18, 0xc208000b10, 0xc208000cf0, 0x1, 0x1,
0x84ed70, 0x36)
        /go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43
github.com/docker/docker/runconfig.parseRun(0xc2080045a0, 0xc2080406c0, 0x4, 0x4, 0x0, 0x4, 0x486e7a, 0xc20804c500, 0x
0, 0x0)
        github.com/docker/docker/runconfig/_test/_obj_test/parse.go:84 +0x139f
github.com/docker/docker/runconfig.Parse(0xc2080406c0, 0x4, 0x4, 0x0, 0xc2080406c0, 0x4, 0x4, 0x0, 0x0)
        github.com/docker/docker/runconfig/_test/_obj_test/parse.go:31 +0x10c
github.com/docker/docker/runconfig.parse(0xc20804a120, 0x7f5190, 0xa, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/docker/docker/runconfig/config_test.go:12 +0xcb
github.com/docker/docker/runconfig.mustParse(0xc20804a120, 0x7f5190, 0xa, 0x0, 0x0)
        /go/src/github.com/docker/docker/runconfig/config_test.go:17 +0x4c
github.com/docker/docker/runconfig.TestParseRunLinks(0xc20804a120)
        /go/src/github.com/docker/docker/runconfig/config_test.go:37 +0x46
testing.tRunner(0xc20804a120, 0xbbdb60)
        /usr/local/go/src/pkg/testing/testing.go:422 +0x8b
created by testing.RunTests
        /usr/local/go/src/pkg/testing/testing.go:504 +0x8db

@shykes
Copy link
Contributor Author

shykes commented Aug 11, 2014

Hum can't reproduce...

On Mon, Aug 11, 2014 at 4:38 PM, Michael Crosby notifications@github.com
wrote:

panic in the runconfig unit tests

  • go test github.com/docker/docker/runconfig
    --- FAIL: TestParseRunLinks (0.00 seconds)
    panic: runtime error: invalid memory address or nil pointer dereference [recovered]
    panic: runtime error: invalid memory address or nil pointer dereference[signal 0xb code=0x1 addr=0x0 pc=0x4d605d]

goroutine 21 [running]:
runtime.panic(0x7a9600, 0xbbf233)
/usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
testing.func·006()
/usr/local/go/src/pkg/testing/testing.go:416 +0x176
runtime.panic(0x7a9600, 0xbbf233)
/usr/local/go/src/pkg/runtime/panic.c:248 +0x18dgithub.com/docker/docker/opts.(_ListOpts).String(0xc208000b10, 0x0, 0x0)
/go/src/github.com/docker/docker/opts/opts.go:55 +0x11dgithub.com/docker/docker/pkg/mflag.(_FlagSet).Var(0xc2080045a0, 0x7fb57db89c18, 0xc208000b10, 0xc208000cf0, 0x1, 0x1,
0x84ed70, 0x36)
/go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43github.com/docker/docker/runconfig.parseRun(0xc2080045a0, 0xc2080406c0, 0x4, 0x4, 0x0, 0x4, 0x486e7a, 0xc20804c500, 0x
0, 0x0)
github.com/docker/docker/runconfig/_test/_obj_test/parse.go:84 +0x139fgithub.com/docker/docker/runconfig.Parse(0xc2080406c0, 0x4, 0x4, 0x0, 0xc2080406c0, 0x4, 0x4, 0x0, 0x0)
github.com/docker/docker/runconfig/_test/_obj_test/parse.go:31 +0x10cgithub.com/docker/docker/runconfig.parse(0xc20804a120, 0x7f5190, 0xa, 0x0, 0x0, 0x0, 0x0)
/go/src/github.com/docker/docker/runconfig/config_test.go:12 +0xcbgithub.com/docker/docker/runconfig.mustParse(0xc20804a120, 0x7f5190, 0xa, 0x0, 0x0)
/go/src/github.com/docker/docker/runconfig/config_test.go:17 +0x4cgithub.com/docker/docker/runconfig.TestParseRunLinks(0xc20804a120)
/go/src/github.com/docker/docker/runconfig/config_test.go:37 +0x46
testing.tRunner(0xc20804a120, 0xbbdb60)
/usr/local/go/src/pkg/testing/testing.go:422 +0x8b
created by testing.RunTests
/usr/local/go/src/pkg/testing/testing.go:504 +0x8db


Reply to this email directly or view it on GitHub
#7506 (comment).

@shykes
Copy link
Contributor Author

shykes commented Aug 12, 2014

Ok, I can reproduce and found the problem, thanks. Fix incoming.

@shykes
Copy link
Contributor Author

shykes commented Aug 12, 2014

After a slight incident on my dev environment... Finally rebased!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this became a pointer?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look at how I implemented ListVar, IPListVar etc above. It's a much better API for parsing special types using flag, without needing to carry a special type in the resulting Config object. It also extends the existing flag API (actually we could probably add it to mflag).

I wanted to do this without disrupting the rest of the code which uses ListOpt. So I modified ListOpt so that it could support both the old usage (via NewListOpts) and the new usage (via newListOptsRef).

@LK4D4
Copy link
Contributor

LK4D4 commented Aug 12, 2014

I have panic on server side with

docker -d --dns=8.8.8.8 --dns=8.8.8.4

and make binary.
And panic on client side with same daemon opts and:

docker run -it --rm busybox cat /etc/resolv.conf

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand why this was removed from the daemon but why is it not placed back in the request? People are depending on this information like @SvenDowideit with boot2docker.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no easy way to access daemon.Sockets from api/server.Server. And I don't think it's worth making the effort, since I don't think a 3d-party tools should depend on this information in the first place. For one thing, it might cause security risks by leaking more information than the sysadmin expects to share with clients. For another, if boot2docker can connect to the daemon to make this query, doesn't it already know how to connect?

TLDR: I don't like how we expose too many internals in our public API and then are stuck having to maintain them. So I don't want to go out of my way to keep them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we remove this, it requires a API bump as it's a breaking change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On Tue, Aug 12, 2014 at 3:05 PM, Victor Vieux notifications@github.com
wrote:

In daemon/info.go:

@@ -66,7 +66,6 @@ func (daemon *Daemon) CmdInfo(job *engine.Job) engine.Status {
v.Set("IndexServerAddress", registry.IndexServerAddress())
v.Set("InitSha1", dockerversion.INITSHA1)
v.Set("InitPath", initPath)

  • v.SetList("Sockets", daemon.Sockets)

If we remove this, it requires a API bump as it's a breaking change.

I have a problem with the way we handle API versions currently. As soon as
we bump the version, new clients refuse to talk to old servers (even though
it would work just fine). How can we fix this?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could fallback to the last version handled by the server instead of producing an error and hope it'll work. (it will most of the time, and in that case)

@crosbymichael
Copy link
Contributor

I get a lot of panics running the integration-cli tests with this PR. I'll post a couple:

--- FAIL: TestCLIGetEventsUntag (0.05 seconds)
        utils.go:125: 'images -q' failed with errors: exit status 2 (panic: runtime error: invalid memory address or nil pointer dereference
                [signal 0xb code=0x1 addr=0x0 pc=0x53ae6d]

                goroutine 16 [running]:
                runtime.panic(0xb43da0, 0x116b573)
                        /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
                github.com/docker/docker/opts.(*ListOpts).String(0xc2080e4330, 0x0, 0x0)
                        /go/src/github.com/docker/docker/opts/opts.go:55 +0x11d
                github.com/docker/docker/pkg/mflag.(*FlagSet).Var(0xc208004780, 0x7f0de54a2188, 0xc2080e4330, 0xc208045f80, 0x2, 0x2, 0xc7f6d0, 0x2c)
                        /go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43
                github.com/docker/docker/api/client.(*DockerCli).CmdImages(0xc20804a980, 0xc20800e020, 0x1, 0x1, 0x0, 0x0)
                        /go/src/github.com/docker/docker/api/client/commands.go:1255 +0x4e3
                reflect.callMethod(0xc208094b70, 0x7f0de5302c20)
                        /usr/local/go/src/pkg/reflect/value.go:761 +0x18b
                reflect.methodValueCall(0xc20800e020, 0x1, 0x1, 0xc208094b70, 0x42bb01)
                        /usr/local/go/src/pkg/reflect/asm_amd64.s:26 +0x24
                github.com/docker/docker/api/client.(*DockerCli).Cmd(0xc20804a980, 0xc20800e010, 0x2, 0x2, 0x0, 0x0)
                        /go/src/github.com/docker/docker/api/client/cli.go:58 +0x25c
                main.main()
                        /go/src/github.com/docker/docker/docker/docker.go:102 +0x827


--- FAIL: TestCLIGetEventsPause (0.06 seconds)
        utils.go:125: 'images -q' failed with errors: exit status 2 (panic: runtime error: invalid memory address or nil pointer dereference
                [signal 0xb code=0x1 addr=0x0 pc=0x53ae6d]

                goroutine 16 [running]:
                runtime.panic(0xb43da0, 0x116b573)
                        /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
                github.com/docker/docker/opts.(*ListOpts).String(0xc208037a20, 0x0, 0x0)
                        /go/src/github.com/docker/docker/opts/opts.go:55 +0x11d
                github.com/docker/docker/pkg/mflag.(*FlagSet).Var(0xc208004300, 0x7fb559707188, 0xc208037a20, 0xc208045720, 0x2, 0x2, 0xc7f6d0, 0x2c)
                        /go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43
                github.com/docker/docker/api/client.(*DockerCli).CmdImages(0xc20804a680, 0xc20800e020, 0x1, 0x1, 0x0, 0x0)
                        /go/src/github.com/docker/docker/api/client/commands.go:1255 +0x4e3
                reflect.callMethod(0xc208060930, 0x7fb559566c20)
                        /usr/local/go/src/pkg/reflect/value.go:761 +0x18b
                reflect.methodValueCall(0xc20800e020, 0x1, 0x1, 0xc208060930, 0x42bb01)
                        /usr/local/go/src/pkg/reflect/asm_amd64.s:26 +0x24
                github.com/docker/docker/api/client.(*DockerCli).Cmd(0xc20804a680, 0xc20800e010, 0x2, 0x2, 0x0, 0x0)
                        /go/src/github.com/docker/docker/api/client/cli.go:58 +0x25c
                main.main()
                        /go/src/github.com/docker/docker/docker/docker.go:102 +0x827

@shykes
Copy link
Contributor Author

shykes commented Aug 12, 2014

Yeah I know I'm on it. Thanks.

On Tue, Aug 12, 2014 at 1:38 PM, Michael Crosby notifications@github.com
wrote:

I get a lot of panics running the integration-cli tests with this PR. I'll
post a couple:

--- FAIL: TestCLIGetEventsUntag (0.05 seconds)
utils.go:125: 'images -q' failed with errors: exit status 2 (panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x53ae6d]

            goroutine 16 [running]:
            runtime.panic(0xb43da0, 0x116b573)
                    /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
            github.com/docker/docker/opts.(*ListOpts).String(0xc2080e4330, 0x0, 0x0)
                    /go/src/github.com/docker/docker/opts/opts.go:55 +0x11d
            github.com/docker/docker/pkg/mflag.(*FlagSet).Var(0xc208004780, 0x7f0de54a2188, 0xc2080e4330, 0xc208045f80, 0x2, 0x2, 0xc7f6d0, 0x2c)
                    /go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43
            github.com/docker/docker/api/client.(*DockerCli).CmdImages(0xc20804a980, 0xc20800e020, 0x1, 0x1, 0x0, 0x0)
                    /go/src/github.com/docker/docker/api/client/commands.go:1255 +0x4e3
            reflect.callMethod(0xc208094b70, 0x7f0de5302c20)
                    /usr/local/go/src/pkg/reflect/value.go:761 +0x18b
            reflect.methodValueCall(0xc20800e020, 0x1, 0x1, 0xc208094b70, 0x42bb01)
                    /usr/local/go/src/pkg/reflect/asm_amd64.s:26 +0x24
            github.com/docker/docker/api/client.(*DockerCli).Cmd(0xc20804a980, 0xc20800e010, 0x2, 0x2, 0x0, 0x0)
                    /go/src/github.com/docker/docker/api/client/cli.go:58 +0x25c
            main.main()
                    /go/src/github.com/docker/docker/docker/docker.go:102 +0x827

--- FAIL: TestCLIGetEventsPause (0.06 seconds)
utils.go:125: 'images -q' failed with errors: exit status 2 (panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x53ae6d]

            goroutine 16 [running]:
            runtime.panic(0xb43da0, 0x116b573)
                    /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
            github.com/docker/docker/opts.(*ListOpts).String(0xc208037a20, 0x0, 0x0)
                    /go/src/github.com/docker/docker/opts/opts.go:55 +0x11d
            github.com/docker/docker/pkg/mflag.(*FlagSet).Var(0xc208004300, 0x7fb559707188, 0xc208037a20, 0xc208045720, 0x2, 0x2, 0xc7f6d0, 0x2c)
                    /go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43
            github.com/docker/docker/api/client.(*DockerCli).CmdImages(0xc20804a680, 0xc20800e020, 0x1, 0x1, 0x0, 0x0)
                    /go/src/github.com/docker/docker/api/client/commands.go:1255 +0x4e3
            reflect.callMethod(0xc208060930, 0x7fb559566c20)
                    /usr/local/go/src/pkg/reflect/value.go:761 +0x18b
            reflect.methodValueCall(0xc20800e020, 0x1, 0x1, 0xc208060930, 0x42bb01)
                    /usr/local/go/src/pkg/reflect/asm_amd64.s:26 +0x24
            github.com/docker/docker/api/client.(*DockerCli).Cmd(0xc20804a680, 0xc20800e010, 0x2, 0x2, 0x0, 0x0)
                    /go/src/github.com/docker/docker/api/client/cli.go:58 +0x25c
            main.main()
                    /go/src/github.com/docker/docker/docker/docker.go:102 +0x827


Reply to this email directly or view it on GitHub
#7506 (comment).

@shykes
Copy link
Contributor Author

shykes commented Aug 12, 2014

Fixed panics and rebased.

@vieux
Copy link
Contributor

vieux commented Aug 12, 2014

@shykes got You specified --iptables=false with --icc=false. ICC uses iptables to function. Please set --icc or --iptables to true. in the integration tests

@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

@vieux thanks, fixed.

@vieux
Copy link
Contributor

vieux commented Aug 13, 2014

LGTM

@LK4D4
Copy link
Contributor

LK4D4 commented Aug 13, 2014

There is different validation error messages for --ip and --dns about same error:

invalid value "hhh" for flag --dns: hhh is not an ip address
invalid value "hhh" for flag --ip: incorrect IP format

@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

That seems like a correct message. Which test triggers it for you?

@LK4D4
Copy link
Contributor

LK4D4 commented Aug 13, 2014

@shykes Yeah, both messages are correct, but I think they should be same, because this is same validation error.
I've just runned

docker -d --dns=hhh

and

docker -d --ip=hhh

@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

I see

@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

@LK4D4 fixed

opts/ip.go Outdated
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You've forgot , val I think

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks fixed

@LK4D4
Copy link
Contributor

LK4D4 commented Aug 13, 2014

LGTM now

@crosbymichael
Copy link
Contributor

@shykes this needs rebased after #7497 was merged

Solomon Hykes added 2 commits August 13, 2014 19:09
Signed-off-by: Solomon Hykes <solomon@docker.com>
Signed-off-by: Solomon Hykes <solomon@docker.com>
@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

Rebased

@crosbymichael
Copy link
Contributor

Panic in the integration tests

[PASSED]: build - ensure --force-rm doesn't leave containers behind
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x53b90d]

goroutine 16 [running]:
runtime.panic(0xb44ce0, 0x116d573)
        /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
github.com/docker/docker/opts.(*ListOpts).String(0xc208039990, 0x0, 0x0)
        /go/src/github.com/docker/docker/opts/opts.go:55 +0x11d
github.com/docker/docker/pkg/mflag.(*FlagSet).Var(0xc208004180, 0x7f30ff047188, 0xc208039990, 0xc208047620, 0x2, 0x2,
0xcb6850, 0x57)
        /go/src/github.com/docker/docker/pkg/mflag/flag.go:724 +0x43
github.com/docker/docker/api/client.(*DockerCli).CmdPs(0xc20804c380, 0xc20800e020, 0x2, 0x2, 0x0, 0x0)
        /go/src/github.com/docker/docker/api/client/commands.go:1488 +0x6e9
reflect.callMethod(0xc20804a060, 0x7f30feea6c20)
        /usr/local/go/src/pkg/reflect/value.go:761 +0x18b
reflect.methodValueCall(0xc20800e020, 0x2, 0x2, 0xc20804a060, 0x42bb01)
        /usr/local/go/src/pkg/reflect/asm_amd64.s:26 +0x24
github.com/docker/docker/api/client.(*DockerCli).Cmd(0xc20804c380, 0xc20800e010, 0x3, 0x3, 0x0, 0x0)
        /go/src/github.com/docker/docker/api/client/cli.go:58 +0x25c
main.main()
        /go/src/github.com/docker/docker/docker/docker.go:102 +0x827

Solomon Hykes added 6 commits August 13, 2014 19:25
Signed-off-by: Solomon Hykes <solomon@docker.com>
Signed-off-by: Solomon Hykes <solomon@docker.com>
Signed-off-by: Solomon Hykes <solomon@docker.com>
Signed-off-by: Solomon Hykes <solomon@docker.com>
Signed-off-by: Solomon Hykes <solomon@docker.com>
Signed-off-by: Solomon Hykes <solomon@docker.com>
@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

Ah, that was introduced by new changes in master. Ok, fixed. Thanks

@shykes
Copy link
Contributor Author

shykes commented Aug 13, 2014

To explain the panics: because of the changes to ListOpts you now need to allocate it through NewListOpts, instead of directly (which will now cause a panic). But the type is still public for reverse-compat (I get rid of this in #7551) so if you someone does var opts opts.ListOpts it will not trigger a build error - instead it will panic when you use it.

@crosbymichael
Copy link
Contributor

LGTM

@vieux wanna review again, a lot has changed

@vieux
Copy link
Contributor

vieux commented Aug 13, 2014

LGTM

vieux added a commit that referenced this pull request Aug 13, 2014
Cleanup: refactor parsing and handling of Daemon config
@vieux vieux merged commit 13eb477 into moby:master Aug 13, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants