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

Commit bc66e9f

Browse files
victorbdaviddias
authored andcommitted
feat: support Jenkins
1 parent 4312513 commit bc66e9f

37 files changed

+535
-322
lines changed

.aegir.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const createServer = require('ipfsd-ctl').createServer
44

55
const server = createServer()
6+
67
module.exports = {
78
karma: {
89
files: [{

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ node_modules
3434

3535
lib
3636
dist
37-
test/test-data/go-ipfs-repo/LOCK
38-
test/test-data/go-ipfs-repo/LOG
39-
test/test-data/go-ipfs-repo/LOG.old
37+
test/fixtures/go-ipfs-repo/LOCK
38+
test/fixtures/go-ipfs-repo/LOG
39+
test/fixtures/go-ipfs-repo/LOG.old
4040

4141
# while testing npm5
4242
package-lock.json

ci/Jenkinsfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Warning: This file is automatically synced from https://github.com/ipfs/ci-sync so if you want to change it, please change it there and ask someone to sync all repositories.
2+
javascript()

test/cli/daemon.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
const expect = require('chai').expect
55
const clean = require('../utils/clean')
66
const ipfsCmd = require('../utils/ipfs-exec')
7+
const isWindows = require('../utils/platforms').isWindows
78
const pull = require('pull-stream')
89
const toPull = require('stream-to-pull-stream')
910
const os = require('os')
1011
const path = require('path')
1112
const hat = require('hat')
1213
const fs = require('fs')
1314

14-
const isWindows = os.platform() === 'win32'
15+
const skipOnWindows = isWindows() ? it.skip : it
1516

1617
const checkLock = (repo, cb) => {
1718
// skip on windows
@@ -28,9 +29,13 @@ const checkLock = (repo, cb) => {
2829
}
2930

3031
function testSignal (ipfs, sig) {
31-
let proc = null
3232
return ipfs('init').then(() => {
33-
proc = ipfs('daemon')
33+
return ipfs('config', 'Addresses', JSON.stringify({
34+
API: '/ip4/127.0.0.1/tcp/0',
35+
Gateway: '/ip4/127.0.0.1/tcp/0'
36+
}), '--json')
37+
}).then(() => {
38+
const proc = ipfs('daemon')
3439
return new Promise((resolve, reject) => {
3540
pull(
3641
toPull(proc.stdout),
@@ -72,11 +77,12 @@ describe('daemon', () => {
7277

7378
afterEach(() => clean(repoPath))
7479

75-
it('do not crash if Addresses.Swarm is empty', function (done) {
80+
skipOnWindows('do not crash if Addresses.Swarm is empty', function (done) {
7681
this.timeout(100 * 1000)
7782

7883
ipfs('init').then(() => {
7984
return ipfs('config', 'Addresses', JSON.stringify({
85+
Swarm: [],
8086
API: '/ip4/127.0.0.1/tcp/0',
8187
Gateway: '/ip4/127.0.0.1/tcp/0'
8288
}), '--json')
@@ -85,18 +91,18 @@ describe('daemon', () => {
8591
}).then((res) => {
8692
expect(res).to.have.string('Daemon is ready')
8793
done()
88-
}).catch((err) => done(err))
94+
}).catch(err => done(err))
8995
})
9096

91-
it('should handle SIGINT gracefully', function (done) {
97+
skipOnWindows('should handle SIGINT gracefully', function (done) {
9298
this.timeout(100 * 1000)
9399

94100
testSignal(ipfs, 'SIGINT').then(() => {
95101
checkLock(repoPath, done)
96102
}).catch(done)
97103
})
98104

99-
it('should handle SIGTERM gracefully', function (done) {
105+
skipOnWindows('should handle SIGTERM gracefully', function (done) {
100106
this.timeout(100 * 1000)
101107

102108
testSignal(ipfs, 'SIGTERM').then(() => {

test/core/bitswap.spec.js

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@ const multihashing = require('multihashing-async')
1717
const CID = require('cids')
1818

1919
const IPFSFactory = require('ipfsd-ctl')
20-
const fDaemon = IPFSFactory.create({ type: 'js' })
21-
const fInProc = IPFSFactory.create({ type: 'proc' })
2220

2321
// This gets replaced by '../utils/create-repo-browser.js' in the browser
2422
const createTempRepo = require('../utils/create-repo-nodejs.js')
2523

2624
const IPFS = require('../../src/core')
2725

26+
// TODO bitswap tests on windows is failing, missing proper shutdown of daemon
27+
// https://github.com/ipfs/js-ipfsd-ctl/pull/205
28+
const isWindows = require('../utils/platforms').isWindows
29+
const skipOnWindows = isWindows() ? describe.skip : describe
30+
2831
function makeBlock (callback) {
2932
const d = Buffer.from(`IPFS is awesome ${Math.random()}`)
3033

@@ -67,7 +70,7 @@ function connectNodes (remoteNode, inProcNode, callback) {
6770

6871
let nodes = []
6972

70-
function addNode (inProcNode, callback) {
73+
function addNode (fDaemon, inProcNode, callback) {
7174
fDaemon.spawn({
7275
exec: './src/cli/bin.js',
7376
initOptions: { bits: 512 },
@@ -89,10 +92,17 @@ function addNode (inProcNode, callback) {
8992
})
9093
}
9194

92-
describe('bitswap', function () {
95+
skipOnWindows('bitswap', function () {
9396
this.timeout(80 * 1000)
9497

9598
let inProcNode // Node spawned inside this process
99+
let fDaemon
100+
let fInProc
101+
102+
before(function () {
103+
fDaemon = IPFSFactory.create({ type: 'js' })
104+
fInProc = IPFSFactory.create({ type: 'proc' })
105+
})
96106

97107
beforeEach(function (done) {
98108
this.timeout(60 * 1000)
@@ -150,7 +160,7 @@ describe('bitswap', function () {
150160
waterfall([
151161
(cb) => parallel([
152162
(cb) => makeBlock(cb),
153-
(cb) => addNode(inProcNode, cb)
163+
(cb) => addNode(fDaemon, inProcNode, cb)
154164
], cb),
155165
(res, cb) => {
156166
block = res[0]
@@ -178,11 +188,11 @@ describe('bitswap', function () {
178188
blocks = _blocks
179189
cb()
180190
}),
181-
(cb) => addNode(inProcNode, (err, _ipfs) => {
191+
(cb) => addNode(fDaemon, inProcNode, (err, _ipfs) => {
182192
remoteNodes.push(_ipfs)
183193
cb(err)
184194
}),
185-
(cb) => addNode(inProcNode, (err, _ipfs) => {
195+
(cb) => addNode(fDaemon, inProcNode, (err, _ipfs) => {
186196
remoteNodes.push(_ipfs)
187197
cb(err)
188198
}),
@@ -213,14 +223,17 @@ describe('bitswap', function () {
213223
})
214224
})
215225

216-
describe('transfer a file between', () => {
226+
describe('transfer a file between', function () {
227+
this.timeout(160 * 1000)
228+
217229
it('2 peers', (done) => {
218230
// TODO make this test more interesting (10Mb file)
231+
// TODO remove randomness from the test
219232
const file = Buffer.from(`I love IPFS <3 ${Math.random()}`)
220233

221234
waterfall([
222235
// 0. Start node
223-
(cb) => addNode(inProcNode, cb),
236+
(cb) => addNode(fDaemon, inProcNode, cb),
224237
// 1. Add file to tmp instance
225238
(remote, cb) => {
226239
remote.files.add([{ path: 'awesome.txt', content: file }], cb)

test/fixtures/go-ipfs-repo/blocks/_README

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,17 @@ All the object files are placed in a tree of directories, based on a
66
function of the CID. This is a form of sharding similar to
77
the objects directory in git repositories. Previously, we used
88
prefixes, we now use the next-to-last two charters.
9-
109
func NextToLast(base32cid string) {
1110
nextToLastLen := 2
1211
offset := len(base32cid) - nextToLastLen - 1
1312
return str[offset : offset+nextToLastLen]
1413
}
15-
1614
For example, an object with a base58 CIDv1 of
17-
1815
zb2rhYSxw4ZjuzgCnWSt19Q94ERaeFhu9uSqRgjSdx9bsgM6f
19-
2016
has a base32 CIDv1 of
21-
2217
BAFKREIA22FLID5AJ2KU7URG47MDLROZIH6YF2KALU2PWEFPVI37YLKRSCA
23-
2418
and will be placed at
25-
2619
SC/AFKREIA22FLID5AJ2KU7URG47MDLROZIH6YF2KALU2PWEFPVI37YLKRSCA.data
27-
2820
with 'SC' being the last-to-next two characters and the 'B' at the
2921
beginning of the CIDv1 string is the multibase prefix that is not
3022
stored in the filename.

test/fixtures/go-ipfs-repo/config

Lines changed: 62 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
1-
{
2-
"Identity":{
3-
"PeerID":"QmQ2zigjQikYnyYUSXZydNXrDRhBut2mubwJBaLXobMt3A",
4-
"PrivKey":"CAASpgkwggSiAgEAAoIBAQC2SKo/HMFZeBml1AF3XijzrxrfQXdJzjePBZAbdxqKR1Mc6juRHXij6HXYPjlAk01BhF1S3Ll4Lwi0cAHhggf457sMg55UWyeGKeUv0ucgvCpBwlR5cQ020i0MgzjPWOLWq1rtvSbNcAi2ZEVn6+Q2EcHo3wUvWRtLeKz+DZSZfw2PEDC+DGPJPl7f8g7zl56YymmmzH9liZLNrzg/qidokUv5u1pdGrcpLuPNeTODk0cqKB+OUbuKj9GShYECCEjaybJDl9276oalL9ghBtSeEv20kugatTvYy590wFlJkkvyl+nPxIH0EEYMKK9XRWlu9XYnoSfboiwcv8M3SlsjAgMBAAECggEAZtju/bcKvKFPz0mkHiaJcpycy9STKphorpCT83srBVQi59CdFU6Mj+aL/xt0kCPMVigJw8P3/YCEJ9J+rS8BsoWE+xWUEsJvtXoT7vzPHaAtM3ci1HZd302Mz1+GgS8Epdx+7F5p80XAFLDUnELzOzKftvWGZmWfSeDnslwVONkL/1VAzwKy7Ce6hk4SxRE7l2NE2OklSHOzCGU1f78ZzVYKSnS5Ag9YrGjOAmTOXDbKNKN/qIorAQ1bovzGoCwx3iGIatQKFOxyVCyO1PsJYT7JO+kZbhBWRRE+L7l+ppPER9bdLFxs1t5CrKc078h+wuUr05S1P1JjXk68pk3+kQKBgQDeK8AR11373Mzib6uzpjGzgNRMzdYNuExWjxyxAzz53NAR7zrPHvXvfIqjDScLJ4NcRO2TddhXAfZoOPVH5k4PJHKLBPKuXZpWlookCAyENY7+Pd55S8r+a+MusrMagYNljb5WbVTgN8cgdpim9lbbIFlpN6SZaVjLQL3J8TWH6wKBgQDSChzItkqWX11CNstJ9zJyUE20I7LrpyBJNgG1gtvz3ZMUQCn3PxxHtQzN9n1P0mSSYs+jBKPuoSyYLt1wwe10/lpgL4rkKWU3/m1Myt0tveJ9WcqHh6tzcAbb/fXpUFT/o4SWDimWkPkuCb+8j//2yiXk0a/T2f36zKMuZvujqQKBgC6B7BAQDG2H2B/ijofp12ejJU36nL98gAZyqOfpLJ+FeMz4TlBDQ+phIMhnHXA5UkdDapQ+zA3SrFk+6yGk9Vw4Hf46B+82SvOrSbmnMa+PYqKYIvUzR4gg34rL/7AhwnbEyD5hXq4dHwMNsIDq+l2elPjwm/U9V0gdAl2+r50HAoGALtsKqMvhv8HucAMBPrLikhXP/8um8mMKFMrzfqZ+otxfHzlhI0L08Bo3jQrb0Z7ByNY6M8epOmbCKADsbWcVre/AAY0ZkuSZK/CaOXNX/AhMKmKJh8qAOPRY02LIJRBCpfS4czEdnfUhYV/TYiFNnKRj57PPYZdTzUsxa/yVTmECgYBr7slQEjb5Onn5mZnGDh+72BxLNdgwBkhO0OCdpdISqk0F0Pxby22DFOKXZEpiyI9XYP1C8wPiJsShGm2yEwBPWXnrrZNWczaVuCbXHrZkWQogBDG3HGXNdU4MAWCyiYlyinIBpPpoAJZSzpGLmWbMWh28+RJS6AQX6KHrK1o2uw=="
1+
{
2+
"Identity": {
3+
"PeerID": "QmQ2zigjQikYnyYUSXZydNXrDRhBut2mubwJBaLXobMt3A",
4+
"PrivKey": "CAASpgkwggSiAgEAAoIBAQC2SKo/HMFZeBml1AF3XijzrxrfQXdJzjePBZAbdxqKR1Mc6juRHXij6HXYPjlAk01BhF1S3Ll4Lwi0cAHhggf457sMg55UWyeGKeUv0ucgvCpBwlR5cQ020i0MgzjPWOLWq1rtvSbNcAi2ZEVn6+Q2EcHo3wUvWRtLeKz+DZSZfw2PEDC+DGPJPl7f8g7zl56YymmmzH9liZLNrzg/qidokUv5u1pdGrcpLuPNeTODk0cqKB+OUbuKj9GShYECCEjaybJDl9276oalL9ghBtSeEv20kugatTvYy590wFlJkkvyl+nPxIH0EEYMKK9XRWlu9XYnoSfboiwcv8M3SlsjAgMBAAECggEAZtju/bcKvKFPz0mkHiaJcpycy9STKphorpCT83srBVQi59CdFU6Mj+aL/xt0kCPMVigJw8P3/YCEJ9J+rS8BsoWE+xWUEsJvtXoT7vzPHaAtM3ci1HZd302Mz1+GgS8Epdx+7F5p80XAFLDUnELzOzKftvWGZmWfSeDnslwVONkL/1VAzwKy7Ce6hk4SxRE7l2NE2OklSHOzCGU1f78ZzVYKSnS5Ag9YrGjOAmTOXDbKNKN/qIorAQ1bovzGoCwx3iGIatQKFOxyVCyO1PsJYT7JO+kZbhBWRRE+L7l+ppPER9bdLFxs1t5CrKc078h+wuUr05S1P1JjXk68pk3+kQKBgQDeK8AR11373Mzib6uzpjGzgNRMzdYNuExWjxyxAzz53NAR7zrPHvXvfIqjDScLJ4NcRO2TddhXAfZoOPVH5k4PJHKLBPKuXZpWlookCAyENY7+Pd55S8r+a+MusrMagYNljb5WbVTgN8cgdpim9lbbIFlpN6SZaVjLQL3J8TWH6wKBgQDSChzItkqWX11CNstJ9zJyUE20I7LrpyBJNgG1gtvz3ZMUQCn3PxxHtQzN9n1P0mSSYs+jBKPuoSyYLt1wwe10/lpgL4rkKWU3/m1Myt0tveJ9WcqHh6tzcAbb/fXpUFT/o4SWDimWkPkuCb+8j//2yiXk0a/T2f36zKMuZvujqQKBgC6B7BAQDG2H2B/ijofp12ejJU36nL98gAZyqOfpLJ+FeMz4TlBDQ+phIMhnHXA5UkdDapQ+zA3SrFk+6yGk9Vw4Hf46B+82SvOrSbmnMa+PYqKYIvUzR4gg34rL/7AhwnbEyD5hXq4dHwMNsIDq+l2elPjwm/U9V0gdAl2+r50HAoGALtsKqMvhv8HucAMBPrLikhXP/8um8mMKFMrzfqZ+otxfHzlhI0L08Bo3jQrb0Z7ByNY6M8epOmbCKADsbWcVre/AAY0ZkuSZK/CaOXNX/AhMKmKJh8qAOPRY02LIJRBCpfS4czEdnfUhYV/TYiFNnKRj57PPYZdTzUsxa/yVTmECgYBr7slQEjb5Onn5mZnGDh+72BxLNdgwBkhO0OCdpdISqk0F0Pxby22DFOKXZEpiyI9XYP1C8wPiJsShGm2yEwBPWXnrrZNWczaVuCbXHrZkWQogBDG3HGXNdU4MAWCyiYlyinIBpPpoAJZSzpGLmWbMWh28+RJS6AQX6KHrK1o2uw=="
55
},
6-
"Datastore":{
7-
"Type":"",
8-
"Path":"",
9-
"StorageMax":"",
10-
"StorageGCWatermark":0,
11-
"GCPeriod":"",
12-
"Params":null,
13-
"NoSync":false
6+
"Datastore": {
7+
"Type": "",
8+
"Path": "",
9+
"StorageMax": "",
10+
"StorageGCWatermark": 0,
11+
"GCPeriod": "",
12+
"Params": null,
13+
"NoSync": false
1414
},
15-
"Addresses":{
16-
"Swarm":[
17-
"/ip4/127.0.0.1/tcp/9999",
18-
"/ip4/127.0.0.1/tcp/9990/ws"
15+
"Addresses": {
16+
"Swarm": [
17+
"/ip4/127.0.0.1/tcp/0",
18+
"/ip4/127.0.0.1/tcp/0/ws"
1919
],
20-
"API":"/ip4/127.0.0.1/tcp/6001",
21-
"Gateway":"/ip4/127.0.0.1/tcp/0"
20+
"API": "/ip4/127.0.0.1/tcp/0",
21+
"Gateway": "/ip4/127.0.0.1/tcp/0"
2222
},
23-
"Mounts":{
24-
"IPFS":"/ipfs",
25-
"IPNS":"/ipns",
26-
"FuseAllowOther":false
23+
"Mounts": {
24+
"IPFS": "/ipfs",
25+
"IPNS": "/ipns",
26+
"FuseAllowOther": false
2727
},
28-
"Version":{
29-
"Current":"0.4.0-dev",
30-
"Check":"error",
31-
"CheckDate":"0001-01-01T00:00:00Z",
32-
"CheckPeriod":"172800000000000",
33-
"AutoUpdate":"minor"
28+
"Version": {
29+
"Current": "0.4.0-dev",
30+
"Check": "error",
31+
"CheckDate": "0001-01-01T00:00:00Z",
32+
"CheckPeriod": "172800000000000",
33+
"AutoUpdate": "minor"
3434
},
35-
"Discovery":{
36-
"MDNS":{
37-
"Enabled":false,
38-
"Interval":10
35+
"Discovery": {
36+
"MDNS": {
37+
"Enabled": false,
38+
"Interval": 10
3939
},
4040
"webRTCStar": {
4141
"Enabled": false
4242
}
4343
},
44-
"Ipns":{
45-
"RepublishPeriod":"",
46-
"RecordLifetime":"",
47-
"ResolveCacheSize":128
44+
"Ipns": {
45+
"RepublishPeriod": "",
46+
"RecordLifetime": "",
47+
"ResolveCacheSize": 128
4848
},
49-
"Bootstrap":[
49+
"Bootstrap": [
5050
"/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z",
5151
"/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ",
5252
"/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM",
@@ -67,16 +67,16 @@
6767
"/dns4/wss0.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic",
6868
"/dns4/wss1.bootstrap.libp2p.io/tcp/443/wss/ipfs/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6"
6969
],
70-
"Tour":{
71-
"Last":""
70+
"Tour": {
71+
"Last": ""
7272
},
73-
"Gateway":{
74-
"HTTPHeaders":null,
75-
"RootRedirect":"",
76-
"Writable":false
73+
"Gateway": {
74+
"HTTPHeaders": null,
75+
"RootRedirect": "",
76+
"Writable": false
7777
},
78-
"SupernodeRouting":{
79-
"Servers":[
78+
"SupernodeRouting": {
79+
"Servers": [
8080
"/ip4/104.236.176.52/tcp/4002/ipfs/QmXdb7tWTxdFEQEFgWBqkuYSrZd3mXrC7HxkD4krGNYx2U",
8181
"/ip4/104.236.179.241/tcp/4002/ipfs/QmVRqViDByUxjUMoPnjurjKvZhaEMFDtK35FJXHAM4Lkj6",
8282
"/ip4/104.236.151.122/tcp/4002/ipfs/QmSZwGx8Tn8tmcM4PtDJaMeUQNRhNFdBLVGPzRiNaRJtFH",
@@ -87,15 +87,23 @@
8787
"/ip4/178.62.61.185/tcp/4002/ipfs/QmVw6fGNqBixZE4bewRLT2VXX7fAHUHs8JyidDiJ1P7RUN"
8888
]
8989
},
90-
"API":{
91-
"HTTPHeaders":null
90+
"API": {
91+
"HTTPHeaders": null
9292
},
93-
"Swarm":{
94-
"AddrFilters":null
93+
"Swarm": {
94+
"AddrFilters": null
9595
},
96-
"Log":{
97-
"MaxSizeMB":250,
98-
"MaxBackups":1,
99-
"MaxAgeDays":0
96+
"Log": {
97+
"MaxSizeMB": 250,
98+
"MaxBackups": 1,
99+
"MaxAgeDays": 0
100+
},
101+
"Keychain": {
102+
"dek": {
103+
"keyLength": 64,
104+
"iterationCount": 10000,
105+
"salt": "co5EbMmrhFwmhHjedZU73zhL",
106+
"hash": "sha2-512"
107+
}
100108
}
101-
}
109+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
MANIFEST-000014
1+
MANIFEST-000017
Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1 @@
1-
=============== Aug 25, 2016 (CEST) ===============
2-
17:21:42.391799 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
3-
17:21:42.393115 db@open opening
4-
17:21:42.399749 db@janitor F·5 G·1
5-
17:21:42.399774 db@janitor removing manifest-4
6-
17:21:42.399904 db@open done T·6.754896ms
7-
=============== Aug 25, 2016 (CEST) ===============
8-
17:36:56.009638 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
9-
17:36:56.009849 version@stat F·[2] S·1KiB[1KiB] Sc·[0.50]
10-
17:36:56.009874 db@open opening
11-
17:36:56.009943 journal@recovery F·1
12-
17:36:56.010918 journal@recovery recovering @8
13-
17:36:56.012317 memdb@flush created L0@10 N·4 S·1KiB "/ip..\xf6\xe4\xa9,d12":"/pk..TOA,v9"
14-
17:36:56.013451 version@stat F·[3] S·2KiB[2KiB] Sc·[0.75]
15-
17:36:56.014779 db@janitor F·5 G·0
16-
17:36:56.014815 db@open done T·4.928147ms
17-
17:36:56.030081 db@close closing
18-
17:36:56.030223 db@close done T·138.943µs
19-
=============== Aug 25, 2016 (CEST) ===============
20-
17:37:32.735975 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
21-
17:37:32.736209 version@stat F·[3] S·2KiB[2KiB] Sc·[0.75]
22-
17:37:32.736230 db@open opening
23-
17:37:32.736304 journal@recovery F·1
24-
17:37:32.737385 journal@recovery recovering @11
25-
17:37:32.738575 version@stat F·[3] S·2KiB[2KiB] Sc·[0.75]
26-
17:37:32.739466 db@janitor F·5 G·0
27-
17:37:32.739492 db@open done T·3.248709ms
28-
17:37:51.684973 db@close closing
29-
17:37:51.685242 db@close done T·168.908µs
1+
2018/02/27-08:48:29.247686 7000091b5000 Delete type=3 #15

0 commit comments

Comments
 (0)