Document Architecture Decisions

This is also probably a good time to recommend documenting architecture decisions in the project.  The project itself is very opinionated (which is great!), so all of that should be documented to help explain the reasons behind the decisions.  I'd recommend reading these:

http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions
https://github.com/joelparkerhenderson/architecture_decision_record

There's a lot of churn in the open issues and PRs about HTTP/HTTPS servers, applications like Express, Koa, Hapi.js, etc, CORS, ReactServerAgent using SuperAgent or fetch, Webpack 1 vs Webpack 2, isomorphic Webpack, embedding Webpack Dev Server, multiple processes....and that's just stuff I've been involved in!
Now that more and more people are using this, decisions to "should we include Webpack Dev Server for client side HMR?" greatly impacts decisions to "can we support Koa instead of Express?"
I'm happy to submit an initial PR if anyone's interested.

Yeah, it would be nice to have a document to point to instead of continually re-hashing things.
Good idea @drewpc.


Does socket mode support broadcasting event to multiple instances?

Our group use slack as an interface to run various tasks. The current design uses a single slack bot as the entry point, and triggers various workers based on the commands. Each worker runs a local bot instance to listen to slack channels. The approach worked well using RTM bots, and we can add new commands to the bot by adding new workers. I recently tried to switch to socket mode, but it seems every event is only send to one instance in a random order. The workers are isolated for security reasons, so we cannot merge all the workers to use a single bot instance. Is there a way to broadcast the messages to all bot instances?
I think #548 is a similar issue, different motivation though.

Hey @ranlu,
By design, socketmode randomizes sending the event between the socket connections. For your usecase, would it be possible to have 1 socket connection and then implement a job queue to spread the events to their respective workers? A similar discussion was had at https://github.com/slackapi/bolt-python/issues/448#issuecomment-906006586

Hi @stevengill, thanks for the suggestion, I am considering doing that, but it is going to negate much of the advantage of using slack for our case, as it is more or less equal to implementing our own service to serve messages to each worker.
Do you mind explaining a little more about the reason behind the design decision, since socket mode already allows multiple connections, randomly rotating the receivers but disallow broadcasting seems a rather odd decision.

Hi @ranlu, the purpose of the design is mentioned at the beginning of the Socket Mode document:

Socket Mode allows your app to use the Events API and interactive components of the platform—without exposing a public HTTP Request URL. Instead of sending payloads to a public endpoint, Slack will use a WebSocket URL to communicate with your app. Socket Mode helps developers working behind a corporate firewall, or who have other security concerns that don't allow exposing a static HTTP endpoint.
https://api.slack.com/apis/connections/socket

As described above, Socket Mode is designed to enable developers to switch the communications with Slack server-side from public HTTP endpoint style to outgoing WebSocket connection. The Slack server-side sends data to one recipient in the same manner with HTTP requests.
Aside from that, the more important reason behind this is the necessity of request acknowledgement. The RTM API supports only event delivery, which does not require acknowledgement. On the other hand, Socket Mode supports all the available platform features such as slash commands, shortcuts, and interactions (button clicks, modal data submissions, etc.) in addition to Events API. Taking advantage of these features means that your app must acknowledge incoming requests only once (technically it's possible to acknowledge twice in Socket Mode but the second one will be just ignored) within 3 seconds.
The acknowledgement sometimes makes visible effects in the end-user UI. For instance, displaying validation error messages in a modal UI can be done only by passing errors in request acknowledgement. There are a few similar use cases.
Considering the characteristics of the communications required for these features, we don't think there is a feasible way to safely duplicate event delivery to all the active hosts on the platform side. Thus, there is no plan to add an option to customize this behavior in the roadmap.
This is why I suggested having one dedicated instance that handles user interactivity in the linked comment. If you're going to use only Events API, a slightly simpler way can work. Front-end single Socket Mode clients can acknowledge all the events anyways and they can relay the events to all the active backend workers.
I know this is not an ideal answer for you but I hope this helps. If everything is clear here, would you mind closing this issue? Lastly, I hope you'll find an acceptable solution for your use case.

Thanks for the detailed explanation @seratch, sorry my bot was built with RTM api so I did not realized the needs for acknowledge events.  I will stay with RTM API for now. Close the issue.


503 on first call to service within mesh

Describe the bug
Consistently get a 503 on first call to a service through a proxy. Reproduced with ingress gateway in bookinfo sample
Expected behavior
No 503 on first call
Steps to reproduce the bug
Install 1.0.6
Install bookinfo
Upgrade to 1.1RC0
Version
1.1RC0
Installation
Per site docs
Environment
Running on Kubernetes-In-Docker on Mac
Cluster state

Log from gateway during 503 with loglevel-debug
Not that if policy is disabled in the mesh this does not occur
[2019-02-22 00:19:46.166][41][debug][main] [external/envoy/source/server/connection_handler_impl.cc:257] [C6] new connection
[2019-02-22 00:19:46.166][41][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:210] [C6] new stream
[2019-02-22 00:19:46.167][41][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:548] [C6][S2695510518775831523] request headers complete (end_stream=true):
':authority', 'localhost:8888'
':path', '/api/v1/products'
':method', 'GET'
'user-agent', 'curl/7.54.0'
'accept', '*/*'

[2019-02-22 00:19:46.167][41][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:990] [C6][S2695510518775831523] request end stream
[2019-02-22 00:19:46.167][41][debug][filter] [src/envoy/http/mixer/filter.cc:39] Called Mixer::Filter : Filter
[2019-02-22 00:19:46.167][41][debug][filter] [src/envoy/http/mixer/filter.cc:146] Called Mixer::Filter : setDecoderFilterCallbacks
[2019-02-22 00:19:46.167][41][debug][filter] [src/envoy/http/mixer/filter.cc:62] Called Mixer::Filter : decodeHeaders
[2019-02-22 00:19:46.168][41][debug][filter] [./src/envoy/utils/header_update.h:46] Mixer forward attributes set: CkMKGGRlc3RpbmF0aW9uLnNlcnZpY2UuaG9zdBInEiVwcm9kdWN0cGFnZS5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsCkEKF2Rlc3RpbmF0aW9uLnNlcnZpY2UudWlkEiYSJGlzdGlvOi8vZGVmYXVsdC9zZXJ2aWNlcy9wcm9kdWN0cGFnZQopChhkZXN0aW5hdGlvbi5zZXJ2aWNlLm5hbWUSDRILcHJvZHVjdHBhZ2UKKgodZGVzdGluYXRpb24uc2VydmljZS5uYW1lc3BhY2USCRIHZGVmYXVsdApPCgpzb3VyY2UudWlkEkESP2t1YmVybmV0ZXM6Ly9pc3Rpby1pbmdyZXNzZ2F0ZXdheS02YzhiZjlmNThkLTg0Z2piLmlzdGlvLXN5c3RlbQ==
[2019-02-22 00:19:46.168][41][debug][filter] [src/istio/control/client_context_base.cc:118] Check attributes: attributes {
  key: "connection.mtls"
  value {
    bool_value: false
  }
}
attributes {
  key: "context.protocol"
  value {
    string_value: "http"
  }
}
attributes {
  key: "context.repor
[2019-02-22 00:19:46.169][41][debug][filter] [src/istio/mixerclient/client_impl.cc:108] Policy cache hit=false, status=UNAVAILABLE
[2019-02-22 00:19:46.169][41][debug][filter] [./src/envoy/utils/header_update.h:46] Mixer forward attributes set: Ck8KCnNvdXJjZS51aWQSQRI/a3ViZXJuZXRlczovL2lzdGlvLWluZ3Jlc3NnYXRld2F5LTZjOGJmOWY1OGQtODRnamIuaXN0aW8tc3lzdGVt
[2019-02-22 00:19:46.169][41][debug][router] [external/envoy/source/common/router/router.cc:320] [C0][S16411293239667842853] cluster 'outbound|15004||istio-policy.istio-system.svc.cluster.local' match for URL '/istio.mixer.v1.Mixer/Check'
[2019-02-22 00:19:46.169][41][debug][router] [external/envoy/source/common/router/router.cc:381] [C0][S16411293239667842853] router decoding headers:
':method', 'POST'
':path', '/istio.mixer.v1.Mixer/Check'
':authority', 'mixer'
':scheme', 'https'
'te', 'trailers'
'grpc-timeout', '5000m'
'content-type', 'application/grpc'
'x-b3-traceid', '0556e3c28820d2b8d7ed0c76e172086c'
'x-b3-spanid', '03265ca624b245af'
'x-b3-parentspanid', 'd7ed0c76e172086c'
'x-b3-sampled', '0'
'x-istio-attributes', 'Ck8KCnNvdXJjZS51aWQSQRI/a3ViZXJuZXRlczovL2lzdGlvLWluZ3Jlc3NnYXRld2F5LTZjOGJmOWY1OGQtODRnamIuaXN0aW8tc3lzdGVt'
'x-envoy-internal', 'true'
'x-forwarded-for', '<IP_ADDRESS>'
'x-envoy-expected-rq-timeout-ms', '5000'

[2019-02-22 00:19:46.169][41][debug][client] [external/envoy/source/common/http/codec_client.cc:26] [C7] connecting
[2019-02-22 00:19:46.169][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:639] [C7] connecting to <IP_ADDRESS>:15004
[2019-02-22 00:19:46.170][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:648] [C7] connection in progress
[2019-02-22 00:19:46.170][41][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:714] [C7] setting max concurrent streams to<PHONE_NUMBER>
[2019-02-22 00:19:46.170][41][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:721] [C7] setting stream-level initial window size to 268435456
[2019-02-22 00:19:46.170][41][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:743] [C7] updating connection-level initial window size to 268435456
[2019-02-22 00:19:46.170][41][debug][pool] [external/envoy/source/common/http/conn_pool_base.cc:20] queueing request due to no available connections
[2019-02-22 00:19:46.171][41][debug][grpc] [src/envoy/utils/grpc_transport.cc:46] Sending Check request: attributes {
  words: "istio-system"
  words: "productpage.default.svc.cluster.local"
  words: "default"
  words: "productpage"
  words: "curl/7.54.0"
  words: "localhost:8888"
  words: "/api/v1/products"
  words: "kubernetes://istio-ingressgateway-6c8bf9f58d-84gjb.istio-system"
  words: "origin.ip"
  words: "istio://default/services/productpage"
  words: "0df0fcb4-e320-432a-b2f5-c6acd9adf63c"
  words: "<IP_ADDRESS>"
  words: "productpage.default.svc.cluster.local:9080/api/v1/products*"
  words: "x-envoy-decorator-operation"
  words: "*/*"
  strings {
    key: 3
    value: -8
  }
  strings {
    key: 4
    value: -1
  }
  strings {
    key: 17
    value: -7
  }
  strings {
    key: 18
    value: -6
  }
  strings {
    key: 19
    value: 90
  }
  strings {
    key: 22
    value: 92
  }
  strings {
    key: 25
    value: -5
  }
  strings {
    key: 131
    value: 92
  }
  strings {
    key: 190
    value: -10
  }
  strings {
    key: 191
    value: -4
  }
  strings {
    key: 192
    value: -3
  }
  strings {
    key: 193
    value: -2
  }
  strings {
    key: 197
    value: -8
  }
  strings {
    key: 201
    value: 220
  }
  strings {
    key: 203
    value: -7
  }
  bools {
    key: 177
    value: false
  }
  timestamps {
    key: 24
    value {
      seconds:<PHONE_NUMBER>
      nanos: 168261900
    }
  }
  bytes {
    key: -9
    value: "\177\000\000\001"
  }
  string_maps {
    key: 15
    value {
      entries {
        key: -14
        value: -13
      }
      entries {
        key: 31
        value: -6
      }
      entries {
        key: 32
        value: 90
      }
      entries {
        key: 33
        value: -7
      }
      entries {
        key: 46
        value: -15
      }
      entries {
        key: 86
        value: -5
      }
      entries {
        key: 98
        value: -12
      }
      entries {
        key: 100
        value: 92
      }
      entries {
        key: 102
        value: -11
      }
      entries {
        key: 118
        value: 113
      }
    }
  }
}
global_word_count: 221
deduplication_id: "6e21c4a5-740e-4aea-95ff-32cda87c1e2b0"

[2019-02-22 00:19:46.171][41][debug][filter] [src/envoy/http/mixer/filter.cc:88] Called Mixer::Filter : decodeHeaders Stop
[2019-02-22 00:19:46.171][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:517] [C7] connected
[2019-02-22 00:19:46.171][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C7] handshake error: 2
[2019-02-22 00:19:46.177][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C7] handshake error: 2
[2019-02-22 00:19:46.177][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C7] handshake error: 2
[2019-02-22 00:19:46.177][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:127] [C7] handshake complete
[2019-02-22 00:19:46.177][41][debug][client] [external/envoy/source/common/http/codec_client.cc:64] [C7] connected
[2019-02-22 00:19:46.177][41][debug][pool] [external/envoy/source/common/http/http2/conn_pool.cc:83] [C7] creating stream
[2019-02-22 00:19:46.177][41][debug][router] [external/envoy/source/common/router/router.cc:1128] [C0][S16411293239667842853] pool ready
[2019-02-22 00:19:46.181][41][debug][router] [external/envoy/source/common/router/router.cc:675] [C0][S16411293239667842853] upstream headers complete: end_stream=false
[2019-02-22 00:19:46.181][41][debug][http] [external/envoy/source/common/http/async_client_impl.cc:93] async http request response headers (end_stream=false):
':status', '200'
'content-type', 'application/grpc'
'x-envoy-upstream-service-time', '10'
'date', 'Fri, 22 Feb 2019 00:19:46 GMT'
'server', 'envoy'

[2019-02-22 00:19:46.182][41][debug][client] [external/envoy/source/common/http/codec_client.cc:95] [C7] response complete
[2019-02-22 00:19:46.182][41][debug][pool] [external/envoy/source/common/http/http2/conn_pool.cc:222] [C7] destroying stream: 0 remaining
[2019-02-22 00:19:46.182][41][debug][http] [external/envoy/source/common/http/async_client_impl.cc:108] async http request response trailers:
'grpc-status', '0'
'grpc-message', ''

[2019-02-22 00:19:46.182][41][debug][grpc] [src/envoy/utils/grpc_transport.cc:67] Check response: precondition {
  status {
  }
  valid_duration {
    seconds: 60
  }
  valid_use_count: 10000
  referenced_attributes {
    attribute_matches {
      name: 151
      condition: ABSENCE
    }
    attribute_matches {
      name: 131
      condition: EXACT
    }
    attribute_matches {
      name: 3
      condition: EXACT
    }
    attribute_matches {
      name: 154
      condition: ABSENCE
    }
    attribute_matches {
      name: 201
      condition: EXACT
    }
    attribute_matches {
      name: 4
      condition: EXACT
    }
    attribute_matches {
      condition: ABSENCE
    }
  }
}

[2019-02-22 00:19:46.182][41][debug][filter] [src/istio/mixerclient/check_cache.cc:163] Add a new Referenced for check cache: Absence-keys: destination.port, destination.uid, source.ip, Exact-keys: context.protocol, context.reporter.kind, source.namespace, source.uid,
[2019-02-22 00:19:46.182][41][debug][filter] [src/istio/mixerclient/client_impl.cc:292] CheckResult transport=OK, policy=OK, quota=NA, attempt=0
[2019-02-22 00:19:46.182][41][debug][filter] [src/envoy/http/mixer/filter.cc:154] Called Mixer::Filter : check complete OK
[2019-02-22 00:19:46.182][41][debug][router] [external/envoy/source/common/router/router.cc:320] [C6][S2695510518775831523] cluster 'outbound|9080||productpage.default.svc.cluster.local' match for URL '/api/v1/products'
[2019-02-22 00:19:46.182][41][debug][router] [external/envoy/source/common/router/router.cc:381] [C6][S2695510518775831523] router decoding headers:
':authority', 'localhost:8888'
':path', '/api/v1/products'
':method', 'GET'
':scheme', 'https'
'user-agent', 'curl/7.54.0'
'accept', '*/*'
'x-forwarded-for', '<IP_ADDRESS>'
'x-forwarded-proto', 'http'
'x-envoy-internal', 'true'
'x-request-id', '0df0fcb4-e320-432a-b2f5-c6acd9adf63c'
'x-envoy-decorator-operation', 'productpage.default.svc.cluster.local:9080/api/v1/products*'
'x-istio-attributes', 'CkMKGGRlc3RpbmF0aW9uLnNlcnZpY2UuaG9zdBInEiVwcm9kdWN0cGFnZS5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsCkEKF2Rlc3RpbmF0aW9uLnNlcnZpY2UudWlkEiYSJGlzdGlvOi8vZGVmYXVsdC9zZXJ2aWNlcy9wcm9kdWN0cGFnZQopChhkZXN0aW5hdGlvbi5zZXJ2aWNlLm5hbWUSDRILcHJvZHVjdHBhZ2UKKgodZGVzdGluYXRpb24uc2VydmljZS5uYW1lc3BhY2USCRIHZGVmYXVsdApPCgpzb3VyY2UudWlkEkESP2t1YmVybmV0ZXM6Ly9pc3Rpby1pbmdyZXNzZ2F0ZXdheS02YzhiZjlmNThkLTg0Z2piLmlzdGlvLXN5c3RlbQ=='
'x-b3-traceid', '0556e3c28820d2b8d7ed0c76e172086c'
'x-b3-spanid', 'd7ed0c76e172086c'
'x-b3-sampled', '0'

[2019-02-22 00:19:46.182][41][debug][pool] [external/envoy/source/common/http/http1/conn_pool.cc:82] creating a new connection
[2019-02-22 00:19:46.182][41][debug][client] [external/envoy/source/common/http/codec_client.cc:26] [C8] connecting
[2019-02-22 00:19:46.182][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:639] [C8] connecting to <IP_ADDRESS>:9080
[2019-02-22 00:19:46.183][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:648] [C8] connection in progress
[2019-02-22 00:19:46.183][41][debug][pool] [external/envoy/source/common/http/conn_pool_base.cc:20] queueing request due to no available connections
[2019-02-22 00:19:46.183][41][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:563] [C7] stream closed: 0
[2019-02-22 00:19:46.183][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:517] [C8] connected
[2019-02-22 00:19:46.183][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C8] handshake error: 2
[2019-02-22 00:19:46.188][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C8] handshake error: 2
[2019-02-22 00:19:46.188][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C8] handshake error: 2
[2019-02-22 00:19:46.189][41][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:127] [C8] handshake complete
[2019-02-22 00:19:46.189][41][debug][client] [external/envoy/source/common/http/codec_client.cc:64] [C8] connected
[2019-02-22 00:19:46.189][41][debug][pool] [external/envoy/source/common/http/http1/conn_pool.cc:236] [C8] attaching to next request
[2019-02-22 00:19:46.189][41][debug][router] [external/envoy/source/common/router/router.cc:1128] [C6][S2695510518775831523] pool ready
[2019-02-22 00:19:46.195][41][debug][router] [external/envoy/source/common/router/router.cc:675] [C6][S2695510518775831523] upstream headers complete: end_stream=false
[2019-02-22 00:19:46.195][41][debug][filter] [src/envoy/http/mixer/filter.cc:133] Called Mixer::Filter : encodeHeaders 2
[2019-02-22 00:19:46.195][41][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:1225] [C6][S2695510518775831523] encoding headers via codec (end_stream=false):
':status', '503'
'content-length', '69'
'content-type', 'text/plain'
'date', 'Fri, 22 Feb 2019 00:19:45 GMT'
'server', 'istio-envoy'
'x-envoy-upstream-service-time', '11'

[2019-02-22 00:19:46.195][41][debug][client] [external/envoy/source/common/http/codec_client.cc:95] [C8] response complete
[2019-02-22 00:19:46.195][41][debug][filter] [src/envoy/http/mixer/filter.cc:205] Called Mixer::Filter : onDestroy state: 2
[2019-02-22 00:19:46.195][41][debug][pool] [external/envoy/source/common/http/http1/conn_pool.cc:193] [C8] response complete
[2019-02-22 00:19:46.195][41][debug][pool] [external/envoy/source/common/http/http1/conn_pool.cc:231] [C8] moving to ready
[2019-02-22 00:19:46.196][41][debug][filter] [src/envoy/http/mixer/filter.cc:219] Called Mixer::Filter : log
[2019-02-22 00:19:46.196][41][debug][filter] [./src/envoy/http/mixer/report_data.h:132] No dynamic_metadata found for filter envoy.filters.http.rbac
[2019-02-22T00:19:46.167Z] "GET /api/v1/products HTTP/1.1" 503 - "-" 0 69 28 11 "<IP_ADDRESS>" "curl/7.54.0" "0df0fcb4-e320-432a-b2f5-c6acd9adf63c" "localhost:8888" "<IP_ADDRESS>:9080" outbound|9080||productpage.default.svc.cluster.local - <IP_ADDRESS>:80 <IP_ADDRESS>:59340 -
[2019-02-22 00:19:46.196][41][debug][filter] [src/istio/control/client_context_base.cc:125] Report attributes: attributes {
  key: "check.cache_hit"
  value {
    bool_value: false
  }
}
attributes {
  key: "connection.mtls"
  value {
    bool_value: false
  }
}
attributes {
  key: "context.protocol
[2019-02-22 00:19:46.214][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:502] [C6] remote close
[2019-02-22 00:19:46.214][41][debug][connection] [external/envoy/source/common/network/connection_impl.cc:183] [C6] closing socket: 0
[2019-02-22 00:19:46.214][41][debug][main] [external/envoy/source/server/connection_handler_impl.cc:68] [C6] adding to cleanup list
[2019-02-22 00:19:47.181][22][debug][upstream] [external/envoy/source/common/upstream/upstream_impl.cc:1307] starting async DNS resolution for istio-pilot
[2019-02-22 00:19:47.181][22][debug][upstream] [external/envoy/source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-02-22 00:19:47.182][22][debug][upstream] [external/envoy/source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-02-22 00:19:47.183][22][debug][upstream] [external/envoy/source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-02-22 00:19:47.183][22][debug][upstream] [external/envoy/source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-02-22 00:19:47.186][22][debug][upstream] [external/envoy/source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-02-22 00:19:47.186][22][debug][upstream] [external/envoy/source/common/upstream/upstream_impl.cc:1314] async DNS resolution complete for istio-pilot
[2019-02-22 00:19:47.200][41][debug][filter] [./src/envoy/utils/header_update.h:46] Mixer forward attributes set: Ck8KCnNvdXJjZS51aWQSQRI/a3ViZXJuZXRlczovL2lzdGlvLWluZ3Jlc3NnYXRld2F5LTZjOGJmOWY1OGQtODRnamIuaXN0aW8tc3lzdGVt
[2019-02-22 00:19:47.200][41][debug][router] [external/envoy/source/common/router/router.cc:320] [C0][S15915618966457535777] cluster 'outbound|15004||istio-telemetry.istio-system.svc.cluster.local' match for URL '/istio.mixer.v1.Mixer/Report'

OK, the error is in the downstream sidecar in its call to mixer
[2019-02-22 03:26:34.173][29][debug][filter] [external/envoy/source/extensions/filters/listener/original_dst/original_dst.cc:18] original_dst: New connection accepted
[2019-02-22 03:26:34.173][29][debug][filter] [external/envoy/source/extensions/filters/listener/tls_inspector/tls_inspector.cc:73] tls inspector: new connection accepted
[2019-02-22 03:26:34.174][29][debug][filter] [external/envoy/source/extensions/filters/listener/tls_inspector/tls_inspector.cc:119] tls:onServerName(), requestedServerName: outbound_.9080_._.productpage.default.svc.cluster.local
[2019-02-22 03:26:34.174][29][debug][main] [external/envoy/source/server/connection_handler_impl.cc:257] [C6] new connection
[2019-02-22 03:26:34.177][29][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C6] handshake error: 2
[2019-02-22 03:26:34.177][29][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C6] handshake error: 2
[2019-02-22 03:26:34.184][29][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:127] [C6] handshake complete
[2019-02-22 03:26:34.185][29][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:210] [C6] new stream
[2019-02-22 03:26:34.185][29][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:548] [C6][S15488900241040906605] request headers complete (end_stream=true):
':authority', 'localhost:8888'
':path', '/api/v1/products'
':method', 'GET'
'user-agent', 'curl/7.54.0'
'accept', '*/*'
'x-forwarded-for', '<IP_ADDRESS>'
'x-forwarded-proto', 'http'
'x-envoy-internal', 'true'
'x-request-id', '8555033d-f9c6-4c20-8f6b-5b9b2c5a4cd0'
'x-envoy-decorator-operation', 'productpage.default.svc.cluster.local:9080/api/v1/products*'
'x-istio-attributes', 'CkMKGGRlc3RpbmF0aW9uLnNlcnZpY2UuaG9zdBInEiVwcm9kdWN0cGFnZS5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsCkEKF2Rlc3RpbmF0aW9uLnNlcnZpY2UudWlkEiYSJGlzdGlvOi8vZGVmYXVsdC9zZXJ2aWNlcy9wcm9kdWN0cGFnZQopChhkZXN0aW5hdGlvbi5zZXJ2aWNlLm5hbWUSDRILcHJvZHVjdHBhZ2UKKgodZGVzdGluYXRpb24uc2VydmljZS5uYW1lc3BhY2USCRIHZGVmYXVsdApPCgpzb3VyY2UudWlkEkESP2t1YmVybmV0ZXM6Ly9pc3Rpby1pbmdyZXNzZ2F0ZXdheS02ZGM1ODZjOWQ1LXNoZHBtLmlzdGlvLXN5c3RlbQ=='
'x-b3-traceid', '7a5bd6446503dc82fbb29678d1476a45'
'x-b3-spanid', 'fbb29678d1476a45'
'x-b3-sampled', '0'
'content-length', '0'

[2019-02-22 03:26:34.185][29][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:990] [C6][S15488900241040906605] request end stream
[2019-02-22 03:26:34.186][29][debug][filter] [src/envoy/http/mixer/filter.cc:39] Called Mixer::Filter : Filter
[2019-02-22 03:26:34.186][29][debug][filter] [src/envoy/http/mixer/filter.cc:146] Called Mixer::Filter : setDecoderFilterCallbacks
[2019-02-22 03:26:34.187][29][debug][filter] [src/envoy/http/authn/http_filter.cc:67] AuthenticationFilter::decodeHeaders with config
policy {
  peers {
    mtls {
    }
  }
}

[2019-02-22 03:26:34.188][29][debug][filter] [src/envoy/http/authn/authenticator_base.cc:66] validateX509 mode STRICT: ssl=true, has_user=true
[2019-02-22 03:26:34.188][29][debug][filter] [src/envoy/http/authn/filter_context.cc:34] Set peer from X509: cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
[2019-02-22 03:26:34.188][29][debug][filter] [src/envoy/http/authn/origin_authenticator.cc:50] Got request path /api/v1/products
[2019-02-22 03:26:34.188][29][debug][filter] [src/envoy/http/authn/filter_context.cc:60] Set principal from peer: cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
[2019-02-22 03:26:34.189][29][debug][filter] [src/envoy/http/authn/origin_authenticator.cc:79] Origin authenticator succeeded
[2019-02-22 03:26:34.189][29][debug][filter] [src/envoy/http/authn/http_filter.cc:100] Saved Dynamic Metadata:
fields {
  key: "request.auth.principal"
  value {
    string_value: "cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"
  }
}
fields {
  key: "source.namespace"
  value {
    string_value: "istio-system"
  }
}
fields {
  key: "source.principal"
  value {
    string_value: "cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"
  }
}
fields {
  key: "source.user"
  value {
    string_value: "cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"
  }
}

[2019-02-22 03:26:34.189][29][debug][filter] [src/envoy/http/mixer/filter.cc:62] Called Mixer::Filter : decodeHeaders
[2019-02-22 03:26:34.191][29][debug][filter] [src/istio/control/client_context_base.cc:118] Check attributes: attributes {
  key: "connection.mtls"
  value {
    bool_value: true
  }
}
attributes {
  key: "connection.requested_server_name"
  value {
    string_value: "outbound_.9080_._.productpage.d
[2019-02-22 03:26:34.191][29][debug][filter] [src/istio/mixerclient/client_impl.cc:108] Policy cache hit=false, status=UNAVAILABLE
[2019-02-22 03:26:34.195][29][debug][filter] [./src/envoy/utils/header_update.h:46] Mixer forward attributes set: CkQKCnNvdXJjZS51aWQSNhI0a3ViZXJuZXRlczovL3Byb2R1Y3RwYWdlLXYxLTU0ZDc5OWM5NjYtcHNxZGouZGVmYXVsdA==
[2019-02-22 03:26:34.195][29][debug][router] [external/envoy/source/common/router/router.cc:320] [C0][S16048195101530112754] cluster 'outbound|15004||istio-policy.istio-system.svc.cluster.local' match for URL '/istio.mixer.v1.Mixer/Check'
[2019-02-22 03:26:34.195][29][debug][router] [external/envoy/source/common/router/router.cc:381] [C0][S16048195101530112754] router decoding headers:
':method', 'POST'
':path', '/istio.mixer.v1.Mixer/Check'
':authority', 'mixer'
':scheme', 'https'
'te', 'trailers'
'grpc-timeout', '5000m'
'content-type', 'application/grpc'
'x-b3-traceid', '7a5bd6446503dc82fbb29678d1476a45'
'x-b3-spanid', 'cc67db735977b2fd'
'x-b3-parentspanid', 'ffb458600e22220d'
'x-b3-sampled', '0'
'x-istio-attributes', 'CkQKCnNvdXJjZS51aWQSNhI0a3ViZXJuZXRlczovL3Byb2R1Y3RwYWdlLXYxLTU0ZDc5OWM5NjYtcHNxZGouZGVmYXVsdA=='
'x-envoy-internal', 'true'
'x-forwarded-for', '<IP_ADDRESS>'
'x-envoy-expected-rq-timeout-ms', '5000'

[2019-02-22 03:26:34.195][29][debug][client] [external/envoy/source/common/http/codec_client.cc:26] [C7] connecting
[2019-02-22 03:26:34.195][29][debug][connection] [external/envoy/source/common/network/connection_impl.cc:639] [C7] connecting to <IP_ADDRESS>:15004
[2019-02-22 03:26:34.198][29][debug][connection] [external/envoy/source/common/network/connection_impl.cc:648] [C7] connection in progress
[2019-02-22 03:26:34.198][29][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:714] [C7] setting max concurrent streams to<PHONE_NUMBER>
[2019-02-22 03:26:34.198][29][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:721] [C7] setting stream-level initial window size to 268435456
[2019-02-22 03:26:34.198][29][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:743] [C7] updating connection-level initial window size to 268435456
[2019-02-22 03:26:34.199][29][debug][pool] [external/envoy/source/common/http/conn_pool_base.cc:20] queueing request due to no available connections
[2019-02-22T03:26:34.185Z] "GET /api/v1/products HTTP/1.1" 503 UAEX ""UNAVAILABLE:upstream connect error or disconnect/reset before headers"" 0 69 15 - "<IP_ADDRESS>" "curl/7.54.0" "8555033d-f9c6-4c20-8f6b-5b9b2c5a4cd0" "localhost:8888" "-" - - <IP_ADDRESS>:9080 <IP_ADDRESS>:0 outbound_.9080_._.productpage.default.svc.cluster.local
[2019-02-22 03:26:34.199][29][debug][grpc] [src/envoy/utils/grpc_transport.cc:46] Sending Check request: attributes {
  words: "/api/v1/products"
  words: "kubernetes://productpage-v1-54d799c966-psqdj.default"
  words: "cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"
  words: "cluster.local/ns/default/sa/default"
  words: "istio-system"
  words: "productpage.default.svc.cluster.local"
  words: "origin.ip"
  words: "kubernetes://istio-ingressgateway-6dc586c9d5-shdpm.istio-system"
  words: "default"
  words: "istio://default/services/productpage"
  words: "curl/7.54.0"
  words: "7a5bd6446503dc82fbb29678d1476a45"
  words: "fbb29678d1476a45"
  words: "localhost:8888"
  words: "8555033d-f9c6-4c20-8f6b-5b9b2c5a4cd0"
  words: "By=spiffe://cluster.local/ns/default/sa/default;Hash=482496492f09e69ae99998a029d0affddb420412760cbcac1b5cf752157700f8;Subject=\"O=\";URI=spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account;DNS=istio-ingressgateway.istio-system"
  words: "x-forwarded-client-cert"
  words: "<IP_ADDRESS>"
  words: "*/*"
  words: "outbound_.9080_._.productpage.default.svc.cluster.local"
  words: "productpage"
  strings {
    key: 3
    value: -8
  }
  strings {
    key: 4
    value: -5
  }
  strings {
    key: 6
    value: -3
  }
  strings {
    key: 17
    value: -1
  }
  strings {
    key: 18
    value: -14
  }
  strings {
    key: 19
    value: 90
  }
  strings {
    key: 22
    value: 92
  }
  strings {
    key: 25
    value: -11
  }
  strings {
    key: 131
    value: 92
  }
  strings {
    key: 154
    value: -2
  }
  strings {
    key: 155
    value: -9
  }
  strings {
    key: 163
    value: -3
  }
  strings {
    key: 174
    value: -3
  }
  strings {
    key: 186
    value: -4
  }
  strings {
    key: 190
    value: -10
  }
  strings {
    key: 191
    value: -21
  }
  strings {
    key: 192
    value: -9
  }
  strings {
    key: 193
    value: -6
  }
  strings {
    key: 197
    value: -2
  }
  strings {
    key: 201
    value: 219
  }
  strings {
    key: 202
    value: -20
  }
  strings {
    key: 203
    value: -1
  }
  int64s {
    key: 151
    value: 9080
  }
  bools {
    key: 177
    value: true
  }
  timestamps {
    key: 24
    value {
      seconds:<PHONE_NUMBER>
      nanos: 190182000
    }
  }
  bytes {
    key: -7
    value: "\n \000\022"
  }
  bytes {
    key: 150
    value: "\000\000\000\000\000\000\000\000\000\000\377\377\n \000\021"
  }
  string_maps {
    key: 15
    value {
      entries {
        key: -17
        value: -16
      }
      entries {
        key: 31
        value: -14
      }
      entries {
        key: 32
        value: 90
      }
      entries {
        key: 33
        value: -1
      }
      entries {
        key: 46
        value: -19
      }
      entries {
        key: 55
        value: 134
      }
      entries {
        key: 86
        value: -11
      }
      entries {
        key: 98
        value: -18
      }
      entries {
        key: 100
        value: 92
      }
      entries {
        key: 102
        value: -15
      }
      entries {
        key: 118
        value: 113
      }
      entries {
        key: 121
        value: -12
      }
      entries {
        key: 122
        value: 134
      }
      entries {
        key: 123
        value: -13
      }
    }
  }
}
global_word_count: 221
deduplication_id: "00434426-d8a6-437e-8dbd-460156cd6f6a0"

[2019-02-22 03:26:34.199][29][debug][filter] [src/envoy/http/mixer/filter.cc:88] Called Mixer::Filter : decodeHeaders Stop
[2019-02-22 03:26:34.199][29][debug][connection] [external/envoy/source/common/network/connection_impl.cc:517] [C7] connected
[2019-02-22 03:26:34.199][29][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C7] handshake error: 2
[2019-02-22 03:26:34.200][29][debug][connection] [external/envoy/source/extensions/transport_sockets/tls/ssl_socket.cc:138] [C7] handshake error: 5
[2019-02-22 03:26:34.200][29][debug][connection] [external/envoy/source/common/network/connection_impl.cc:183] [C7] closing socket: 0
[2019-02-22 03:26:34.200][29][debug][client] [external/envoy/source/common/http/codec_client.cc:82] [C7] disconnect. resetting 0 pending requests
[2019-02-22 03:26:34.200][29][debug][pool] [external/envoy/source/common/http/http2/conn_pool.cc:136] [C7] client disconnected
[2019-02-22 03:26:34.200][29][debug][router] [external/envoy/source/common/router/router.cc:538] [C0][S16048195101530112754] upstream reset
[2019-02-22 03:26:34.200][29][debug][http] [external/envoy/source/common/http/async_client_impl.cc:93] async http request response headers (end_stream=true):
':status', '200'
'content-type', 'application/grpc'
'grpc-status', '14'
'grpc-message', 'upstream connect error or disconnect/reset before headers'

[2019-02-22 03:26:34.200][29][debug][grpc] [src/envoy/utils/grpc_transport.cc:78] Check failed with code: 14, upstream connect error or disconnect/reset before headers
[2019-02-22 03:26:34.200][29][debug][filter] [src/istio/mixerclient/client_impl.cc:292] CheckResult transport=UNAVAILABLE:upstream connect error or disconnect/reset before headers, policy=NA, quota=NA, attempt=0
[2019-02-22 03:26:34.200][29][debug][filter] [src/envoy/http/mixer/filter.cc:154] Called Mixer::Filter : check complete UNAVAILABLE:upstream connect error or disconnect/reset before headers
[2019-02-22 03:26:34.200][29][debug][filter] [src/envoy/http/mixer/filter.cc:133] Called Mixer::Filter : encodeHeaders 3
[2019-02-22 03:26:34.200][29][debug][http] [external/envoy/source/common/http/conn_manager_impl.cc:1225] [C6][S15488900241040906605] encoding headers via codec (end_stream=false):
':status', '503'
'content-length', '69'
'content-type', 'text/plain'
'date', 'Fri, 22 Feb 2019 03:26:34 GMT'
'server', 'istio-envoy'

[2019-02-22 03:26:34.201][29][debug][filter] [src/envoy/http/authn/http_filter.cc:61] Called AuthenticationFilter : onDestroy
[2019-02-22 03:26:34.201][29][debug][filter] [src/envoy/http/mixer/filter.cc:205] Called Mixer::Filter : onDestroy state: 3
[2019-02-22 03:26:34.201][29][debug][pool] [external/envoy/source/common/http/http2/conn_pool.cc:160] [C7] destroying primary client

Just as before eventually the TLS handshake succeeds and the call progresses. Will try to get logs from mixer sidecar next

... was user error. Somehow ended up with two policy jobs in the same repo, one with auth & one withut. TCP round-robin caused the intermittent handshake failure.
Interesting that this did not retry and fail over to another connection
@duderino what is the current state of retrying calls to mixer ?

@louiscryan retrying calls to mixer:  feature is in rc0 but off by default (0 retries).  @mandarjog wanted to get some experience with it before we turn it on.  This may be a good argument for accelerating that.
Related:  https://github.com/istio/istio/issues/9992
Assigning this to @mandarjog to make the call whether we should use retries here

The issue was that an old istio-policy endpoint with mtls-off was also in the environment. Mixer client was load balancing between 2 endpoints one needed mtls and one did not. The first request was failed TLS handshake and resulted in a 503.


Finish Bid Feature Test

While Bid Feature is "technically" complete, interacting with it requires the project view feature to continue.

Wrong issue referenced in commit


Error Install Backstage2

Hello,
can help me because this error occurs:
Strict Standards: Non-static method Ops :: getPageTitle () should not be called statically, assuming $ this from incompatible context in /home/axcoins/public_html/patak/shared2/Form.php on line 2660
This is an example to access with admin admin, the error becomes many lines.

Put this in your config.cfg file in backstage :
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
On Apr 22, 2015 9:01 PM, "thecc"<EMAIL_ADDRESS>wrote:

Hello,
can help me because this error occurs:
Strict Standards: Non-static method Ops :: getPageTitle () should not be
called statically, assuming $ this from incompatible context in
/home/axcoins/public_html/patak/shared2/Form.php on line 2660
This is an example to access with admin admin, the error becomes many
lines.
—
Reply to this email directly or view it on GitHub
https://github.com/wlox/wlox/issues/43.

Sorry, I meant to put it in cfg.php.


[TC-WNCV-4.1] need bitwise operator support in YAML

Summary:
Need bitwise operator support in YAML for OperationalStatus attribute verification.
Testplan screenshot:

Spec screenshot:

linked to this https://github.com/project-chip/connectedhomeip/issues/13024

P3

Given the priority, moving this to post V1.


Display time for query

Time stamp should be visible beside the query.
Save time in storage as:
{'date' : [[time,'select sdf'], [time,'sdfsf']] }

Time for each query is now being displayed


ci: debug failing deployment tests

this pr addresses a few deployment issues in CI among a few other things

replaces jsonfile with @npmcli/package-json for updating package json
re-adds the commit sha to app names in the event it’s taken due to unforeseen reasons (sans deno as you can’t delete a project via the CLI)
updates env handling to be explicit
adds exponential waiting to fetchRetrying a url (deployment or npm package) (capped at 10s)
adds a bit of logging to fetchRetry (see above)
actually throws an error if the url isn’t reachable via fetchRetry
updates how the script is exited so the cleanup function is ran
moves various deployment cli’s to the deployment app itself instead of having them all live in the root deployment scripts directory

adds exponential waiting to fetchRetrying a url (deployment or npm package)

How long before this times out?

Should we also add a random couple characters at the end just in case we try to re-deploy the same commit?

just added

How long before this times out?

uh.. before it was about 4.5 minutes if it made it to the tenth attempt, so a total of 8.5 minutes, I added a max wait of 10s, so it should be about 1 minute now, but perhaps thats a bit short (we shouldn't make it to any retries unless something happens to npm i imagine)


Implement authentication with JWT

Since JWT is the most used authentication method for APIs nowadays, it would be good to have an implementation of JWT for the boilerplate. It should be reusable across multiple HTTP abstractions (Express, Fastify, ...) with a thin integration layer to plug into a given HTTP abstraction.

This is being addressed together with #97


Collect benchmarks and improve FFI performance

https://github.com/santetis/libsodium.dart contains a crypto benchmark

duplicate of https://github.com/dart-lang/sdk/issues/36247

Duplicate of #36247


openscapes: Make shared foldread readwrite only for admins

Based on https://2i2c.freshdesk.com/a/tickets/1121

I'll wait until Tuesday to see if anyone from openscapes objects, and merge this after.


Add support for CreateLV with thin or thinpool.

A few quirks that allow us to keep the same old CreateLV interface:

The caller of CreateLV has to know that when creating a THIN lv, they
have to pass the VG name as /.
For THINPOOL types, the name given is the name of the thin pool.
We accept the defaults from lvm for tdata and tmeta pool names.
(creation of MyThinPool will have hidden volumes created named
mythinpool_tdata and mythinpool_tmeta).
The MetaData pool size (--poolmetadatasize=) is hard coded to
1GiB and a spare pool is created (--poolmetadataspare=y).

I need to add a test for this to linux/root_test.go

I need to add a test for this to linux/root_test.go

done.


fix: include license file entry in search

This would help https://github.com/scikit-build/scikit-build-core/issues/571 not have shown an error (but in that case, multiple licenses is actually desired, and the custom tool.scikit-build setting should be used until PEP 639 goes somewhere).

The error might still bee triggered when it matches a directory. Should filter out the directories before passing it to read.bytes


Create builder failed with 401 (Unauthorized) when using AKS MI

We are using AKS MI to do ACR auth when pulling image.  The kpack-controller works well with AKS MI when it just stated, and it can create kpack-builder successfully. However, after some minutes (around 1h), when we try to create a new builder, the kpack-controller failed with some 401 (Unauthorized) error.
Check this log
{"severity":"ERROR","timestamp":"2021-12-13T06:15:18.089019623Z","logger":"controller","caller":"controller/controller.go:548","message":"Reconcile error","commit":"121ba5c","duration":"4.011929985s","error":"Get \"https://xxxacr.azurecr.io/v2/kpack/lifecycle/blobs/sha256:cfc3c2aa5deeb84c2498296c88c64cc20089461e9573849e84dc1f12b4fc7857\": POST https://xxxacr.azurecr.io/oauth2/token: unexpected status code 401 Unauthorized","stacktrace":"knative.dev/pkg/controller.(*Impl).handleErr\n\t/home/cnb/go/pkg/mod/knative.dev/pkg@v0.0.0-20210331065221-952fdd90dbb0/controller/controller.go:548\nknative.dev/pkg/controller.(*Impl).processNextWorkItem\n\t/home/cnb/go/pkg/mod/knative.dev/pkg@v0.0.0-20210331065221-952fdd90dbb0/controller/controller.go:531\nknative.dev/pkg/controller.(*Impl).RunContext.func3\n\t/home/cnb/go/pkg/mod/knative.dev/pkg@v0.0.0-20210331065221-952fdd90dbb0/controller/controller.go:468"}

It seems the kpack-controller does not try to acquire a new token when the initial acr token is expired. Or something goes wrong when trying to get the new token.
We are using kpack version 0.3.1, and the kpack-controller looks like this:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kpack-controller
  namespace: kpack
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kpack-controller
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: kpack-controller
        version: 0.3.1
    spec:
      containers:
      - env:
        - name: AZURE_CONTAINER_REGISTRY_CONFIG
          value: /etc/kubernetes/azure.json
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: kpack.io
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: BUILD_INIT_IMAGE
          valueFrom:
            configMapKeyRef:
              key: image
              name: build-init-image
        - name: REBASE_IMAGE
          valueFrom:
            configMapKeyRef:
              key: image
              name: rebase-image
        - name: COMPLETION_IMAGE
          valueFrom:
            configMapKeyRef:
              key: image
              name: completion-image
        - name: LIFECYCLE_IMAGE
          valueFrom:
            configMapKeyRef:
              key: image
              name: lifecycle-image
        image: xxxacr.azurecr.io/kpack/controller:2021-0709-0627
        imagePullPolicy: IfNotPresent
        name: controller
        resources:
          limits:
            cpu: 100m
            memory: 500Mi
          requests:
            cpu: 20m
            memory: 100Mi
        securityContext:
          runAsGroup: 0
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/kubernetes/azure.json
          name: azure-config-file
          readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      serviceAccount: controller
      serviceAccountName: controller
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /etc/kubernetes/azure.json
          type: File
        name: azure-config-file

Here is the mounted azure.json file
{
    "cloud": "AzurePublicCloud",
    "tenantId": "xxxtenantid",
    "subscriptionId": "xxxsubid",
    "aadClientId": "msi",
    "aadClientSecret": "msi",
    "resourceGroup": "aks_nodes_xxx",
    "location": "eastus",
    "vmType": "vmss",
    "subnetName": "xxx",
    "securityGroupName": "xxx-nsg",
    "vnetName": "xxx-vnet",
    "vnetResourceGroup": "xxxgroup",
    "routeTableName": "xxxx-routetable",
    "primaryAvailabilitySetName": "",
    "primaryScaleSetName": "aks-default-xxx-vmss",
    "cloudProviderBackoffMode": "v2",
    "cloudProviderBackoff": true,
    "cloudProviderBackoffRetries": 6,
    "cloudProviderBackoffDuration": 5,
    "cloudProviderRateLimit": true,
    "cloudProviderRateLimitQPS": 30,
    "cloudProviderRateLimitBucket": 300,
    "cloudProviderRateLimitQPSWrite": 30,
    "cloudProviderRateLimitBucketWrite": 300,
    "useManagedIdentityExtension": true,
    "userAssignedIdentityID": "2594db5f-7b9e-4319-950d-808aef394f28",
    "useInstanceMetadata": true,
    "loadBalancerSku": "Standard",
    "disableOutboundSNAT": false,
    "excludeMasterFromStandardLB": true,
    "providerVaultName": "",
    "maximumLoadBalancerRuleCount": 250,
    "providerKeyName": "k8s",
    "providerKeyVersion": ""
}

Could you pls help check and give some help on this?

@frankliu20 this auth error happens intermittently? So other builders can be created? You can also post in the buildpacks.slack.com #kpack channel for faster support.

It seems this is caused by kpack not refreshing the token.
When kpack is started / restarted, it works well for a while. After some time (typically around 1 hour), all builder creation results in 401 error from the private Azure Container Registry (ACR).
The setting useManagedIdentityExtension: true is present in the configuration file, and kpack does working for a short time after start, so it's able to utilize the managed identity to authenticate to ACR. However, it seems the token is cached and not refreshed, so later when the token expires, we are not able to connect to the ACR to pull images which are required for the builder creation.

Regarding the slack channel, it seems we do not have access to the buildpacks workspace, so we are not able to see / post anything there.

@frankliu20 this auth error happens intermittently? So other builders can be created? You can also post in the buildpacks.slack.com #kpack channel for faster support.

Not intermittently, when this happens we can not create new builders due to the auth failure. The only workaround is restart the koack controller.

@frankliu20 this auth error happens intermittently? So other builders can be created? You can also post in the buildpacks.slack.com #kpack channel for faster support.

Not intermittently, when this happens we can not create new builders due to the auth failure. The only workaround is restart the kpack controller.

@allxiao @frankliu20

Regarding the slack channel, it seems we do not have access to the buildpacks workspace, so we are not able to see / post anything there.

the slack domain is buildpacks.slack.com which is public. The channel is #kpack, if you give me your slack handle in buildpacks.slack.com I can add you to the channel

Hi @matthewmcnew , could you please help to reproduce this issue and provide more context about the root cause? kpack is like a black box for us. We are willing to reach to the upstream for the resolution, but if we do not have any details but only the surface problem, it would be difficult to move forward in the conversation with them.
We can prepare and share the AKS environment in which the kpack-controller is not working, so that you can test in this cluster, for example, using a private built kpack with verbose logging.
Thanks,

The klog verbosity setting is not exposed to kpack-controller arguments (--v) so we are not able to turn on verbose logging for kpack-controller to get more detailed information.

This has been resolved in kpack 0.5.2
Let us know if you are still seeing this issue!


Reveal documents in API

Adds documents array to show and index actions of the API. This means that all documents are revealed to the public.
We probably want to be able to limit access to some documents in the future, so rather than changing the storage configuration to make all files public, I have created a new action that redirects to the temporary URLs that ActiveStorage creates. This will make it easier to add conditionals to it later.

 Make documents available via API


add test for nested object validation

This test is currently failing in master. It passes in v0.11.1.

This test is not failing on master but it seems to fail on this branch

Yes, this is intentional: http://validatejs.org/#changelog-0-11-0


testing(api): Adding API equivalency test for celestia-openrpc

Adds a test to ensure API equivalence to celestia-openrpc. It will not be used or added to CI in this repo, hence the build tag. celestia-openrpc will pull this repo, build with the build tag, and run the test itself.
The reason it shouldnt be added to the CI in celestia-node is because it would fail every time we change the API. It shouldn't fail here, it should fail in the other repo.

I like the name conformance a lot more, I will change the build tag - but I would maybe hold off on moving the test until we have more conformance test cases? WDYT

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 44.75%. Comparing base (2469e7a) to head (3876c1b).
Report is 72 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3405      +/-   ##
==========================================
- Coverage   44.83%   44.75%   -0.08%
==========================================
  Files         265      272       +7
  Lines       14620    15278     +658
==========================================
+ Hits         6555     6838     +283
- Misses       7313     7652     +339
- Partials      752      788      +36

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I like the idea to have this test. But why test for external client implementation is in node repo?  It seems wrong that node will depend on that client after this PR

yeah actually i agree with @walldiss, this should live in the celestia-openrpc repo and run as a conformance test there

It can't, that's why its here :( I agree ofc but openrpc can't import node because thats the whole reason it exists

@distractedm1nd make a conformance test repo and put it there.


added get circulation_loans script

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@Roman-Fedynyshyn can you please click on the button to sign this agreement?

Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.


docker-compose scale should allow for scaling down instances using filter criteria

When running docker-compose with the scale command, there is no way to specify which instances should be removed when scaling down.
For example.  Suppose we want to implement a rolling deployment strategy.  To do this we might scale up the number of instances.  We start with 3 instances of v1, and then we scale up with 3 more instances of v2.  Then, once v2 is up and everything has been switched over, we want to scale back down to 3 instances total.  However the scale command always selects the newest instances to remove, leaving the older instances behind.  This means our v1 instances will always get left behind and our v2 instances will always be terminated.
Ideally we would be able to filter this in some way to tell it to scale down only instances with a specific tagged version, or perhaps removing the oldest instances instead of the newer ones.

Cc @aanand @shin-: this probably belongs to the docker/compose repository!

Agreed, thanks.
https://github.com/docker/compose/issues/3605


Update progress bar to look similar to SCC

use dotted line in stead of solid line
adjust the progress icon size
update color of the done progress
adjust top and bottom margins of the wizard progress container
recalculate the wizard content height

We should probably review this with Cynthia. It definitely looks more like the SUSE Manager progress bar, but somehow doesn't quite have the same feel to it...

The difference is that on SCC, each icon has a number and a description to go with it. I can add numbers to the icons but not sure if we're going to have enough room for all the descriptions. Would you like me to try adding the numbers before we ping Cynthia? Or do you want me to check with her with what we currently have?

Lets check with her before making additional changes. It would be great if you reach out to her for feedback... probably compare/contrast the existing progress indicator, the one in this changeset, and whats in SUMA (with the caveat that we don't have the room to label every step in the cloud installer)


Maybe WebExtension for SSleuth (wiki)

Sad that your wiki is not editable. Do you want to change this?
In any case please edit SSLeuth on https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-B:-Firefox-Add-ons and mark it with the :purple_heart:. The author says in https://github.com/sibiantony/ssleuth/issues/78#issuecomment-320638840:

If Mozilla does implement this soon enough, I can offer a web extension version to use with Firefox 57+. ( With the minimal functionality without configuration, domains watching etc. all of which can be added eventually. )

Sad that your wiki is not editable. Do you want to change this?

atm no

In any case please edit SSLeuth

done, thank you

That's good news. I like SSleuth. I hope it happens.
I can't provide any links, but I have seen enough in comments throughout bugzilla and elsewhere to know that a lot of WE APIs will be coming to bring back some lost functionality - they just had to get on with other things first. The dust will settle, and people will be available to start working on these things.
I saw a mozilla dev (I think he is, the name rings a bell) the other day developing a DL manager thingy - essentially replicating down them all AFAIC - here it is: https://www.reddit.com/r/firefox/comments/6uqpi4/download_manager_what_features_would_you_like_to/  .. anyway, totally awesome (for those who like it), listens, knows his stuff.
I think a lot of Moz devs will push for changes too. Some nudging from the likes of EFF, significant devs like gorhill et al also get listened to .. it will get there. Feeling so much better than I did 6 months ago when so much was in the dark


Vue 3 initial unit test does not work: Property "msg" was accessed during render but is not defined on instance.

Version
3.0.0
Reproduction link
https://github.com/E-jarod/vue3-test.git
Steps to reproduce
Hello, I have simply created a new Vue 3.0.0 (vue create vue3-test) project with the following preset :
~/.vuerc
{
  ...
  "presets": {
    "personal-basic-vue3": {
      "useConfigFiles": true,
      "plugins": {
        "@vue/cli-plugin-babel": {},
        "@vue/cli-plugin-typescript": {
          "classComponent": true,
          "useTsWithBabel": true
        },
        "@vue/cli-plugin-router": {
          "historyMode": true
        },
        "@vue/cli-plugin-eslint": {
          "config": "prettier",
          "lintOn": [
            "save",
            "commit"
          ]
        },
        "@vue/cli-plugin-unit-jest": {},
        "@vue/cli-plugin-e2e-cypress": {}
      },
      "vueVersion": "3",
      "cssPreprocessor": "dart-sass"
    }
  }
}

I come from angular and I am new to Vue. Everything else works fine, but not the jest unit test.
You can see on my github repo.
What is expected?
The jest test should at least works, because it is the starter project.
What is actually happening?
And when I run :
yarn test:unit
# or
npm run test:unit

I get the following Error
❯ y test:unit
yarn run v1.22.5
$ vue-cli-service test:unit
 FAIL  tests/unit/example.spec.ts
  ● Test suite failed to run

    TypeScript diagnostics (customize using `[jest-config].globals.ts-jest.diagnostics` option):
    tests/unit/example.spec.ts:7:34 - error TS2769: No overload matches this call.
      The last overload gave the following error.
        Argument of type 'DefineComponent<{}, {}, {}, Record<string, ComputedGetter<any> | WritableComputedOptions<any>>, MethodOptions, ComponentOptionsMixin, ... 5 more ..., {}>' is not assignable to parameter of type 'ComponentOptionsWithObjectProps<readonly string[] | Readonly<ComponentObjectPropsOptions<Record<string, unknown>>>, {}, {}, Record<string, ComputedGetter<any> | WritableComputedOptions<...>>, ... 6 more ..., { ...; } | {}>'.
          Property 'props' is missing in type 'ComponentPublicInstanceConstructor<{ $: ComponentInternalInstance; $data: {}; $props: Partial<{}> & Pick<Readonly<{} & {}> & VNodeProps & AllowedComponentProps & ComponentCustomProps, "key" | ... 8 more ... | "style">; ... 10 more ...; $watch(source: string | Function, cb: Function, options?: WatchOptions<...> | und...' but required in type '{ props: (readonly string[] & ThisType<void>) | (Readonly<ComponentObjectPropsOptions<Record<string, unknown>>> & ThisType<void>); }'.

    7     const wrapper = shallowMount(HelloWorld, {
                                       ~~~~~~~~~~

      node_modules/@vue/runtime-core/dist/runtime-core.d.ts:336:5
        336     props: PropsOptions & ThisType<void>;
                ~~~~~
        'props' is declared here.
      node_modules/@vue/test-utils/dist/mount.d.ts:36:25
        36 export declare function mount<PropsOptions extends Readonly<ComponentPropsOptions>, RawBindings, D, C extends ComputedOptions = {}, M extends Record<string, Function> = {}, E extends EmitsOptions = Record<string, any>, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, EE extends string = string>(componentOptions: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, E, Mixin, Extends, EE>, options?: MountingOptions<ExtractPropTypes<PropsOptions>, D>): VueWrapper<ComponentPublicInstance<ExtractPropTypes<PropsOptions>, RawBindings, D, C, M, E, VNodeProps & ExtractPropTypes<PropsOptions>>>;
                                   ~~~~~
        The last overload is declared here.

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        2.526s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Can you detail why this is happening ?

@E-jarod moved to the correct repo although this looks more like a question than a bug report. We have a forum and a Discord chat to ask questions!

Seems like a bug on the Typescript types not vue-cli... I'm looking into PR'ing a fix for mocha chai... I want the same testing tools on a node server, so Jest is not ideal for me.

Stumbled on this as well when upgrading to Vue 3.0.1 and this is indeed reproducible with a bare CLI app.
The root cause is Vue 3.0.1 changed the default value of props from any to {} which breaks VTU mount when using SFCs.
The workaround we used to update our applications was to change the default shim to be DefineComponent<any, any, any>. I opened a PR if this is the way to go, but maybe it would be better to revert https://github.com/vuejs/vue-next/commit/6aa2256913bfd097500aba83b78482b87107c101
See #5975

So, if I understand, it's a problem in the core of Vue ? (and not in my code ?)

@E-jarod it's a problem in your shim, that was generated by the cli code... just add the line const component: DefineComponent<any, any, any> it will disable the type check and allow testing to proceed.

@rayfoss Okay and in which fie ?

Yes its something we need to fix on Vue side (either in vue-next, the CLI or vue-test-utils-next)
You can workaround it for now by updating the shim like I did in the PR

@cexbrayat sorry, I don't get how to modify :
- PropsOrPropOptions = any,
- RawBindings = any,
- D = any,
+ PropsOrPropOptions = {},
+ RawBindings = {},
+ D = {},

apiDefineComponent is a non-compiled version of vue isn't it ?

@cexbrayat sorry, I don't get how to modify :
- PropsOrPropOptions = any,
- RawBindings = any,
- D = any,
+ PropsOrPropOptions = {},
+ RawBindings = {},
+ D = {},

apiDefineComponent.ts is a non-compiled version of vue isn't it ?

make this your src/shims-vue.d.ts
declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<any, any, any>
  export default component
}

@cexbrayat sorry, I don't get how to modify :
- PropsOrPropOptions = any,
- RawBindings = any,
- D = any,
+ PropsOrPropOptions = {},
+ RawBindings = {},
+ D = {},

apiDefineComponent.ts is a non-compiled version of vue isn't it ?

make this your src/shims-vue.d.ts
declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<any, any, any>
  export default component
}

I get the same error ;(

Try to clear the cash: yarn test:unit --clear-cache and rerun the test

@cexbrayat I still have the same error message

@E-jarod I'm not sure I can help then, as this fixes it in our various Vue 3 apps and in a bare CLI project.
You can try to reproduce and create a github repo so I can take another look.
But we should be able to fix it soon, either in the CLI or in VTU (@pikax has a patch almost ready)

Okay, I will wait then until the patch :+1:

I think this only happens when you start the project using vue-class-component package. In that case the above proposed fix does fix the TS overload issue but you then get this when running the test:
  console.warn node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40
    [Vue warn]: Property "msg" was accessed during render but is not defined on instance.
      at <Anonymous msg="blah" ref="VTU_COMPONENT" >
      at <VTUROOT>

I guess this might be an issue between vue-class-component and vue-test-utils

I think this only happens when you start the project using vue-class-component package. In that case the above proposed fix does fix the TS overload issue but you then get this when running the test:
  console.warn node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:40
    [Vue warn]: Property "msg" was accessed during render but is not defined on instance.
      at <Anonymous msg="blah" ref="VTU_COMPONENT" >
      at <VTUROOT>

I guess this might be an issue between vue-class-component and vue-test-utils

I confirm that I have this issue and above proposed fixes also didn't help me.

I have the exact same issue as @alperkay and @juan267. This should be reopened.

vue.global-3.0.11.js
html:
 attributeName2={{attributeName2}}

 eventName3={{eventName3}}

js:
var vm=Vue.createApp({
	data(){
		return{
			url: "https://www.google.com",
			attributeName2: "href",
		}
	},

	methods:{
		doSth(){
			alert("You clicked me!")
		}
	}
}).mount("#app")

the same error:
page:
 attributeName2=href

 eventName3=click

# console:
[Vue warn]: Property "attributename2" was accessed during render but is not defined on instance.
[Vue warn]: Property "eventname3" was accessed during render but is not defined on instance.

This is still happening, in another scenario as well. I use Vue 3 with composition API.
`declare module '*.vue' {
import type { DefineComponent } from 'vue';
const component: DefineComponent<{}, {}, any>;
export default component;
}
declare module 'vue/types/vue' {
import { Router, RouteRecord } from 'vue-router';
import { Store } from 'vuex';
interface VueConstructor {
$router: Router;
$route: RouteRecord;
$store: Store;
$api: any;
}
}
`
I tried multiple arrangements here, like moving the interface into any type argument of that DefineComponent at the bottom, tried any, any, any. Really tried everything I could, restarted lint server every time. This one is a hard one.


S3 Import Admin Panel

Provide a panel under the Admin settings to allow Importing/Updating S3 bucket imports.
The tool should contain a list of assetstores of the S3 type.
Each S3 asset store has an option for a destination folderId to import the S3 data to.
Once an asset store has been imported it saves the folderId to a backend setting.
On subsequent loads of this panel if the S3 has been imported to a specific folderId the folderId is prepopulated so it can prepopulate the destination folderId field.

Closed with PR #70

I don't think this specific issue has been solved--we didn't add UI to execute the reimport, just the reimport process itself, right?


Move to ESM

When support for ESM has matured in TypeScript and ts-node, this can safely be moved to export es modules rather than commonjs.

Without ESM we can't use remark which is part of #14 to parse markdown, the package only supports ESM.


ST2 CLI: Consistent Pagination

ST2 CLI doesn't have consistent pagination in places as well as other UX inconsistencies.

More context on this: https://github.com/StackStorm/st2/issues/3940 and https://github.com/StackStorm/st2/issues/4034


coprocessor/endpoint:disable batch executor since it is not ready

This PR disable batch executor since it is not ready.
@breeswish @rleungx PTAL

/run all_test

/run all_tests

/run-all-tests

/run-all-tests

/run-all-tests

/rebuild


Missing System.Device source

Relevant: https://github.com/dotnet/corefx/issues/30775

I have no problem writing this up and submitting a pull request. Is a there microsoft specific guide to code formatting and contributing guidelines?

@greatjack1 how do you have the source code?


[ENH] - Addition of loki for grafana/prometheus stack to have a log aggregation solution

Feature description
See the following for details on how this installation would happen https://grafana.com/docs/loki/latest/installation/helm/. In addition to the regular prometheus helm chart this will now need to be deployed within the monitoring directory.
Value and/or benefit
Currently there is not an easy way to expose logs to users without kubernetes credentials which often require cloud credentials. This makes logs not approachable to regular users of the system.
Anything else?
No response

Currently exploring this tool, following their docs on how to install it on existing Kubernetes clusters by using the helm installation process using MinIO for storage. Without much intervention from the user after installation, the grafana operator that comes with the Loki chart seems to already set up the necessary dashboards (by mounting the config maps for them) and DatasSource -- wich then shows up under grafana exploring tab (to execute the queries)

completed by #2156


Add custom middlewares to redux store

It would be nice feature for Admin component to support custom store middlewares. I'm writing custom reducer and action. I want to fetch data in action then return pure action object but i can't inject redux-thunk in store middlewares.

Admin-on-rest won't support that out of the box, you'll have to take the custom app route.


The latest version of the extension is a year behind the ARM version for Container Apps

Please provide us with the following information:

This issue is a: (mark with an x)

[x] bug report -> please search issues before submitting
[ ] documentation issue or request
[ ] regression (a behavior that used to work and stopped in a new release)

Issue description
The latest version of extension does not support the features from latest version of ARM which was in preview from Nov last year and they are released already
Steps to reproduce

Try to update an up build with terraform, Pulumi or Bicep with the latest official version from Azure team
You get an error indicating (WorkloadProfilePropertyNotSupportedInApiVersion) WorkloadProfiles configuration is not supported in 2022-10-01 api version. Use 2022-11-01-preview or above.

Expected behavior [What you expected to happen.]
Run smoothly
Actual behavior [What actually happened.]
Error
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Ex. Did this issue occur in the CLI or the Portal? CLI

Hi @moattarwork , What is the version that you are using?
Can you try updating using az extension update -n containerapp
Please make sure you are using the latest AZ cli as well.

Sorry for the delay @torosent. It worked perfectly. Thanks for the help.


Use left-shift instead of math.Pow where appropriate

Replace int(math.Pow(2.0, n)) by 1<<n where appropriate. This avoids a
type conversion to float64 and back and in some tests allows calculating
the value as a const at compile time.

test-me-please

Coverage increased (+0.006%) to 46.82% when pulling 1e7b4bc63d07d614c5de3738431099e0425519b4 on pr/tklauser/bitshift-pow into 794f5b3dc2b5f7b4848b2461c5d11104527b2077 on master.


AuthP AzureAD handler: make it "create new AuthP user" include default roles

The AuthP AzureAD handler can add a new AuthP user if the user isn't already in the AuthP user list if the AddNewUserIfNotPresent setting is set to true. But the current version doesn't add any AuthP Roles to the new AuthP user.
In some cases you might want to provide some default AuthP Role(s) to the new user. We could achieve this adding a new AzureAD setting which holds a list of AuthP Role names that would be added to the new AuthP user.

Version 3.3.0 of the AuthP provides one way via the AzureAdNewUserManager, but that won't work with AZure AD B2C with social logins.

No one has commented on this and there are other ways to do this, so I closing this issue.


(davide) add example of Gail entry + config for Mujoco and Cartpole

Description
This repo adds a config + entry to train an imitation policy to imitate an expert policy using GAIL. However the same entry can be generalized to any reward model whose interface is similar to GAIL. It includes the data collection phase and can save both the IL policy and reward model during training.
Important: this PR also changes the formula of the loss and reward of GAIL, changes have been approved after a discussion with @Will-Nie and @PaParaZz1. Now the loss function is according to the formula defined in the original paper.
Check the related comment for more details.
Related Issue
TODO
Check List

[ ] merge the latest version source branch/repo, and resolve all the conflicts
[ ] pass style check
[ ] pass all the tests

As we can see from the plot above, with the new formula GAIL can train Cartpole faster:

The loss of GAIl changes in the following way:

.

The reward function has also been changed, this further improves GAIL performance.


add username in NuGet source

Why:
Added information about replacing username
Closes: #33778

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[x] I have reviewed my changes in staging, available via the View deployment link in this PR's timeline (this link will be available after opening the PR).

For content changes, you will also see an automatically generated comment with links directly to pages you've modified. The comment won't appear if your PR only edits files in the data directory.

[x] For content changes, I have completed the self-review checklist.

@gagan-bhullar-tech Thanks so much for opening a PR with this update! Your changes look great ✨
GitHub Docs is currently in a repo freeze, but as soon as the freeze ends on July 8th, I'll update the branch and get this merged 🍏


not detecting that a project is running on 3000

What version of Turborepo are you using?
1.0.11
Describe the Bug
When i have a separate project running on port 3000 and then running turbo repo example projects npm run dev it does not detect that port 3000 is taken. Console still outputs for both example projects 3000 and 3001, so when i open http://localhost:3000 it open the previous project not related to turborepo
Expected Behavior
Next port should be used 3001 and 3002
To Reproduce
npm run dev

Should be fixed in 1.0.14

@jaredpalmer Still happening in 1.0.29
Tries 3000, if in use tries 3001, if in use exit code 1 and should be changing to 3002
$ turbo run dev --parallel
• Packages in scope: config, docs, tsconfig, ui, web
• Running dev in 5 packages
docs:dev: cache miss, executing 64f9a2565be42c12
web:dev: cache miss, executing 94b2c3c13578c78a
web:dev: $ next dev
docs:dev: $ next dev --port 3001
web:dev: warn  - Port 3000 is in use, trying 3001 instead.
web:dev: ready - started server on <IP_ADDRESS>:3001, url: http://localhost:3001
docs:dev: Port 3001 is already in use.
docs:dev: error Command failed with exit code 1.
docs:dev: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
docs:dev: Error: command finished with error: exit status 1
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.


Graphql not traicing

Please answer these questions before submitting a bug report.
What version of OpenTelemetry are you using?
"@opentelemetry/api": "^0.12.0",
"@opentelemetry/base": "^0.7.0",
"@opentelemetry/core": "^0.12.0",
"@opentelemetry/instrumentation-graphql": "^0.11.0",
"@opentelemetry/koa-instrumentation": "^0.11.0",
"@opentelemetry/node": "^0.12.0",
"@opentelemetry/plugin-dns": "^0.11.0",
"@opentelemetry/plugin-grpc": "^0.12.0",
"@opentelemetry/plugin-grpc-js": "^0.12.0",
"@opentelemetry/plugin-http": "^0.12.0",
"@opentelemetry/plugin-https": "^0.12.0",
"@opentelemetry/plugin-pg": "^0.11.0",
"@opentelemetry/plugin-pg-pool": "^0.11.0",
"@opentelemetry/resources": "^0.12.0",
"@opentelemetry/tracing": "^0.11.0",

What version of Node are you using?
Node 12
What did you do?
If possible, provide a recipe for reproducing the error.
index.js
// @flow strict
import './tracer';

import Koa from 'koa'; // koa@2
import cors from '@koa/cors';
import jsonwebtoken from 'jsonwebtoken';
import sendgrid from '@sendgrid/mail';

import { ApolloServer } from 'apollo-server-koa';

import type { Context } from 'koa'; // koa@2

import typeDefs from './schema.gql';
import resolvers from './resolvers';
import AuthDirective from './directives/auth';

const server = new ApolloServer({
  typeDefs,
  resolvers,
  schemaDirectives: {
    auth: AuthDirective,
  },
  context: ({ ctx }) => {
    return {
      sendgrid,
      ctx,
    };
  },
});

const app = new Koa();

app.proxy = true;

app.use(cors({ credentials: true }));
server.applyMiddleware({ app, cors: false });

app.listen({ port: PORT });

tracer.js
// @flow strict
import opentelemetry from '@opentelemetry/api';

import { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql';
import { LogLevel } from '@opentelemetry/core';

import { NodeTracerProvider } from '@opentelemetry/node';
import { ConsoleSpanExporter, BatchSpanProcessor, SimpleSpanProcessor } from '@opentelemetry/tracing';
import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';

import { GOOGLE_PROJECT_ID, IS_DEV, IS_TEST } from './config';

const provider = new NodeTracerProvider({
  logLevel: LogLevel.WARN,
  // plugins: {
  //   dns: { enabled: false, path: '@opentelemetry/plugin-dns' },
  //   http: { enabled: false, path: '@opentelemetry/plugin-http' },
  //   https: { enabled: false, path: '@opentelemetry/plugin-https' },
  //   pg: { enabled: false, path: '@opentelemetry/plugin-pg' },
  //   'pg-pool': { enabled: false, path: '@opentelemetry/plugin-pg-pool' },
  //   grpc: { enabled: false, path: '@opentelemetry/plugin-grpc' },
  //   'grpc-js': { enabled: false, path: '@opentelemetry/plugin-grpc-js' },
  //   koa: {
  //     enabled: false,
  //     // You may use a package name or absolute path to the file.
  //     path: '@opentelemetry/koa-instrumentation',
  //   },
  // },
});

if (!IS_TEST) {
  const exporter = new TraceExporter({
    projectId: GOOGLE_PROJECT_ID,
  });

  const graphQLInstrumentation = new GraphQLInstrumentation({
    // allowAttributes: true,
    // depth: 2,
    // mergeItems: true,
  });

  graphQLInstrumentation.setTracerProvider(provider);
  graphQLInstrumentation.enable();

  // provider.addSpanProcessor(new BatchSpanProcessor(exporter));
  provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
}

// Initialize the OpenTelemetry APIs to use the NodeTracerProvider bindings
provider.register();

const tracer = opentelemetry.trace;

export default () => {
  return tracer;
};

What did you expect to see?
Trace graphql requests
What did you see instead?
Nothing is traced
Additional context
Add any other context about the problem here.
@obecny here the issue hope this helps if need more context please let me know.
Thanks!

I won't be able to run your example, please either prepare some "complete minimum example" or push yr project to some github repo with everything, as it has more elements in it and I cannot guess what is missing and how it should look like.  There is a working example examples/graphql, to be able to help you somehow I would need similar thing.

@obecny hi I found the issue
here the code https://github.com/carlitux/opentelemetry-koa-graphql
master branch does not work but without-graphql-importer works
I assume that these packages imports graphql before the instrumentation
"babel-plugin-graphql-tag": "^3.1.0"
"babel-plugin-import-graphql": "^2.7.0"
Thanks!

@carlitux I think what's happening is that you are using babel/register and it is loading the graphql modules before you start the instrumentation stuff, so it isn't able to hook into the requires.  I'm not quite sure how best to get around that.
May have to start the instrumentation before loading babel/register.

yes, these two plugins are the issues I already removed because do not have a good DX
"babel-plugin-graphql-tag": "^3.1.0"
"babel-plugin-import-graphql": "^2.7.0"
Now the tracing is working, thanks!


UofT-DSI | Sampling - Data Documentation Comparison Worksheet

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Populated comparison worksheet.
What did you learn from the changes you have made?
How to find, analyze and compare information.
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
N/A
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
Yes, how to find some information.
How were these changes tested?
N/A
A reference to a related issue in your repository (if applicable)
Checklist

[x] I can confirm that my changes are working as intended

A4: PASS, Great organization of solutions


Z pr214/pinikomarov/master

It has passed on https://github.com/submariner-io/shipyard/pull/216/ , what is this PR ?

It has passed on #216 , what is this PR ?

this 215# is an old one , you can disregard it and review 216 only


Not a word about why this is needed or who should use this?

Provide a description of requested docs changes
Wow!
All this people involved and not a word about what this tool/package (or whatever it is) is supposed to help you do, or who needs it, or why it is needed?
Is it possible to make more vague documentation?

/dup #1615

You can read about Dev Home and what it does at aka.ms/devhomedocs


BROOKLYN-323: Simplify Logout api

removed TEMPORARY_REDIRECT step
fixed redirecting for firefox
change logout call to a GET request

Details about this change in https://issues.apache.org/jira/browse/BROOKLYN-323

Tested alongside https://github.com/apache/brooklyn-ui/pull/30 and this resolves the issue on Windows 10 on both IE and Edge. Behaviour on Chrome on OS X remains unchanged
LGTM

@bostko Can you describe why we should change /logout from POST to GET? For one it means that if I can find a way to inject HTML into the page I can log every user that loads it out. It also risks browsers pre-fetching the page and users being unexpectedly logged out (as described in http://stackoverflow.com/questions/3521290/logout-get-or-post).

Test failure unrelated: SpecParameterUnwrappingTest.testParameterDefaultsUsedInConfig. Will check locally.

Couple of questions / suggestions to answers then should be good to merge.

Thank you @neykov .
Closing PR since all changes are now made in brooklyn-ui https://github.com/apache/brooklyn-ui/pull/30


Bug fix: event buffer issue that cause Actions cannot be passed into business engine

Description
Fix issue that action cannot be passed into business engine.
Linked issue(s)/Pull request(s)
Type of Change

[ ] Non-breaking bug fix
[x] Breaking bug fix
[ ] New feature
[ ] Test
[ ] Doc update
[ ] Docker update

Related Component

[ ] Simulation toolkit
[ ] RL toolkit
[ ] Distributed toolkit

Has Been Tested

OS:

[x] Windows
[x] Mac OS
[x] Linux

Python version:

[x] 3.6
[x] 3.7

Key information snapshot(s):

Needs Follow Up Actions

[ ] New release package
[ ] New docker image

Checklist

[ ] Add/update the related comments
[ ] Add/update the related tests
[ ] Add/update the related documentations
[ ] Update the dependent downstream modules usage

Codecov Report

Merging #215 (6d314ca) into v0.2 (c2ae29f) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             v0.2     #215      +/-   ##
==========================================
+ Coverage   70.20%   70.21%   +0.01%
==========================================
  Files         101      101
  Lines        4564     4569       +5
==========================================
+ Hits         3204     3208       +4
- Misses       1360     1361       +1

Flag
Coverage Δ

unittests
70.21% <100.00%> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

maro/event_buffer/cascade_event.py
95.45% <100.00%> (+1.33%)
:arrow_up:

maro/event_buffer/event_linked_list.py
95.38% <100.00%> (ø)

...o/simulator/scenarios/citi_bike/business_engine.py
74.00% <0.00%> (-1.21%)
:arrow_down:

...topologies/single_learner_multi_actor_sync_mode.py
40.47% <0.00%> (ø)

maro/simulator/scenarios/cim/business_engine.py
85.93% <0.00%> (+0.76%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c2ae29f...6d314ca. Read the comment docs.


scripts/postinstall.sh not found

Hi,
I'm getting following
(CI, Linux<EMAIL_ADDRESS>...
error An unexpected error occurred: "/builds/xxx/xxx/xxx/mobile/node_modules/detox: Command failed.
  Exit code: 127
  Command: sh
  Arguments: -c scripts/postinstall.sh
  Directory: /builds/xxx/xxx/xxx/mobile/node_modules/detox
  Output:
  sh: scripts/postinstall.sh: not found".
...

Let me know if you need more details.
Thanks!

Where is this output from ?
Please be more descriptive in the first place, and follow the template.

Hi. I had the same issue now, when I tried to install detox into my RN 0.50.3 project...
PS C:\Aigh\hb-aigh-main-fe> npm i detox --save-dev

<EMAIL_ADDRESS>postinstall C:\Aigh\hb-aigh-main-fe\node_modules\detox
scripts/postinstall.sh

and after this I have got following error:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: scripts/postinstall.sh
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
What does it mean?

It means that Detox doesn't run on Windows currently.

@jhen0409 Could you please open a new issue? Also, would appreciate a PR :-)


Id generation

It is better that auto id generation than user specified id.

Id is automatically generated in v_0.2.0.
This is the significant change to interface, so I incremented miner version.
I have to update README on samples now

I changed description affected in the changes.
I close this issue.


Fix potential bug in accessing handlers of a logging.PlaceHolder

The logger Manager tree consists of Logger and PlaceHolder instances.
PlaceHolders are internal to the logging module and represent nodes for
which no loggers have been defined. As such, they do not have the
handlers attribute defined either. Attempting to access the attribute
would result in an error.

This repo is no longer the authoritative origin. https://gitlab.com/nso-developer/bgworker is!
Can you please submit this patch, if still relevant, to that repo? Thanks and sorry :) :S


TypeError: BARTDecoder.prepare_inputs_for_inference() got an unexpected keyword argument 'past_key_values'

TypeError: BARTDecoder.prepare_inputs_for_inference() got an unexpected keyword argument 'past_key_values'

What transformers version do you have installed?
Can you share more of the error log please?

4.31 and 4.32 all failed.
Would consider add support for latest transformers?

Yes, I was able to reproduce the issue and fixed it. Will push in a bit

fixed in 2b5fa59

@lukas-blecher Does pypi upgraded as well

Yes


chore(tsconfig): add tsconfigs

This is based on the configs of aurelia-validation, aurelia-dialog, aurelia-ux.

I skipped noUnusedLocals, noUnusedParameters - I would leave this to the linter
We were already using the majority of the strict settings so I just added strict: true. We should be cautious with this though since new flags can be added with new TS versions.
The only problem that popped up when I applied it to aurelia-dialog was related to the noImplicitThis setting - in a PropertyDescriptor get/set needed explicit this typing.
Every inheriting project will have to add its exclude, include, ... - the patterns are resolved relative to the file they are declared. Did add a reference excludes - if the hackish comment in the .jsons is too much or will result in some problems I'll remove it.

noUnusedLocals and noUnusedParameters

Why not leave them on if this is what we want? Typescript gives immediate feedback in the IDE, the sooner we see our mistakes the better.
I usually keep noUnusedLocals but not noUnusedParameters because there are cases where you legitimately want a function that has unused parameters (inheritance, interfaces, etc.)
That said, maybe I'll change my mind because TS 2.6 has introduced a way to suppress errors with // @ts-ignore, which makes noUnusedParameters more usable -> document why a parameter is there if you don't use it.

We should be cautious with this though since new flags can be added with new TS versions.

If there's a new version introduces a flag you don't like in strict (2.6 introduced strictFunctionTypes), we can always turn it off like so: strict: true, strictFunctionTypes: false. Setting an option to false takes precedence over strict: true.

noImplicitThis

Was this a real problem or you just needed to add a type annotation for this?
This option has caught many problems in code at work, caused by the highly dynamic nature of this in JS. Static validation is good...

exclude and include

If you put your tsconfig at the root of your src then TS defaults to all .ts files inside it and its subfolder. That's how I usually does it and it shouldn't require exclude nor include usage.

Can we add safety option noFallthroughCasesInSwitch?

@autoinject needs emitDecoratorMetadata but it generates lots of unneeded metadata (everywhere any decorator is used). I think we can agree not to use any of those in the core Aurelia libs?

stripInternal is nice for a lib like aurelia, it enables us to have "internal" apis. By using comment /** @internal */ a public API (for internal usage) won't be documented in the generated  .d.ts.

This one will be controversial but anyway: I usually have suppressImplicitAnyIndexErrors: true. This means access like x["blah"] will not create an error if there's no blah defined and will be typed as any. This is a very common pattern in bag/dictionary/option objects and I like having that escape hatch without explicit casting to any. If you want statically typesafe code, it feels natural to use x.blah.

@jods4

about include/exclude I just wanted to mention it since the current build setup in aurelia-validation, aurelia-dialog, aurelia-ux is organized in a manner that requires exclude - it seems we just copied the validation setup ¯_(ツ)_/¯. It's something we can work on separately from this PR, if needed.
what I meant by being cautious with strict - when updating a project/package TS version do check if there are any issues with new flags and either fixed them or as you said turn them off
noImplicitThis just needed the type annotation - nothing like the function deps injection problem
will add noFallthroughCasesInSwitch
stripInternal - so we do agree it should be in tsconfig.build.json, not the base one?

I'll await for some more input before making changes.

stripInternal -> why not in the base one? After all if you don't use /** @internal */ it has no effect.
Do you think there is a chance someone uses the comment when it shouldn't if we turn the TS option on?
It can always get turned off at the project level.

I vote for strict:true.  We can address issues that crop up as a result of new checks when we update the package’s typescript dependency.

@jods4 my intention was to have the compiler options somewhat semantically separated - you are doing dist build, use/extend tsconfig.build.json. And options like stripInternal, declaration, removeComments(not using because of the docs) for me are meaningful only for the dist/api doc build.
We could also have only 1 tsconfig.json, if that's more logical/practical.

@StrahilKazlachev OK that was unclear to me. Sure, if we have a base tsconfig for build and one for docs, we can put stripInternal in the docs one.

@jods4

more like we have one for build/docs and another for development(editor)/tests, at least this is the current setup.
with the current setup we build API docs from the declaration files. The API docs build just needs some target and exclude tweaking.
differences are mainly options as module, target, declaration, ...

At aurelia-pal I've added tslint-language-service as a compiler plugin.
This enables live feedback in IDE when your code doesn't properly lint:

And code fixes!

How's this looking?


Missing graph_vis_animation.gif image in http://www.tensorflow.org/how_tos/graph_viz/index.html

http://www.tensorflow.org/how_tos/graph_viz/index.html has a bad embedded image link:

Visualization of a TensorFlow graph.

Nearby: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/g3doc/how_tos/graph_viz (and https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/g3doc/how_tos/graph_viz/ ) are missing the file.

Fix should be up shortly!

... and we're fixed.


Added Manila Code in the Dark event

Organized by Philippine Web Designers x ManilaCSS x Women Who Code - Manila.

We're sorry for leaving things here unattended for a while, but we're kicking this thing alive again. Since the event has already been I'm going to close this PR, but feel free to submit a new PR if you're planning any future events again!


Users/files sidebar empty in Chrome

The right sidebar in Chrome doesn't show anything; works fine in Firefox.

Firefox 43.0.4
Chrome 48.0.2564.82 (64 bit)

There are no js messages or errors in the console log. Also Opera 34.0, IE 11.63 and Edge 25.10586 are fine as well.

Actually, had another computer with Chrome 47.0.2526.111 on it: displays fine. Updated it to 48.0.2564.82 -> same problem. So it broke somewhere after 47.0.2526.111

Should be fixed now, thanks @RobThree


removed square brackets from summary screen

What is the context of this PR?
Fixes #1107
How to review

confirm brackets are gone

For surveys with no question numbers, None appears before the question:


isUTC

hey, in my project i need this everytime. do you think it would fit in your lib? :)
isUTC: function(UTC) {
            var now = new Date();
            if (UTC >= new Date(now.getTime() + now.getTimezoneOffset() * 60000))
                return false;
            else
                return true;
        }

Thanks @ericrange It might become handy. Noted it.
What others think? Is there anybody needs this check?

no... utc is valid if its between 0 and the utc of NOW! should not be negativ value and etc^^

actually... utc is always valid if its between 0 and X... mmhh :(
what i need is if the utc ever existed. you know what i mean? :D
the best way would be
is.past(UTC)

if "my function" then true, else false

its maybe toooo specific for your lib :(
but datetime operations especially with utc is very important in my business

What do you mean by 'if the utc ever existed'?

if the utc is in the past... the utc (number) existed :D

Do you want a comparison to check whether the client’s local time is past or ahead UTC?
Some clarification:
Let's take 10:00 UTC.
For example local time for Istanbul is +2 UTC (12:00) and local time for New York is -5 UTC (5:00)
isPastUTC(local_time_from_istanbul);
=> true
isPastUTC(local_time_from_new_york);
=> false

Is this what you’re asking? It's a little bit tricky check. But generally speaking:
UTC checks can be handy for lots of us.
Thanks for the suggestions.

yes this is what i want! :)

sorry for the description... im a little bit language disabled^^

Don't worry @ericrange
My English is pretty poor too :) Noted a UTC check method. Thanks.
I'll let you know when it's published.

You can add an is.inrange function and convert the date checks into timestamps for speed and memory improvements

Thanks!
We'll keep an eye on the popularity of the request.


add support of user-defined kubelet directory

What type of this PR

Features

Add configurations of user-defined kubelet directory to support users specifying the kubelet directory instead of using the default /var/lib/kubelet.
Which issue(s) this PR fixes:
Fixes https://github.com/kubeovn/kube-ovn/issues/2047

Thanks! @qiutingjun


CLOUD-338 added user to ssh

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/730/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/731/

added ssh user to documentation.
pls review @lpuskas @schfeca75


Fixes #3924

The scoring function was not taking into account empty rgroups which biased certain arrangements of rgroups that didn't have an rgroup at every position.
@ptosco @jones-gareth  @greglandrum This resolves #3924 and mercifully doesn't fail any of the existing regression tests!

@jones-gareth : If you are ok with these set of changes I'll go ahead and merge them.

@jones-gareth : If you are ok with these set of changes I'll go ahead and merge them.

I've added a couple of comments.
Also in testRGroupDecomp.cpp both testMutipleCoreRelabellingIssues and testUnprocessedMapping are using the fingerprintVariance score.  Probably worth checking that the default scoring function is not working for those tests- perhaps test both scoring functions as you've done with testRingMatching3 (which is a nice feature).

I can check these two, but probably not until tomorrow.

I removed the two comments suggested by @jones-gareth . Will merge after the CI builds pass


webkit2gtk: full fledged build

Resolves #732
This pull request makes the following changes:

webkit2gtk: builds with gst-plugins if they are installed on the system
gstreamer: adds package
gst-plugins-base: adds package
gst-plugins: adds good, bad, ugly, and libav in a jumbo package.

WebkitGTK+2 Changes
WebKit now checks for gst-plugins and gstreamer with kiss l and enables
features for streaming. It also checks for openjpeg and enables -DUSE_OPENJPEG.
This DOES NOT create a difference between the created manifest.
gstreamer and gst-plugins-base
gstreamer and gst-plugins-base are buildtime and runtime dependencies for
WebKit to enable streaming. Other plugins are runtime dependencies and are
not required in buildtime.
gst-plugins-base is required to be installed on the system during the build
of other plugins (CFLAGS, CXXFLAGS, PKG_CONFIG_PATH configuration still
causes the linker to fail for good and bad).
Package manifests
A list of package manifests can be found in https://ckyln.com/files/webkit-manifests.txt
New package

[x] Latest upstream version.
[x] I agree to maintain this package.
[x] I agree to notify @dylanaraps if I can no longer maintain this package.

Existing package

[x] I am the maintainer of this package.

This is awesome, thanks!