Skip to content

Commit bd03fc5

Browse files
committed
Merge pull request #464 from CodeNow/catch-start-container-layer-issues
fix start container issues
2 parents da0959d + 8578758 commit bd03fc5

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

lib/models/mongo/instance.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ var keypather = require('keypather')();
2020
var isFunction = require('101/is-function');
2121
var createCount = require('callback-count');
2222
var removeDottedKeys = require('remove-dotted-keys');
23+
var error = require('error');
2324

2425
var InstanceSchema = require('models/mongo/schemas/instance');
2526

@@ -248,6 +249,7 @@ InstanceSchema.methods.modifyContainerCreateErr = function (err, cb) {
248249
}
249250
}
250251
}, cb);
252+
error.log(err);
251253
};
252254

253255
/**
@@ -261,6 +263,7 @@ InstanceSchema.methods.modifySetContainerInspectErr = function (err, cb) {
261263
'container.inspect.error': pick(err, ['message', 'stack', 'data'])
262264
}
263265
}, cb);
266+
error.log(err);
264267
};
265268

266269
InstanceSchema.methods.findContainerById = function (containerId, cb) {

lib/routes/instances/index.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,22 @@ var createSaveAndNetworkContainer = flow.series(
157157
})),
158158
mw.req('containerInfo').require()
159159
.then( // container create was successful
160-
docker.model.startUserContainer('containerInfo'),
161-
docker.model.inspectUserContainer('containerInfo'),
162-
mw.req().set('containerInspect', 'dockerResult'),
163-
instances.model.modifySetContainer('containerInspect', 'dockerHost'),
160+
flow.try(
161+
docker.model.startUserContainer('containerInfo')
162+
).catch(
163+
// we've seen layer limit errors bubble from startContainer
164+
mw.req().setToErr('containerStartErr'),
165+
instances.model.modifyContainerCreateErr('containerStartErr')
166+
),
167+
flow.try(
168+
docker.model.inspectUserContainer('containerInfo'),
169+
mw.req().set('containerInspect', 'dockerResult'),
170+
instances.model.modifySetContainer('containerInspect', 'dockerHost')
171+
).catch(
172+
// this logic is to ensure something is set for container inspect
173+
mw.req().setToErr('containerInspectErr'),
174+
instances.model.modifySetContainerInspectErr('containerInspectErr')
175+
),
164176
sauron.create('dockerHost'),
165177
sauron.model.attachHostToContainer(
166178
'instance.network.networkIp',
@@ -645,7 +657,7 @@ app.put('/instances/:id/actions/start',
645657
// start container
646658
mw.req().set('dockerHost', 'instance.container.dockerHost'),
647659
docker.create('dockerHost'),
648-
docker.model.startContainer('instance.container'),
660+
docker.model.startUserContainer('instance.container'),
649661
instances.model.inspectAndUpdate('instance.container', 'dockerHost'),
650662
// update weave
651663
sauron.create('instance.container.dockerHost'),

0 commit comments

Comments
 (0)