TerriaJS/terriajs-server

Accessing WMTS service through proxy results in workers dying

meh9 opened this issue · 0 comments

meh9 commented

When accessing this layer through the TerriaJS-Server proxy:

            {
              "name": "Area Labels",
              "type": "wmts",
              "url": "https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/wmts.cgi",
              "layer": "Reference_Labels",
              "opacity": 1,
              "ignoreUnknownTileErrors": true,
              "keepOnTop": true,
              "isEnabled": true,
              "isLegendVisible": false,
              "info": [
                {
                  "name": "Licensing, Terms & Conditions",
                  "content": "<a href='https://science.nasa.gov/earth-science/earth-science-data/data-information-policy/'>NASA Open Data Policy</a> <p> We acknowledge the use of imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS, <a href='https://earthdata.nasa.gov'>https://earthdata.nasa.gov</a>) with funding provided by NASA/HQ."
                }
              ]
            },

The result is endless error messages like this printed in the terriajs-server log:

{ [Error: Parse Error] bytesParsed: 281, code: 'HPE_INVALID_CONSTANT' }
Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11)
    at ServerResponse.header (/opt/geoglam-2017-11-30/node_modules/express/lib/response.js:767:10)
    at ServerResponse.send (/opt/geoglam-2017-11-30/node_modules/express/lib/response.js:170:12)
    at Request.<anonymous> (/opt/geoglam-2017-11-30/node_modules/terriajs-server/lib/controllers/proxy.js:185:41)
    at emitOne (events.js:77:13)
    at Request.emit (events.js:169:7)
    at Request.onRequestError (/opt/geoglam-2017-11-30/node_modules/request/request.js:878:8)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at TLSSocket.socketOnData (_http_client.js:327:9)
    at emitOne (events.js:77:13)
    at TLSSocket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:153:18)
    at TLSSocket.Readable.push (_stream_readable.js:111:10)
    at TLSWrap.onread (net.js:540:20)
Worker 151 died. Replacing it.

However, it seems that terriajs-server does recover, so maybe it's not a serious problem?