v2.0.0 (beta); ensure 2.x releases are published as 'beta' for now
This commit is contained in:
parent
0d62f8a890
commit
40ee2503cc
7 changed files with 16 additions and 139 deletions
|
@ -5,7 +5,12 @@ Known issues:
|
|||
- [issue #58] Can't install to a dir with spaces. This is [this node-gyp
|
||||
bug](https://github.com/TooTallNate/node-gyp/issues/65).
|
||||
|
||||
## not yet released (2.x)
|
||||
## not yet released
|
||||
|
||||
(nothing yet)
|
||||
|
||||
|
||||
## 2.0.0 (beta)
|
||||
|
||||
- [issue #499] Fix some `bunyan` CLI exit handling problems.
|
||||
|
||||
|
|
4
Makefile
4
Makefile
|
@ -56,9 +56,9 @@ cutarelease: check
|
|||
read
|
||||
ver=$(shell cat package.json | json version) && \
|
||||
date=$(shell date -u "+%Y-%m-%d") && \
|
||||
git tag -a "$$ver" -m "version $$ver ($$date)" && \
|
||||
git tag -a "$$ver" -m "version $$ver ($$date) beta" && \
|
||||
git push --tags origin && \
|
||||
npm publish
|
||||
npm publish --tag beta
|
||||
|
||||
.PHONY: docs
|
||||
docs: toc
|
||||
|
|
|
@ -75,8 +75,11 @@ also [as a forum in the
|
|||
browser](https://groups.google.com/forum/?fromgroups#!forum/bunyan-logging).
|
||||
|
||||
Active branches:
|
||||
- "master" is currently for coming Bunyan 2.x work.
|
||||
- "1.x" is for 1.x maintenance work, if any.
|
||||
- "1.x" is for 1.x maintenance work, if any. 1.x releases are still "latest" in
|
||||
npm.
|
||||
- "master" is currently for coming Bunyan 2.x work. For now, 2.x releases are
|
||||
published to npm with the "beta" tag, meaning that `npm install bunyan` is
|
||||
still 1.x for now.
|
||||
|
||||
|
||||
# Installation
|
||||
|
|
131
TODO.md
131
TODO.md
|
@ -1,10 +1,5 @@
|
|||
# v2
|
||||
|
||||
- Exit handling:
|
||||
|
||||
- make a ticket with notes from "bunyan CLI exit handling" section below
|
||||
- resolve it with the uncommited changes here
|
||||
|
||||
- figure out how to 'make cutarelease' for 2.x but tag as beta
|
||||
- comment/grokking of bunyan.js flushing issues at
|
||||
https://github.com/trentm/node-bunyan/issues/37 would be nice. Even if just a
|
||||
|
@ -32,132 +27,6 @@
|
|||
- if doing ~/.bunyanrc, then consider color schemes
|
||||
|
||||
|
||||
# bunyan CLI exit handling
|
||||
|
||||
It has some problems currently.
|
||||
|
||||
One basic problem is that our stdout.on('error') handler can call into
|
||||
drainStdoutAndExit multiple times, leading to the multiple Event Emitters
|
||||
leak warning, and with a pager we are waiting for the pager to exit.
|
||||
Why doesn't the pager exit on ^C? Is that a less thing? Perhaps due to our
|
||||
LESS opts?
|
||||
|
||||
|
||||
|
||||
Setting up a file to work with:
|
||||
|
||||
```javascript
|
||||
$ cat lots.js
|
||||
var bunyan = require('./')
|
||||
var log = bunyan.createLogger({
|
||||
name: 'lots',
|
||||
streams: [
|
||||
{
|
||||
type: 'file',
|
||||
path: './lots.log'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
N = Math.pow(2, 16);
|
||||
for (var i = N; i >= 0; i--) {
|
||||
log.info({i: i}, 'another record');
|
||||
}
|
||||
|
||||
$ node lots.js
|
||||
```
|
||||
|
||||
## Issue 1: EventEmitter mem leak
|
||||
|
||||
```
|
||||
$ node --version
|
||||
v4.8.0
|
||||
$ ./bin/bunyan lots.log | cat
|
||||
[2017-04-05T01:47:15.899Z] INFO: lots/53218 on danger0.local: another record (i=65536)
|
||||
[2017-04-05T01:47:15.901Z] INFO: lots/53218 on danger0.local: another record (i=65535)
|
||||
...
|
||||
^C # ^C quickly before it is done writing rendered logs
|
||||
...
|
||||
[2017-04-05T01:47:16.023Z] INFO: lots/53218 on danger0.local: another record (i=57351)
|
||||
[2017-04-05T01:47:16.023Z] INFO: lots/53218
|
||||
^C(node) warning: possible EventEmitter memory leak detected. 11 drain listeners added. Use emitter.setMaxListeners() to increase limit.
|
||||
Trace
|
||||
at Socket.addListener (events.js:239:17)
|
||||
at Socket.Readable.on (_stream_readable.js:680:33)
|
||||
at drainStdoutAndExit (/Users/trentm/tm/node-bunyan/bin/bunyan:1116:12)
|
||||
at Socket.<anonymous> (/Users/trentm/tm/node-bunyan/bin/bunyan:1597:13)
|
||||
at emitOne (events.js:77:13)
|
||||
at Socket.emit (events.js:169:7)
|
||||
at onwriteError (_stream_writable.js:313:10)
|
||||
at onwrite (_stream_writable.js:331:5)
|
||||
at WritableState.onwrite (_stream_writable.js:90:5)
|
||||
at fireErrorCallbacks (net.js:457:13)
|
||||
```
|
||||
|
||||
## Issue 2: "write after end" infinite loop with ^C in pager
|
||||
|
||||
Mac. Node v4.8.0. Happens with node 0.10 as well.
|
||||
|
||||
```
|
||||
$ ./bin/bunyan lots.log
|
||||
[2017-04-05T01:47:15.899Z] INFO: lots/53218 on danger0.local: another record (i=65536)
|
||||
[2017-04-05T01:47:15.901Z] INFO: lots/53218 on danger0.local: another record (i=65535)
|
||||
[2017-04-05T01:47:15.901Z] INFO: lots/53218 on danger0.local: another record (i=65534)
|
||||
...
|
||||
^C
|
||||
...
|
||||
[2017-04-05T01:47:15.909Z] INFO: lots/53218 on danger0.local: another record (i=65490)
|
||||
:[Error: write after end]
|
||||
[Error: write after end]
|
||||
[Error: write after end]
|
||||
[Error: write after end]
|
||||
[Error: write after end]
|
||||
(node) warning: possible EventEmitter memory leak detected. 11 drain listeners added. Use emitter.setMaxListeners() to increase limit.
|
||||
Trace
|
||||
at Socket.addListener (events.js:239:17)
|
||||
at Socket.Readable.on (_stream_readable.js:680:33)
|
||||
at drainStdoutAndExit (/Users/trentm/tm/node-bunyan/bin/bunyan:1116:12)
|
||||
at Socket.<anonymous> (/Users/trentm/tm/node-bunyan/bin/bunyan:1600:13)
|
||||
at emitOne (events.js:77:13)
|
||||
at Socket.emit (events.js:169:7)
|
||||
at writeAfterEnd (_stream_writable.js:169:10)
|
||||
at Socket.Writable.write (_stream_writable.js:212:5)
|
||||
at Socket.write (net.js:645:40)
|
||||
at emit (/Users/trentm/tm/node-bunyan/bin/bunyan:1097:32)
|
||||
[Error: write after end]
|
||||
[Error: write after end]
|
||||
[Error: write after end]
|
||||
[Error: write after end]
|
||||
... # this goes forever until 'q' to quit pager
|
||||
```
|
||||
|
||||
With bunyan's internal `_DEBUG`:
|
||||
|
||||
```
|
||||
...
|
||||
[2017-04-05T01:47:15.909Z] INFO: lots/53218 on danger0.local: another record (i=65491)
|
||||
[2017-04-05T01:47:15.909Z] INFO: lots/53218 on danger0.local: another record (i=65490)
|
||||
:(bunyan: cleanupAndExit)
|
||||
(stdout error event: Error: write after end)
|
||||
[Error: write after end]
|
||||
(drainStdoutAndExit(1))
|
||||
(stdout error event: Error: write after end)
|
||||
[Error: write after end]
|
||||
(drainStdoutAndExit(1))
|
||||
(stdout error event: Error: write after end)
|
||||
[Error: write after end]
|
||||
(drainStdoutAndExit(1))
|
||||
(stdout error event: Error: write after end)
|
||||
[Error: write after end]
|
||||
...
|
||||
(drainStdoutAndExit(1))
|
||||
(stdout error event: Error: write EPIPE)
|
||||
(drainStdoutAndExit(0))
|
||||
(bunyan: pager exit)
|
||||
(bunyan: pager exit -> process.exit(1))
|
||||
```
|
||||
|
||||
|
||||
|
||||
# changes to ctor and log.child to separate fields from config
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
* vim: expandtab:ts=4:sw=4
|
||||
*/
|
||||
|
||||
var VERSION = '1.8.10';
|
||||
var VERSION = '2.0.0';
|
||||
|
||||
var p = console.log;
|
||||
var util = require('util');
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* vim: expandtab:ts=4:sw=4
|
||||
*/
|
||||
|
||||
var VERSION = '1.8.10';
|
||||
var VERSION = '2.0.0';
|
||||
|
||||
/*
|
||||
* Bunyan log format version. This becomes the 'v' field on all log records.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "bunyan",
|
||||
"version": "1.8.10",
|
||||
"version": "2.0.0",
|
||||
"description": "a JSON logging library for node.js services",
|
||||
"author": "Trent Mick <trentm@gmail.com> (http://trentm.com)",
|
||||
"main": "./lib/bunyan.js",
|
||||
|
|
Loading…
Reference in a new issue