TritonDataCenter / node-manta

Node.js SDK for Manta
75 stars 54 forks source link

mls hangs when finished #339

Open dfredell opened 6 years ago

dfredell commented 6 years ago

Issue

When running mls the program doesn't exit.

Env

Docker FROM node:8.9.4-alpine
/space # node -v
v8.9.3
/space # uname -a
Linux fafd765372b8 3.13.0 BrandZ virtual linux x86_64 Linux
/space # cat /etc/alpine-release
3.7.0
/usr/lib/node_modules/manta # npm ls --depth 0
manta@5.1.1 /usr/local/lib/node_modules/manta
+-- assert-plus@1.0.0
+-- backoff@2.3.0
+-- bunyan@1.8.12
+-- clone@0.1.19
+-- cmdln@4.1.2
+-- dashdash@1.14.1
+-- extsprintf@1.4.0
+-- hogan.js@2.0.0
+-- jsprim@1.4.1
+-- lomstream@1.1.0
+-- lstream@0.0.4
+-- mime@1.2.11
+-- moment@2.13.0
+-- once@1.3.3
+-- path-platform@0.0.1
+-- progbar@1.2.0
+-- readable-stream@1.1.14
+-- restify-clients@1.4.1
+-- showdown@1.4.4
+-- smartdc-auth@2.5.6
+-- strsplit@1.0.0
+-- tar@2.2.1
+-- uuid@2.0.3
+-- vasync@1.6.4
+-- verror@1.10.0
`-- watershed@0.3.4

Example

/space # printenv | grep MANTA
MANTA_ROLE=myrole
MANTA_PUBLIC_KEY=ssh-rsa AAAAB3Nza...
MANTA_KEY_ID=27:7a:...
MANTA_KEY_PATH=/root/.ssh
MANTA_SUBUSER=mysubuser
MANTA_USER=myuser
MANTA_URL=https://us-east.manta.joyent.com
MANTA_PRIVATE_KEY=-----BEGIN RSA PRIVATE KEY-----#...
MANTA_BUCKET=mybucket
/space # mls --type=o --verbose -r ~~/stor/???/database
...(all file names printed)...
mysql-backup-2018-01-07T13-54-00Z.xbstream
{"name":"mls","hostname":"fafd765372b8","pid":45443,"component":"MantaClient","path":"/clikassembly/stor/???/database","req_id":"df5ef1ae-b8bd-47cf-bb93-7245724edfa1","level":20,"msg":"get: done","time":"2018-02-19T18:36:07.421Z","src":{"file":"/usr/lib/node_modules/manta/lib/client.js","line":887,"func":"onEnd"},"v":0}

Then the cursor never returns, the application never exits.

Hack

If I add a process.exit(); after https://github.com/joyent/node-manta/blob/168056b072dac39a8b54fec8ee0a1373ce168756/lib/client.js#L888 the application works as expected. I don't know if that is the right solution, there is probably some stream or call back the needs poking to exit correctly.

dfredell commented 6 years ago

I was also able to fix this issue by downgrading the docker used from node:8.9.4-alpine to node:6.13.0-alpine. So something had changed from alpine:3.4 with node 6.13.0 to alpine:3.4 with node 8.9.4.