Merge lp:~axwalk/juju-core/lp1212916-hook-unix-socket-namespace into lp:~go-bot/juju-core/trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Andrew Wilkins | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | 1690 | ||||
Proposed branch: | lp:~axwalk/juju-core/lp1212916-hook-unix-socket-namespace | ||||
Merge into: | lp:~go-bot/juju-core/trunk | ||||
Diff against target: |
57 lines (+10/-6) 2 files modified
worker/uniter/jujuc/server.go (+8/-6) worker/uniter/uniter.go (+2/-0) |
||||
To merge this branch: | bzr merge lp:~axwalk/juju-core/lp1212916-hook-unix-socket-namespace | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju Engineering | Pending | ||
Review via email: mp+181191@code.launchpad.net |
Commit message
uniter: Use abstract namespace for unix sockets
Also, don't attempt to remove the socket after
closing the server. It's not necessary to do this
anyway; the Close method on the socket already
does an Unlink if not using the abstract namespace
(hence tests don't need changing).
Abstract namespaces are a Linux extension, so this
will break if we ever support Unixes. I've purposely
not checked the OS, so that it'll be obviously broken
and we can revisit this issue.
Fixes bug #1212916
Description of the change
uniter: Use abstract namespace for unix sockets
Also, don't attempt to remove the socket after
closing the server. It's not necessary to do this
anyway; the Close method on the socket already
does an Unlink if not using the abstract namespace
(hence tests don't need changing).
Abstract namespaces are a Linux extension, so this
will break if we ever support Unixes. I've purposely
not checked the OS, so that it'll be obviously broken
and we can revisit this issue.
Fixes bug #1212916
Reviewers: mp+181191_ code.launchpad. net,
Message:
Please take a look.
Description:
uniter: Use abstract namespace for unix sockets
Also, don't attempt to remove the socket after
closing the server. It's not necessary to do this
anyway; the Close method on the socket already
does an Unlink if not using the abstract namespace
(hence tests don't need changing).
Abstract namespaces are a Linux extension, so this
will break if we ever support Unixes. I've purposely
not checked the OS, so that it'll be obviously broken
and we can revisit this issue.
Fixes bug #1212916
https:/ /code.launchpad .net/~axwalk/ juju-core/ lp1212916- hook-unix- socket- namespace/ +merge/ 181191
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/12742045/
Affected files: uniter/ jujuc/server. go uniter/ uniter. go
A [revision details]
M worker/
M worker/
Index: [revision details] 20130820022554- t4r3stekgq56x0i h
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-
+New revision: <email address hidden>
Index: worker/ uniter/ uniter. go uniter/ uniter. go' uniter/ uniter. go 2013-08-06 01:42:16 +0000 uniter/ uniter. go 2013-08-21 03:27:47 +0000 d(hctx, cmdName) Join(u. baseDir, "agent.socket") (getCmd, socketPath)
=== modified file 'worker/
--- worker/
+++ worker/
@@ -338,6 +338,8 @@
return jujuc.NewComman
}
socketPath := filepath.
+ // Use abstract namespace so we don't get stale socket files.
+ socketPath = "@" + socketPath
srv, err := jujuc.NewServer
if err != nil {
return err
Index: worker/ uniter/ jujuc/server. go uniter/ jujuc/server. go' uniter/ jujuc/server. go 2013-05-02 15:55:42 +0000 uniter/ jujuc/server. go 2013-08-21 03:27:47 +0000 net/juju- core/cmd" net/juju- core/log" net/loggo" net/juju- core/cmd"
=== modified file 'worker/
--- worker/
+++ worker/
@@ -9,16 +9,19 @@
import (
"bytes"
"fmt"
- "launchpad.
- "launchpad.
"net"
"net/rpc"
- "os"
"path/filepath"
"sort"
"sync"
+
+ "launchpad.
+
+ "launchpad.
)
+var logger = loggo.GetLogger ("worker. uniter. jujuc") func(Context) cmd.Command{ mand, "worker/ uniter/ jujuc: running hook tool %q %q", "worker/ uniter/ jujuc: hook context id %q; dir %q", Infof(" running hook tool %q %q", req.CommandName, req.Args) Close() s.socketPath)
+
// newCommands maps Command names to initializers.
var newCommands = map[string]
"close-port": NewClosePortCom
@@ -102,8 +105,8 @@
}
j.mu.Lock()
defer j.mu.Unlock()
- log.Infof(
req.CommandName, req.Args)
- log.Debugf(
req.ContextId, req.Dir)
+ logger.
+ logger.Debugf("hook context id %q; dir %q", req.ContextId, req.Dir)
resp.Code = cmd.Main(c, ctx, req.Args)
resp.Stdout = stdout.Bytes()
resp.Stderr = stderr.Bytes()
@@ -176,6 +179,5 @@
func (s *Server) Close() {
close(s.closing)
s.listener.
- os.Remove(
<-s.closed
}