ssbc / multiserver

A single interface that can work with multiple protocols, and multiple transforms of those protocols (eg, security layer)
MIT License
104 stars 28 forks source link

more CI #35

Closed cryptix closed 5 years ago

cryptix commented 5 years ago

basically want to verify that unix-sock works on windows and future-proof support on osx as well.

cryptix commented 5 years ago

ws combined fails on OSX: https://travis-ci.org/ssbc/multiserver/jobs/467464598#L173

Listening on undefined:4848 (multiserver ws plugin)
server error, from net:127.0.0.1:49450~shs:
Error: wrong protocol/version
    at Object.cb (/Users/travis/build/ssbc/multiserver/node_modules/secret-handshake/protocol.js:86:30)
    at drain (/Users/travis/build/ssbc/multiserver/node_modules/pull-reader/index.js:39:14)
    at more (/Users/travis/build/ssbc/multiserver/node_modules/pull-reader/index.js:55:13)
    at /Users/travis/build/ssbc/multiserver/node_modules/pull-reader/index.js:66:9
    at /Users/travis/build/ssbc/multiserver/node_modules/pull-reader/index.js:20:7
    at drain (/Users/travis/build/ssbc/multiserver/node_modules/stream-to-pull-stream/index.js:141:18)
    at Socket.<anonymous> (/Users/travis/build/ssbc/multiserver/node_modules/stream-to-pull-stream/index.js:150:5)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
/Users/travis/build/ssbc/multiserver/test/plugs.js:202
    if(err) throw err
            ^
Error: socket hang up
    at createHangUpError (_http_client.js:342:15)
    at Socket.socketOnEnd (_http_client.js:437:23)
    at emitNone (events.js:111:20)
    at Socket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)
christianbundy commented 5 years ago

Nice, thanks for adding these tests! Do you have any intuition as to why this might fail on macOS?

cryptix commented 5 years ago

Do you have any intuition as to why this might fail on macOS?

sadly, not really. What I find confusing is the undefined:4848 listen but it's not a clear indication to why the key exchange fails with Error: wrong protocol/version.

Maybe it tries the wrong (default) port and this there is a mis-match between random shs caps? not sure right now. Didn't find time to look into this yet again.

dominictarr commented 5 years ago

wrong protocol/version means it successfully connected at tcp layer, but was speaking the wrong protocol. this would happen if cap is different, or if it connected to something that was not actually speaking shs. weird that this would fail on osx only. maybe it's loading config differently or something?

dominictarr commented 5 years ago

to rule out the config case, I also added the same travis config to secret-handshake