Skip to content

Error: 8 RESOURCE_EXHAUSTED: Bandwidth exhausted #1158

Closed

Description

@kirillgroshkov

Problem description

We use @googlecloud/datastore dependency in our code. Since some version of grpc-js (currently we're on 0.6.9) we started to receive the following error in our production and staging backends, also in our cron jobs that stream over ~100K / 1M records in Datastore (sometimes after ~5 minutes, sometimes after ~30 minutes). Error details as seen in our Sentry:

Error: 8 RESOURCE_EXHAUSTED: Bandwidth exhausted
    at Object.callErrorFromStatus (/root/repo/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
    at Http2CallStream.<anonymous> (/root/repo/node_modules/@grpc/grpc-js/build/src/client.js:96:33)
    at Http2CallStream.emit (events.js:215:7)
    at Http2CallStream.EventEmitter.emit (domain.js:476:20)
    at /root/repo/node_modules/@grpc/grpc-js/build/src/call-stream.js:75:22
    at processTicksAndRejections (internal/process/task_queues.js:75:11) {
  code: 8,
  details: 'Bandwidth exhausted',
  metadata: Metadata { internalRepr: Map {}, options: {} },
  note: 'Exception occurred in retry method that was not classified as transient'
}

Reproduction steps

Very hard to give reproduction steps. Stack trace is not "async", in a way that it doesn't like to exact place where it was called in the code (like it would have done with return await). We know that in the backend service we're doing all kinds of Datastore calls, but NOT stream. In cron jobs we DO stream as well as other (get, save) api calls.

Environment

  • Backend service is in AppEngine (was in Node10, now in Node12 beta, which runs node 12.4.0)
  • @grpc/grpc-js@0.6.9

We definitely did NOT see this error in 0.5.x, but I don't remember exactly since which version of 0.6.x it started to appear.

Additional context

Error happens quite seldomly, maybe ~1-2 times a days on a backend service that serves ~1M requests a day. But when it fails - it fails hard, it's impossible to try/catch such error, and usually one "occurrence" of such error fails multiple requests from our clients. For example, last night it failed in our staging environment that was running e2e tests (many browsers open in parallel) which produced ~480 errors in one spike. So, looks like this error does not "recover the connection" very quickly.

Another annoying thing of this error is that if it happens inside a long-running cron job that streams some table - we have no way to recover from that error and the whole cron job becomes "failed in the middle" (imagine running a DB migration that fails in the middle in a non-transactional way). So, if our cron job needs to run for ~3 hours and fails after 2 hours - we have no choice but to restart it from the very beginning (paying all the datastore costs).

Activity

  1. kirillgroshkov commented on Nov 4, 2019

    @kirillgroshkov
    Author

    UPD. Don't want to complicate this github issue with different errors, but trying now the same cron job multiple times gives me different error. Don't know how it is related to the original one. Tell me if I should open another issue for it or not. Stack trace:

    Error: 13 INTERNAL: 
        at Object.callErrorFromStatus (/Users/kirill/Idea/NCBackend3/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
        at Http2CallStream.<anonymous> (/Users/kirill/Idea/NCBackend3/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:96:33)
        at Http2CallStream.emit (events.js:215:7)
        at Http2CallStream.EventEmitter.emit (domain.js:476:20)
        at /Users/kirill/Idea/NCBackend3/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/call-stream.js:75:22
        at processTicksAndRejections (internal/process/task_queues.js:75:11) {
      code: 13,
      details: '',
      metadata: Metadata { internalRepr: Map {}, options: {} },
      note: 'Exception occurred in retry method that was not classified as transient'
    }
    

    Currently I have a script that reproduced this error after ~7 minutes 3 times in a row (will try more times, but looks "consistently reproducible"). All this script does is it opens 16 streams in parallel, reading data from Datastore and saving it (streaming) into a gzipped file.

    This is when running on my local MacOS.

    yarn list @grpc/grpc-js
    
    ├─ @grpc/grpc-js@0.6.10
    └─ google-gax@1.7.5
       └─ @grpc/grpc-js@0.6.9
    
  2. murgatroid99 commented on Nov 4, 2019

    @murgatroid99
    Member

    OK, there are a couple of issues here. Tracking down the source of these errors may be tricky for the reasons you mentioned, but they are definitely the result of errors being sent by the server in some form.

    You also mention that you can't try/catch these errors. These are errors that the Datastore library is outputting. They may be promise rejections or something but you should be able to handle them.

  3. kirillgroshkov commented on Nov 4, 2019

    @kirillgroshkov
    Author

    I'm confident that these errors we're unable to try catch. We have a code like:

    try {
    await datastore.get(...)
    } catch (err) {
    console.error('datastore error!', err)
    }

    This console.error fires sometimes on "normal" occasions (non-grpc-related), but it never fired when we had this Bandwidth exhausted error or any of the previous errors from grpc-js in the past (like the ones that other people experienced and that were closed in 0.6.x versions). So, I'm suspecting there's some problem in how @google-cloud/datastore fires errors. In other words, example of "non-try-catchable" error is:

    try { ... 
    setTimeout(() => throw new Error('catch me if you can!'), 500)
    } catch ....

    AFAIK - nothing can catch such error, so it'll become unhandledRejection or uncaughtException.
    Correct me if I'm wrong.

    Or, is there a way to do an experiment, add some throw error in grpc source code in node_modules and see if try/catch around Datastore api call gonna be caught or not?

  4. murgatroid99 commented on Nov 4, 2019

    @murgatroid99
    Member

    Well, grpc doesn't throw that error. It just passes it along to the client (Datastore, in this case). I am fairly certain that Datastore propagates the error as a promise rejection, but either way, it's not a grpc issue if Datastore is propagating that error improperly.

  5. MiLk commented on Dec 11, 2019

    @MiLk

    We started to observe the same issue since yesterday.
    We have a client using grpc-js that we updated from 0.5.2 to 0.6.11 about 3 weeks ago,
    and a server using grpc-go that we updated from v1.21.1 to v1.25.1 about 3 weeks ago.
    What is strange is that we didn't update anything in the past days, but the issue started to show only now.

    We get a lot of 8 RESOURCE_EXHAUSTED: Bandwidth exhausted and a few 13 INTERNAL errors on the client after running for a few hours.

    We have no error logs on the backend which could help us track down this issue.
    We used to have a keepalive enforcement policy set with a 25 seconds MinTime.
    It has been temporarily disabled.

  6. MiLk commented on Dec 13, 2019

    @MiLk

    So far, our best guess has been that it has been related to the amount of concurrent requests we are doing. But the numbers are not consistent.

    After enabling tracing and using 0.6.14, if we try to send 50k requests with a concurrency of 1k, we reach a situation where we start getting errors 13 and 8.

    At some point we receive:

    2019-12-13T01:12:48.970Z | resolving_load_balancer | xxxx:8443 READY -> SHUTDOWN
    2019-12-13T01:12:48.970Z | connectivity_state | xxxx:8443 READY -> SHUTDOWN
    2019-12-13T01:12:48.970Z | connectivity_state | xxxx:8443 SHUTDOWN -> SHUTDOWN
    

    Here is some logs from around the time it starts failing.

    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.932Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598932)
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.932Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598932)
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.932Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598932)
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.932Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598932)
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.932Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598932)
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.932Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598932)
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.932Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.933Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576199598933)
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxxx:8443
    2019-12-13T01:12:48.933Z | subchannel | xxxx:8443 callRefcount 993 -> 994
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxx:8443
    2019-12-13T01:12:48.933Z | subchannel | xxxx:8443 callRefcount 994 -> 995
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxxx:8443
    2019-12-13T01:12:48.933Z | subchannel | xxxx:8443 callRefcount 995 -> 996
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxxx:8443
    2019-12-13T01:12:48.933Z | subchannel | xxxx:8443 callRefcount 996 -> 997
    2019-12-13T01:12:48.933Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxxx:8443
    2019-12-13T01:12:48.933Z | subchannel | xxxx:8443 callRefcount 997 -> 998
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxxx:8443
    2019-12-13T01:12:48.936Z | subchannel | xxxx:8443 callRefcount 998 -> 999
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel xxxx:8443
    2019-12-13T01:12:48.936Z | subchannel | xxxx:8443 callRefcount 999 -> 1000
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.936Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 headers frame
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:48.948Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3316
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3316
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3316
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3311
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1656
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3312
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3312
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3307
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3313
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3313
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3313
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3308
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:48.949Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 434
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:48.959Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:48.963Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:48.963Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:48.964Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.964Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.964Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.964Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.964Z | subchannel | xxx:8443 callRefcount 1000 -> 999
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.965Z | subchannel | xxxx:8443 callRefcount 999 -> 998
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.965Z | subchannel | xxxx:8443 callRefcount 998 -> 997
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.965Z | subchannel | xxxx:8443 callRefcount 997 -> 996
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.965Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.965Z | subchannel | xxxx:8443 callRefcount 996 -> 995
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.966Z | subchannel | xxxx:8443 callRefcount 995 -> 994
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.966Z | subchannel | xxxx:8443 callRefcount 994 -> 993
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.966Z | subchannel | xxxx:8443 callRefcount 993 -> 992
    2019-12-13T01:12:48.966Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3316
    2019-12-13T01:12:48.967Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3316
    2019-12-13T01:12:48.967Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3316
    2019-12-13T01:12:48.967Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3311
    Error: 13 INTERNAL:
        at Object.callErrorFromStatus (/Users/xxxx/client/node/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
        at Http2CallStream.<anonymous> (/Users/xxxx/client/node/node_modules/@grpc/grpc-js/build/src/client.js:96:33)
        at Http2CallStream.emit (events.js:215:7)
        at /Users/xxxx/client/node/node_modules/@grpc/grpc-js/build/src/call-stream.js:98:22
        at processTicksAndRejections (internal/process/task_queues.js:75:11) {
      code: 13,
      details: '',
      metadata: Metadata { internalRepr: Map {}, options: {} }
    }
    2019-12-13T01:12:48.970Z | subchannel | xxxx:8443 callRefcount 2 -> 1
    2019-12-13T01:12:48.970Z | resolving_load_balancer | xxxx:8443 READY -> SHUTDOWN
    2019-12-13T01:12:48.970Z | connectivity_state | xxxx:8443 READY -> SHUTDOWN
    2019-12-13T01:12:48.970Z | connectivity_state | xxxx:8443 SHUTDOWN -> SHUTDOWN
    2019-12-13T01:12:48.970Z | subchannel | xxxx:8443 callRefcount 1 -> 0
    2019-12-13T01:12:48.970Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.970Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.970Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.970Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.970Z | subchannel | xxxx:8443 callRefcount 992 -> 991
    2019-12-13T01:12:48.971Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3314
    2019-12-13T01:12:48.971Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3314
    2019-12-13T01:12:48.971Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3314
    2019-12-13T01:12:48.971Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3309
    2019-12-13T01:12:48.971Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.971Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.972Z | subchannel | xxxx:8443 callRefcount 991 -> 990
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1315
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.972Z | subchannel | xxxx:8443 callRefcount 990 -> 989
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.972Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.994Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.995Z | subchannel | xxxx:8443 callRefcount 989 -> 988
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.995Z | subchannel | xxxx:8443 callRefcount 988 -> 987
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:48.995Z | subchannel | xxxx:8443 callRefcount 987 -> 986
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:48.995Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.004Z | subchannel | xxxx:8443 callRefcount 986 -> 985
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.005Z | subchannel | xxxx:8443 callRefcount 985 -> 984
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.005Z | subchannel | xxxx:8443 callRefcount 984 -> 983
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.005Z | subchannel | xxxx:8443 callRefcount 983 -> 982
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.005Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.005Z | subchannel | xxxx:8443 callRefcount 982 -> 981
    2019-12-13T01:12:49.006Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.006Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.006Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.006Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.006Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3307
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3307
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3307
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3302
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3318
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3318
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3318
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3313
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.026Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.041Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.042Z | subchannel | xxxx:8443 callRefcount 981 -> 980
    2019-12-13T01:12:49.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.053Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.053Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.053Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.053Z | subchannel | xxxx:8443 callRefcount 980 -> 979
    2019-12-13T01:12:49.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.054Z | subchannel | xxxx:8443 callRefcount 979 -> 978
    2019-12-13T01:12:49.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.055Z | subchannel | xxxx:8443 callRefcount 978 -> 977
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.073Z | subchannel | xxxx:8443 callRefcount 977 -> 976
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.073Z | subchannel | xxxx:8443 callRefcount 976 -> 975
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.073Z | subchannel | xxxx:8443 callRefcount 975 -> 974
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.074Z | subchannel | xxxx:8443 callRefcount 974 -> 973
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.074Z | subchannel | xxxx:8443 callRefcount 973 -> 972
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.074Z | subchannel | xxxx:8443 callRefcount 972 -> 971
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.075Z | subchannel | xxxx:8443 callRefcount 971 -> 970
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.075Z | subchannel | xxxx:8443 callRefcount 970 -> 969
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.075Z | subchannel | xxxx:8443 callRefcount 969 -> 968
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.075Z | subchannel | xxxx:8443 callRefcount 968 -> 967
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.076Z | subchannel | xxxx:8443 callRefcount 967 -> 966
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.076Z | subchannel | xxxx:8443 callRefcount 966 -> 965
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.076Z | subchannel | xxxx:8443 callRefcount 965 -> 964
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.076Z | subchannel | xxxx:8443 callRefcount 964 -> 963
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.076Z | subchannel | xxxx:8443 callRefcount 963 -> 962
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.077Z | subchannel | xxxx:8443 callRefcount 962 -> 961
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.077Z | subchannel | xxxx:8443 callRefcount 961 -> 960
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.077Z | subchannel | xxxx:8443 callRefcount 960 -> 959
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.077Z | subchannel | xxxx:8443 callRefcount 959 -> 958
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.077Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.077Z | subchannel | xxxx:8443 callRefcount 958 -> 957
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.078Z | subchannel | xxxx:8443 callRefcount 957 -> 956
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3306
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3306
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3306
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3301
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.078Z | subchannel | xxxx:8443 callRefcount 956 -> 955
    2019-12-13T01:12:49.078Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.079Z | subchannel | xxxx:8443 callRefcount 955 -> 954
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.079Z | subchannel | xxxx:8443 callRefcount 954 -> 953
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3120
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.079Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.080Z | subchannel | xxxx:8443 callRefcount 953 -> 952
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 2715
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.080Z | subchannel | xxxx:8443 callRefcount 952 -> 951
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.080Z | subchannel | xxxx:8443 callRefcount 951 -> 950
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.080Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.080Z | subchannel | xxxx:8443 callRefcount 950 -> 949
    2019-12-13T01:12:49.088Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3314
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3314
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3314
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3309
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.089Z | subchannel | xxxx:8443 callRefcount 949 -> 948
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3309
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3309
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3309
    2019-12-13T01:12:49.089Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3304
    2019-12-13T01:12:49.091Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.091Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.091Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.091Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.091Z | subchannel | xxxx:8443 callRefcount 948 -> 947
    2019-12-13T01:12:49.092Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3312
    2019-12-13T01:12:49.092Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3312
    2019-12-13T01:12:49.092Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3312
    2019-12-13T01:12:49.092Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3307
    2019-12-13T01:12:49.092Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.092Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.114Z | subchannel | xxxx:8443 callRefcount 947 -> 946
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3049
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.114Z | subchannel | xxxx:8443 callRefcount 946 -> 945
    2019-12-13T01:12:49.114Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 266
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3315
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3315
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3310
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.115Z | subchannel | xxxx:8443 callRefcount 945 -> 944
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3314
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3314
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3314
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3309
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3312
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3312
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3312
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3307
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3308
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3308
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3308
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3303
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 101
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3309
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3309
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3309
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3304
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3315
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3315
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3315
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3310
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.115Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.116Z | subchannel | xxxx:8443 callRefcount 944 -> 943
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.116Z | subchannel | xxxx:8443 callRefcount 943 -> 942
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.116Z | subchannel | xxxx:8443 callRefcount 942 -> 941
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.116Z | subchannel | xxxx:8443 callRefcount 941 -> 940
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.116Z | subchannel | xxxx:8443 callRefcount 940 -> 939
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.116Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.117Z | subchannel | xxxx:8443 callRefcount 939 -> 938
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3312
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3312
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3312
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3307
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.117Z | subchannel | xxxx:8443 callRefcount 938 -> 937
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.117Z | subchannel | xxxx:8443 callRefcount 937 -> 936
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.117Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.118Z | subchannel | xxxx:8443 callRefcount 936 -> 935
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.118Z | subchannel | xxxx:8443 callRefcount 935 -> 934
    2019-12-13T01:12:49.118Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.123Z | subchannel | xxxx:8443 callRefcount 934 -> 933
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3314
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3314
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3314
    2019-12-13T01:12:49.123Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3309
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.124Z | subchannel | xxxx:8443 callRefcount 933 -> 932
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3313
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3313
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3313
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3308
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.124Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.124Z | subchannel | xxxx:8443 callRefcount 932 -> 931
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3309
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3309
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3309
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3304
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.125Z | subchannel | xxxx:8443 callRefcount 931 -> 930
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 2517
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.125Z | subchannel | xxxx:8443 callRefcount 930 -> 929
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.125Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3309
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3309
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3309
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3304
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.126Z | subchannel | xxxx:8443 callRefcount 929 -> 928
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.126Z | subchannel | xxxx:8443 callRefcount 928 -> 927
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.126Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.127Z | subchannel | xxxx:8443 callRefcount 927 -> 926
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1065
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3313
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3313
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3308
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.127Z | subchannel | xxxx:8443 callRefcount 926 -> 925
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1970
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.127Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.127Z | subchannel | xxxx:8443 callRefcount 925 -> 924
    2019-12-13T01:12:49.130Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1340
    2019-12-13T01:12:49.130Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.131Z | subchannel | xxxx:8443 callRefcount 924 -> 923
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3314
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3314
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3314
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3309
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3312
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3312
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3312
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3307
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.131Z | subchannel | xxxx:8443 callRefcount 923 -> 922
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.131Z | subchannel | xxxx:8443 callRefcount 922 -> 921
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.131Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.132Z | subchannel | xxxx:8443 callRefcount 921 -> 920
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 2354
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T01:12:49.132Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T01:12:49.132Z | subchannel | xxxx:8443 callRefcount 920 -> 919
    2019-12-13T01:12:49.136Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3311
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3311
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3311
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3306
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3310
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3310
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3310
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3305
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.137Z | subchannel | xxxx:8443 callRefcount 919 -> 918
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3309
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3309
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3309
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3304
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.137Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.138Z | subchannel | xxxx:8443 callRefcount 918 -> 917
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3312
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3312
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3312
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3307
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.138Z | subchannel | xxxx:8443 callRefcount 917 -> 916
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3053
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 11
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=8 details="Bandwidth exhausted"
    2019-12-13T01:12:49.138Z | subchannel | xxxx:8443 callRefcount 916 -> 915
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 253
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3306
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3306
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3301
    2019-12-13T01:12:49.138Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1479
    
  7. murgatroid99 commented on Dec 13, 2019

    @murgatroid99
    Member

    These logs show that the HTTP/2 streams are being closed with RST_STREAM frames with error codes 2 (INTERNAL_ERROR) and 11 (ENHANCE_YOUR_CALM which translates to RESOURCE_EXHAUSTED). It is very likely (but not 100% guaranteed) that these error codes are being sent by the server and not generated on the client. Specifically, they are likely being generated by the server's HTTP/2 implementation, not gRPC. You mentioned that you are using grpc-go on the server, so you may have some luck filing a bug report with the grpc-go repository and including a link to this comment.

  8. MiLk commented on Dec 13, 2019

    @MiLk

    Ok, thank you for your help.

  9. MiLk commented on Dec 13, 2019

    @MiLk

    After spending more time troubleshooting this, I think the problem might come from the client and not the server.
    The client seems to be the one sending the RST_STREAM frames.

    I've reproduced the issue locally with the same go server and node client, and I'm using wireshark to check the traffic.

    Here a the logs of the client at the time of the issue:

    2019-12-13T05:55:01.041Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 trailing headers frame
    2019-12-13T05:55:01.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=0 details=""
    2019-12-13T05:55:01.042Z | subchannel | 127.0.0.1:8443 callRefcount 996 -> 995
    2019-12-13T05:55:01.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 0
    2019-12-13T05:55:01.042Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3031
    2019-12-13T05:55:01.043Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3031
    2019-12-13T05:55:01.043Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3031
    2019-12-13T05:55:01.043Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3026
    2019-12-13T05:55:01.044Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3031
    2019-12-13T05:55:01.044Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3031
    2019-12-13T05:55:01.044Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3031
    2019-12-13T05:55:01.044Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3026
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3099
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3099
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3099
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3094
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3099
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3099
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3099
    2019-12-13T05:55:01.045Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3094
    2019-12-13T05:55:01.049Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.049Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.050Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.051Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.051Z | subchannel | 127.0.0.1:8443 callRefcount 995 -> 994
    2019-12-13T05:55:01.052Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.052Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.052Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.053Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.053Z | subchannel | 127.0.0.1:8443 callRefcount 994 -> 993
    2019-12-13T05:55:01.053Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.054Z | subchannel | 127.0.0.1:8443 callRefcount 993 -> 992
    2019-12-13T05:55:01.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3065
    2019-12-13T05:55:01.054Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3065
    2019-12-13T05:55:01.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3065
    2019-12-13T05:55:01.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3060
    2019-12-13T05:55:01.055Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576216531055)
    2019-12-13T05:55:01.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T05:55:01.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T05:55:01.055Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576216531055)
    2019-12-13T05:55:01.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T05:55:01.055Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T05:55:01.055Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576216531055)
    2019-12-13T05:55:01.056Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T05:55:01.056Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T05:55:01.056Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576216531056)
    2019-12-13T05:55:01.056Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T05:55:01.056Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    2019-12-13T05:55:01.056Z | channel | createCall(method="/oneminute.v1.OneMinute/GetPriceList", deadline=1576216531056)
    2019-12-13T05:55:01.056Z | call_stream | /oneminute.v1.OneMinute/GetPriceList Sending metadata
    2019-12-13T05:55:01.056Z | call_stream | /oneminute.v1.OneMinute/GetPriceList write() called with message of length 1210
    Error: 13 INTERNAL:
        at Object.callErrorFromStatus (/Users/emilien/Dev/marketdata-api/client/node/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
        at Http2CallStream.<anonymous> (/Users/emilien/Dev/marketdata-api/client/node/node_modules/@grpc/grpc-js/build/src/client.js:96:33)
        at Http2CallStream.emit (events.js:215:7)
        at /Users/emilien/Dev/marketdata-api/client/node/node_modules/@grpc/grpc-js/build/src/call-stream.js:98:22
        at processTicksAndRejections (internal/process/task_queues.js:75:11) {
      code: 13,
      details: '',
      metadata: Metadata { internalRepr: Map {}, options: {} }
    }
    2019-12-13T05:55:01.062Z | subchannel | 127.0.0.1:8443 callRefcount 2 -> 1
    2019-12-13T05:55:01.062Z | resolving_load_balancer | 127.0.0.1:8443 READY -> SHUTDOWN
    2019-12-13T05:55:01.062Z | connectivity_state | 127.0.0.1:8443 READY -> SHUTDOWN
    2019-12-13T05:55:01.062Z | connectivity_state | 127.0.0.1:8443 SHUTDOWN -> SHUTDOWN
    2019-12-13T05:55:01.062Z | subchannel | 127.0.0.1:8443 callRefcount 1 -> 0
    2019-12-13T05:55:01.063Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel 127.0.0.1:8443
    2019-12-13T05:55:01.063Z | subchannel | 127.0.0.1:8443 callRefcount 992 -> 993
    2019-12-13T05:55:01.063Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel 127.0.0.1:8443
    2019-12-13T05:55:01.063Z | subchannel | 127.0.0.1:8443 callRefcount 993 -> 994
    2019-12-13T05:55:01.063Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel 127.0.0.1:8443
    2019-12-13T05:55:01.063Z | subchannel | 127.0.0.1:8443 callRefcount 994 -> 995
    2019-12-13T05:55:01.063Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel 127.0.0.1:8443
    2019-12-13T05:55:01.063Z | subchannel | 127.0.0.1:8443 callRefcount 995 -> 996
    2019-12-13T05:55:01.063Z | call_stream | /oneminute.v1.OneMinute/GetPriceList attachHttp2Stream from subchannel 127.0.0.1:8443
    2019-12-13T05:55:01.067Z | subchannel | 127.0.0.1:8443 callRefcount 996 -> 997
    2019-12-13T05:55:01.068Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.068Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.068Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.069Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.069Z | subchannel | 127.0.0.1:8443 callRefcount 997 -> 996
    2019-12-13T05:55:01.069Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 3167
    2019-12-13T05:55:01.070Z | call_stream | /oneminute.v1.OneMinute/GetPriceList parsed message of length 3167
    2019-12-13T05:55:01.071Z | call_stream | /oneminute.v1.OneMinute/GetPriceList filterReceivedMessage of length 3167
    2019-12-13T05:55:01.071Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length 3162
    2019-12-13T05:55:01.071Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T05:55:01.071Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T05:55:01.071Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T05:55:01.072Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T05:55:01.072Z | call_stream | /oneminute.v1.OneMinute/GetPriceList end() called
    2019-12-13T05:55:01.072Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.073Z | subchannel | 127.0.0.1:8443 callRefcount 996 -> 995
    2019-12-13T05:55:01.073Z | call_stream | /oneminute.v1.OneMinute/GetPriceList receive HTTP/2 data frame of length 1450
    2019-12-13T05:55:01.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.074Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.074Z | subchannel | 127.0.0.1:8443 callRefcount 995 -> 994
    2019-12-13T05:55:01.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    2019-12-13T05:55:01.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceListpushing to reader message of length null
    2019-12-13T05:55:01.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList HTTP/2 stream closed with code 2
    2019-12-13T05:55:01.075Z | call_stream | /oneminute.v1.OneMinute/GetPriceList ended with status: code=13 details=""
    2019-12-13T05:55:01.075Z | subchannel | 127.0.0.1:8443 callRefcount 994 -> 993
    2019-12-13T05:55:01.076Z | call_stream | /oneminute.v1.OneMinute/GetPriceList received HTTP/2 end of data flag
    

    Here are the server logs (using GODEBUG=http2debug=2):

    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5559 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514195798\x1a\n1514197622\x1a\n1514210735\x1a\n1514214652\x1a\n1514207407\x1a\n1514195862\x1a\n1514213526\x1a\n1514216456\x1a\n1514202964\x1a\n1514203507\x1a\n1514197864\x1a\n1514195251\x1a\n1514219151\x1a\n1514214573\x1a\n1514215480\x1a\n1514203627\x1a\n1514207168\x1a\n1514211962\x1a\n1514219793\x1a\n1514218139\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5561 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514193435\x1a\n1514211548\x1a\n1514205144\x1a\n1514214597\x1a\n1514213517\x1a\n1514216157\x1a\n1514193027\x1a\n1514206873\x1a\n1514206242\x1a\n1514209745\x1a\n1514199109\x1a\n1514191297\x1a\n1514197718\x1a\n1514210083\x1a\n1514219654\x1a\n1514199819\x1a\n1514206641\x1a\n1514191809\x1a\n1514202896\x1a\n1514213763\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5563 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514207702\x1a\n1514210168\x1a\n1514192077\x1a\n1514196931\x1a\n1514206869\x1a\n1514194985\x1a\n1514191583\x1a\n1514211602\x1a\n1514196245\x1a\n1514198900\x1a\n1514211997\x1a\n1514214266\x1a\n1514207333\x1a\n1514214994\x1a\n1514213545\x1a\n1514214718\x1a\n1514194741\x1a\n1514217055\x1a\n1514200714\x1a\n1514200579\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5565 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514216876\x1a\n1514214713\x1a\n1514192594\x1a\n1514215289\x1a\n1514192855\x1a\n1514190409\x1a\n1514216880\x1a\n1514207284\x1a\n1514211560\x1a\n1514193596\x1a\n1514190716\x1a\n1514204442\x1a\n1514197595\x1a\n1514190699\x1a\n1514215349\x1a\n1514204644\x1a\n1514203151\x1a\n1514200892\x1a\n1514191634\x1a\n1514191997\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5567 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514206729\x1a\n1514212004\x1a\n1514218297\x1a\n1514200161\x1a\n1514202898\x1a\n1514211497\x1a\n1514214489\x1a\n1514192321\x1a\n1514190169\x1a\n1514203657\x1a\n1514219087\x1a\n1514205301\x1a\n1514199391\x1a\n1514208225\x1a\n1514211981\x1a\n1514190853\x1a\n1514201200\x1a\n1514200797\x1a\n1514219237\x1a\n1514191830\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5569 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514197480\x1a\n1514191687\x1a\n1514208400\x1a\n1514207546\x1a\n1514193449\x1a\n1514204695\x1a\n1514202403\x1a\n1514212336\x1a\n1514192004\x1a\n1514216226\x1a\n1514190064\x1a\n1514196263\x1a\n1514215057\x1a\n1514191456\x1a\n1514192972\x1a\n1514216331\x1a\n1514201026\x1a\n1514196692\x1a\n1514207221\x1a\n1514208342\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5571 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514211730\x1a\n1514210292\x1a\n1514197393\x1a\n1514200997\x1a\n1514218238\x1a\n1514205570\x1a\n1514199158\x1a\n1514191634\x1a\n1514191439\x1a\n1514216897\x1a\n1514201043\x1a\n1514211160\x1a\n1514198868\x1a\n1514199051\x1a\n1514205822\x1a\n1514208781\x1a\n1514202075\x1a\n1514191867\x1a\n1514204235\x1a\n1514204847\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5573 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514199242\x1a\n1514195215\x1a\n1514219559\x1a\n1514190933\x1a\n1514201999\x1a\n1514215559\x1a\n1514205038\x1a\n1514205433\x1a\n1514205049\x1a\n1514203409\x1a\n1514211466\x1a\n1514214445\x1a\n1514191968\x1a\n1514194224\x1a\n1514208636\x1a\n1514195412\x1a\n1514215932\x1a\n1514202490\x1a\n1514192936\x1a\n1514204286\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5575 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514208561\x1a\n1514209266\x1a\n1514218913\x1a\n1514212235\x1a\n1514213785\x1a\n1514201081\x1a\n1514207339\x1a\n1514197787\x1a\n1514210408\x1a\n1514195749\x1a\n1514200435\x1a\n1514203784\x1a\n1514205614\x1a\n1514194935\x1a\n1514202863\x1a\n1514211401\x1a\n1514191824\x1a\n1514198650\x1a\n1514201723\x1a\n1514219021\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5577 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514194170\x1a\n1514212039\x1a\n1514216237\x1a\n1514208607\x1a\n1514218675\x1a\n1514193502\x1a\n1514193758\x1a\n1514200669\x1a\n1514210650\x1a\n1514194251\x1a\n1514192010\x1a\n1514190228\x1a\n1514207736\x1a\n1514199306\x1a\n1514196649\x1a\n1514208590\x1a\n1514202123\x1a\n1514215024\x1a\n1514206273\x1a\n1514205816\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA stream=5579 len=1215 data="\x00\x00\x00\x04\xba\n\x03BTC\x12\x03EUR\x1a\n1514210323\x1a\n1514192573\x1a\n1514198772\x1a\n1514213081\x1a\n1514197161\x1a\n1514192374\x1a\n1514207278\x1a\n1514201585\x1a\n1514209830\x1a\n1514196047\x1a\n1514195248\x1a\n1514190815\x1a\n1514204048\x1a\n1514204076\x1a\n1514208386\x1a\n1514193614\x1a\n1514201895\x1a\n1514190029\x1a\n1514200799\x1a\n1514195920\x1a" (959 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=4965 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=2975 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5559 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5561 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5563 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5565 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5567 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5569 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5571 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5573 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5575 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5577 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read DATA flags=END_STREAM stream=5579 len=0 data=""
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=1289 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5411 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5131 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5265 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5123 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5473 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5291 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5255 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=4565 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5477 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=3499 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=4457 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5447 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5355 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read PING flags=ACK len=8 ping="\x02\x04\x10\x10\t\x0e\a\a"
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read WINDOW_UPDATE len=4 (conn) incr=34007
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=3239 len=3065 data="\x00\x00\x00\v\xf4\n \n\x1211948.725000000000\x12\n1514190660\n \n\x1211963.689999999999\x12\n1514190960\n \n\x1211983.783333333333\x12\n1514191080\n \n\x1211992.700000000003\x12\n1514191140\n \n\x1211995.668749999999\x12\n1514191320\n \n\x1211995.564999999999\x12\n1514191380\n \n\x1211998.114285714288\x12\n1514191560\n \n\x1211965.700" (2809 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=3239 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read RST_STREAM stream=4839 len=4 ErrCode=INTERNAL_ERROR
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=3133 len=3133 data="\x00\x00\x00\f8\n \n\x1211831.167567567567\x12\n1514190360\n \n\x1211846.000000000000\x12\n1514190420\n \n\x1211862.523529411767\x12\n1514190600\n \n\x1211948.725000000000\x12\n1514190660\n \n\x1211995.668749999999\x12\n1514191320\n \n\x1211986.400000000001\x12\n1514191680\n \n\x1211968.937500000000\x12\n1514192100\n \n\x1211965.700" (2877 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=3133 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read RST_STREAM stream=4423 len=4 ErrCode=INTERNAL_ERROR
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=1501 len=3031 data="\x00\x00\x00\v\xd2\n \n\x1211815.955555555554\x12\n1514190300\n \n\x1211846.000000000000\x12\n1514190420\n \n\x1211983.783333333333\x12\n1514191080\n \n\x1211992.959999999999\x12\n1514191260\n \n\x1211999.272222222222\x12\n1514191500\n \n\x1211975.203125000000\x12\n1514192460\n \n\x1211997.941666666666\x12\n1514192580\n \n\x1211976.095" (2775 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=1501 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=425 len=3031 data="\x00\x00\x00\v\xd2\n \n\x1211819.419999999998\x12\n1514190000\n \n\x1211963.689999999999\x12\n1514190960\n \n\x1211992.700000000003\x12\n1514191140\n \n\x1211989.400000000000\x12\n1514191740\n \n\x1211990.181250000001\x12\n1514191800\n \n\x1211957.296153846150\x12\n1514192220\n \n\x1211939.635714285714\x12\n1514192340\n \n\x1211999.968" (2775 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=425 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: read RST_STREAM stream=2193 len=4 ErrCode=INTERNAL_ERROR
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=5175 len=3031 data="\x00\x00\x00\v\xd2\n \n\x1211823.335714285713\x12\n1514190180\n \n\x1211831.167567567567\x12\n1514190360\n \n\x1211989.520000000000\x12\n1514191020\n \n\x1211995.668749999999\x12\n1514191320\n \n\x1211968.937500000000\x12\n1514192100\n \n\x1211975.203125000000\x12\n1514192460\n \n\x1212055.107142857143\x12\n1514193000\n \n\x1212004.368" (2775 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=5175 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=3495 len=3031 data="\x00\x00\x00\v\xd2\n \n\x1211820.049999999999\x12\n1514190240\n \n\x1211995.564999999999\x12\n1514191380\n \n\x1211999.272222222222\x12\n1514191500\n \n\x1211993.622222222222\x12\n1514191620\n \n\x1211990.181250000001\x12\n1514191800\n \n\x1211968.937500000000\x12\n1514192100\n \n\x1211997.941666666666\x12\n1514192580\n \n\x1212004.368" (2775 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=3495 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=4823 len=2963 data="\x00\x00\x00\v\x8e\n \n\x1211820.049999999999\x12\n1514190240\n \n\x1211963.689999999999\x12\n1514190960\n \n\x1211993.799999999999\x12\n1514191200\n \n\x1211992.959999999999\x12\n1514191260\n \n\x1211995.564999999999\x12\n1514191380\n \n\x1211986.400000000001\x12\n1514191680\n \n\x1211939.635714285714\x12\n1514192340\n \n\x1211975.203" (2707 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=4823 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=5011 len=2929 data="\x00\x00\x00\vl\n \n\x1211862.523529411767\x12\n1514190600\n \n\x1211952.903846153846\x12\n1514190780\n \n\x1211963.689999999999\x12\n1514190960\n \n\x1211992.700000000003\x12\n1514191140\n \n\x1211992.959999999999\x12\n1514191260\n \n\x1211995.668749999999\x12\n1514191320\n \n\x1211995.564999999999\x12\n1514191380\n \n\x1211997.443" (2673 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=5011 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=2077 len=2595 data="\n1514197020\n \n\x1211895.888888888889\x12\n1514197140\n \n\x1211905.273333333333\x12\n1514197200\n \n\x1211905.268749999999\x12\n1514197260\n \n\x1211909.811111111112\x12\n1514197320\n \n\x1211872.108333333332\x12\n1514197800\n \n\x1211748.179999999998\x12\n1514198100\n \n\x1211773.973333333332\x12\n1514198280\n \n\x12117" (2339 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=2077 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=3355 len=3099 data="\x00\x00\x00\f\x16\n \n\x1211862.956521739130\x12\n1514190540\n \n\x1211995.564999999999\x12\n1514191380\n \n\x1211986.400000000001\x12\n1514191680\n \n\x1211968.937500000000\x12\n1514192100\n \n\x1211957.296153846150\x12\n1514192220\n \n\x1211975.203125000000\x12\n1514192460\n \n\x1212007.380000000003\x12\n1514192760\n \n\x1212080.422" (2843 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=3355 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=2101 len=3099 data="\x00\x00\x00\f\x16\n \n\x1211819.419999999998\x12\n1514190000\n \n\x1211831.167567567567\x12\n1514190360\n \n\x1211846.000000000000\x12\n1514190420\n \n\x1211846.000000000002\x12\n1514190480\n \n\x1211948.725000000000\x12\n1514190660\n \n\x1211995.564999999999\x12\n1514191380\n \n\x1211962.707142857140\x12\n1514191920\n \n\x1211965.700" (2843 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_STREAM|END_HEADERS stream=2101 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote DATA stream=5235 len=1000 data="\x00\x00\x00\v\xf4\n \n\x1211989.520000000000\x12\n1514191020\n \n\x1211982.722222222226\x12\n1514191860\n \n\x1212080.422727272728\x12\n1514192940\n \n\x1211883.503448275866\x12\n1514193480\n \n\x1211877.564285714285\x12\n1514193600\n \n\x1211905.200000000001\x12\n1514193720\n \n\x1211931.460416666667\x12\n1514193840\n \n\x1211774.772" (744 bytes omitted)
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=1393 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=5503 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=4445 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=4835 len=2
    2019/12/13 14:55:01 http2: Framer 0xc0003f6000: wrote HEADERS flags=END_HEADERS stream=3763 len=2
    

    We can see that it says read RST_STREAM at the time the errors start to occur.
    I wanted to confirm that the server was not misbehaving and so I ran wireshark.

    image
    Here we can see it's coming from the client (port 65517) to the server (8443).

    I'm going to continue digging into the client.

  10. MiLk commented on Dec 13, 2019

    @MiLk

    After moving from node 12 to node 13, we no longer have the issue.
    It's most likely related to nodejs/node@18a1796 and nodejs/node@8a4a193

    The fix is scheduled for v10.17.1 and v12.13.2.
    nodejs/node#30684

  11. murgatroid99 commented on Dec 18, 2019

    @murgatroid99
    Member

    Thank you for sharing those extra details.

  12. shynome commented on Feb 6, 2020

    @shynome

    the error is disappear after I upgrade to v13.
    Thank you for sharing those extra details.

  13. ajayhjaiswal commented on Feb 13, 2020

    @ajayhjaiswal

    Thanks guys for information, Does google Cloud support Nodejs 13 for AppEngine deployment for Production use, Sorry for adding different context to original topic but are inter-link.

  14. isaiah-coleman commented on Apr 21, 2020

    @isaiah-coleman

    I've upgraded to node v13 and haven't had any luck in supressing these errors. Is this the case for anyone else? Running @grpc/grpc-js@0.7.9 for reference

  15. stephenplusplus commented on May 21, 2020

    @stephenplusplus

    This would seem to relate to this issue as well: googleapis/nodejs-datastore#525. So to avoid the error, it basically comes down to finding the right batch size of concurrent requests to send at a time?

  16. 14 remaining items

  17. paulish commented on May 25, 2022

    @paulish

    Had the same problem. Fixed by the following code:

       const server = new grpc.Server({
            'grpc-node.max_session_memory': Number.MAX_SAFE_INTEGER
        });
  18. pagoru commented on Sep 23, 2022

    @pagoru

    Had the same problem. Fixed by the following code:

       const server = new grpc.Server({
            'grpc-node.max_session_memory': Number.MAX_SAFE_INTEGER
        });

    This solves the issue! Thanks @paulish !

  19. pagoru commented on Sep 23, 2022

    @pagoru

    The bug is related with this:

    if ('grpc-node.max_session_memory' in this.options) {
    connectionOptions.maxSessionMemory = this.options[
    'grpc-node.max_session_memory'
    ];
    } else {
    /* By default, set a very large max session memory limit, to effectively
    * disable enforcement of the limit. Some testing indicates that Node's
    * behavior degrades badly when this limit is reached, so we solve that
    * by disabling the check entirely. */
    connectionOptions.maxSessionMemory = Number.MAX_SAFE_INTEGER;
    }

    The default value is Number.MAX_SAFE_INTEGER, but it's not working, if you assign again the value works. Please, check this, the error still occurs and looks simple to fix. 'grpc-node.max_session_memory' looks defined and it's not.

  20. murgatroid99 commented on Sep 23, 2022

    @murgatroid99
    Member

    It seems to be working in my tests. Can you provide a complete example that demonstrates the problem you are experiencing?

  21. pagoru commented on Sep 26, 2022

    @pagoru

    I cannot provide an example because it's internal code from my company.
    Btw, this are the options assigned (the last one was added on Friday and fixes the problem), maybe another one causes the problem?

    const grpcOptions = {
      // Reconnection
      "grpc.initial_reconnect_backoff_ms": 1500,
      "grpc.min_reconnect_backoff_ms": 1000,
      "grpc.max_reconnect_backoff_ms": 5000,
      // Keepalive
      "grpc.http2.min_time_between_pings_ms": 5 * 60000, // grpc default
      "grpc.http2.max_pings_without_data": 0,
      "grpc.keepalive_permit_without_calls": 1,
      "grpc.keepalive_time_ms": 10 * 1000,
      "grpc.keepalive_timeout_ms": 20 * 1000,
      "grpc.max_connection_idle_ms": 0,
      // limits
      "grpc-node.max_session_memory": Number.MAX_SAFE_INTEGER
    }
  22. murgatroid99 commented on Sep 26, 2022

    @murgatroid99
    Member

    Please verify what version of the library you are using. That option was added in version 1.3.0, but the default was not set to Number.MAX_SAFE_INTEGER until version 1.6.3.

  23. pagoru commented on Sep 26, 2022

    @pagoru

    Using:

        "@grpc/grpc-js": "1.6.8",
        "@grpc/proto-loader": "0.4.0",
    
  24. murgatroid99 commented on Sep 26, 2022

    @murgatroid99
    Member

    OK, that is the right version. Well, if you can provide a code sample that has different behavior when that option is set to Number.MAX_SAFE_INTEGER than when it is omitted, then I can debug it, otherwise there is nothing more I can do.

  25. sberthier commented on Oct 14, 2022

    @sberthier

    It seems that I have a similar problem. I have tested to set "grpc-node.max_session_memory": Number.MAX_SAFE_INTEGER and it seems to do the job. I can confirm that in following days.

    I may have an explanation about this issue.
    In subchannel.ts, we have

    https://github.com/grpc/grpc-node/blob/master/packages/grpc-js/src/subchannel.ts#L414

    if ('grpc-node.max_session_memory' in this.options) {
          connectionOptions.maxSessionMemory = this.options[
            'grpc-node.max_session_memory'
          ];
        } else {
          /* By default, set a very large max session memory limit, to effectively
           * disable enforcement of the limit. Some testing indicates that Node's
           * behavior degrades badly when this limit is reached, so we solve that
           * by disabling the check entirely. */
          connectionOptions.maxSessionMemory = Number.MAX_SAFE_INTEGER;
        }
    

    There is a default value of Number.MAX_SAFE_INTEGER for the client side.
    But in the server.ts side, there isn't

    https://github.com/grpc/grpc-node/blob/master/packages/grpc-js/src/server.ts#L345

        if ('grpc-node.max_session_memory' in this.options) {
          serverOptions.maxSessionMemory = this.options[
            'grpc-node.max_session_memory'
          ];
        }
    

    It may be why inject grpc-node.max_session_memory in server config solves our pb.

  26. murgatroid99 commented on Oct 14, 2022

    @murgatroid99
    Member

    Thank you for pointing that out. I will fix that inconsistency.

  27. murgatroid99 commented on Oct 14, 2022

    @murgatroid99
    Member

    I have published grpc-js 1.7.2 with Number.MAX_SAFE_INTEGER as the default value for that option on the server too.

  28. added a commit that references this issue on Jun 24, 2023
  29. murgatroid99 commented on Apr 1, 2024

    @murgatroid99
    Member

    Since there have been no new comments since that fix went out, I assume this is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions