Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Commit e3ef948

Browse files
committed
fix: only try to initialize if not init already
1 parent 706ada2 commit e3ef948

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/core/boot.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,16 @@ module.exports = (self) => {
4949

5050
if (doInit) {
5151
self.log('boot:doInit')
52-
tasks.push((cb) => self.init(initOptions, cb))
52+
tasks.push((cb) => {
53+
self._repo.exists((err, exists) => {
54+
if (err) cb(err)
55+
if (exists) {
56+
maybeOpenRepo(cb)
57+
} else {
58+
self.init(initOptions, cb)
59+
}
60+
})
61+
})
5362
next(null, true)
5463
} else if (!repoOpen) {
5564
self._repo.exists(next)

test/core/create-node.spec.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,4 +203,19 @@ describe('create node', () => {
203203
(cb) => node.stop(cb)
204204
], done)
205205
})
206+
207+
it('can start node twice without crash', (done) => {
208+
const repo = createTempRepo()
209+
let node = new IPFS({repo, config: {Bootstrap: []}})
210+
series([
211+
(cb) => node.once('start', cb),
212+
(cb) => node.stop(cb),
213+
(cb) => {
214+
node = new IPFS({repo, config: {Bootstrap: []}})
215+
node.on('error', cb)
216+
node.once('start', cb)
217+
},
218+
(cb) => node.stop(cb)
219+
], done)
220+
})
206221
})

0 commit comments

Comments
 (0)