Add Logback integration

Logs missing from traces in open telemetry
Hi there,
I'm getting somewhere with open telemetry and micronaut, while I’m seeing the traces and spans propagate to our open telemetry endpoint, we are not seeing the logs propagate. Our endpoint, in this case, is New Relic.
I have an example app which reproduces the issue here:
https://github.com/CraftyFella/micronaut-opentelemetry
Questions I have on this issue:
Should logs be published with the open telemetry otlp option in micronaut?
Is there anything I'm doing wrong in the above repo?
What's the best way to debug the open telemetry code so I can help myself?

@n0tl3ss could you take a look?

Hi @CraftyFella.  Did you manage to make exporting metrics work? Right now there isn't support for opentelemetry logging yet, but you might try to do it yourself.
https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/logback/logback-appender-1.0/library
About metrics, I need to test them, but because we are using the autoconfigure SDK I would expect that metrics work out of the box because Micrometer is supported. Here are libraries that Opentelemetry supports:
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md

Hi @CraftyFella. Did you manage to make exporting metrics work? Right now there isn't support for opentelemetry logging yet, but you might try to do it yourself.
https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/logback/logback-appender-1.0/library

Thanks for the confirmation... I nearly have something working now using the appended you pointed me to. It's coming back with a 404 from New Relic now.. so i'll try and work that out.. annoyingly it's using okhttp3 which doesn't respect the proxy java settings so its hard to see what it's actually sending.

@n0tl3ss where in the tracing and metric exporters is it actually making the http requests.. as Id like to compare the logging exporter to the working tracing exporter so I can play spot the difference.

Managed to get it all working.. traces, logs and metrics now being sent to New Relic.. thanks for your help.. I can close this issue now.

After speaking with the team, we really would like to avoid having to write any code to make logging work, so I'm re-opening the issue so that it can be closed when the support is there for logging.

@CraftyFella can you post the code you had to use to make it work

@CraftyFella can you post the code you had to use to make it work

Sure.. here is how we got it to work https://github.com/CraftyFella/micronaut-opentelemetry/tree/main/src/main/java/com/example/opentelemetry
That code has been made into a library by the company I work for currently..
It only works for logback though.

Does this solution or https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/logback/logback-appender-1.0/library successfully handle switching threads in the event loop?

@n0tl3ss @CraftyFella
I couldn't get this to work and posted in the gitter/matrix question channel
https://matrix.to/#/!yCnMLDiUomuzzUwMLG:gitter.im/$1TPQjt0bQAvf-l71gt6b8Rpwc9zqBF-jYFNVKE0IQNc?via=gitter.im&via=matrix.org&via=data.coop

I've added breakpoints to the wrap function and it's never happening
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/release/v1.19.x/instrumentation/logback/logback-mdc-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/v1_0/OpenTelemetryAppender.java#L30

I opened a PR for doc updates https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/8638


Google Drive backend

What is the purpose of this change? What does it change?
Introduces Google Drive backend. While I only did preliminary testing, I think the implementation is sufficiently complete for review and feedback.
Was the change discussed in an issue or in the forum before?
See https://github.com/restic/restic/issues/527
Checklist

[x] I have read the Contribution Guidelines
[x] I have added tests for all changes in this PR
[x] I have added documentation for the changes (in the manual)
[ ] There's an entry in the CHANGELOG.md file that describe the changes for our users
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

I understand this PR is on hold for now, but still have some feedback.
I built restic from source and tried this PR.
The files uploaded by restic to Google Drive are owned by the Service Account instead of my Google Account. This is an issue because the Service Account has it's own quota. All the files are visible in my shared folder but still count against the Service Account's quota, that can not be upgraded beyond 15 GB.
This basically means that it is not possible to do backups greater than 15 GB with the current state of this PR, I think.
If my assumption is true, there are multiple ways of solving this:

Use some other form of authenticating, like OAuth 2 credentials for example
Using Service Accounts, there is a feature to delegate API calls to other users. Using that, the files could actually be owned by the real Google Account, that can extend the quota. See https://github.com/ncw/rclone/issues/1491

The rclone backend is coming along nicely, you can already test it by using the branch in #1657. I'm therefore closing this branch, it is superseded by #1657. Thanks!

The rclone backend is coming along nicely, you can already test it by using the branch in #1657. I'm therefore closing this branch, it is superseded by #1657. Thanks!

Strange conclusion. Is restic no longer interested in its own backends? Are those dead? Are new backend developments not accepted? Should I move all my usage to the [more complicated] rclone backend?

I can only quote @fd0 on this:

For the record: Adding support for rclone does in no way imply removing the backends we already have.

That is the current set of supported backends is definitely supported. However, adding new backends comes with non-trivial maintenance costs, so it's preferred to use rclone for additional backends when reasonably possible.

That's too bad. Not everybody wants to have to deal with running several interlocking components and the fragility involved with that. A huge strength of restic is that it's standalone. Relying more and more on rclone erodes that.

@zx2c4 FWIW, I can relate to what you're saying, in that I personally don't run rclone (that's mostly because I only use the REST-backends though) and I think it's a bit messy how rclone requires a configuration file. But besides that it's just a single binary like restic, and if you just set it up it's really not that much work or complexity. A lot of people use restic+rclone and it works just fine.
There is validity to what @MichaelEischer says - I'd argue that restic and its community will benefit much much more if we spend the time maintaining and improving other parts and features of restic, than if we were to spend time implementing and maintaining backends that are already fully supported if one just adds that rclone binary and takes a couple of minute of their time to configure rclone. It does work ;)
Anyway, each to their own, I just wanted to second what Michael said.


Z Order

I am not sure if this is the right place to ask this. If it is wrong, I will delete this.
I have 4 layers.

The background
The sprites on the background 1.
An elevated background.
The sprites on background 3.

Layer 1 is furthest back and they are in order. However sprites in 2 and 4 can flip flop back at forth between layers.
I have read and understand:
http://pixijs.github.io/examples/#/display/zorder.js
But what is the best, optimized way of flip flopping sprites between layers 2 and 4. It could be changing every frame.
Should I create 2 sprites for each sprite and have 1 permanently reside in each layer and alter the visibility depending on which layer it should be in?
Or should I constantly add and remove a single sprite from each layer?

At the moment I have tried the following, and it seems to work.
All I do is put everything into the same container. Give each sprite a zOrder member, which can change each frame. Then use
children.sort(function(a, b){
    if(a.zOrder === b.zOrder) return 0;
    else return (a.zOrder<b.zOrder ? -1 : 1);
});

This seems a lot simpler that the example link I have given above.

If you are using that plugin, then you can just change the display group that a sprite is part of, following that example. It is actually a cool way of very easily changing rendering order without having to deal with arrays....
Which, in pure pixi, is how you need to do it, and which is what your code does.
You'll want to apply the zOrder property to Containers, rather than just Sprites, so that Graphics objects can also work with the order.
And you can then apply that sort to PIXI.Container.onChildrenChange, so that zOrder is recalculated if sprites are added or removed. Cache that sorting function rather than creating it every time anything changes.
Finally, if you create a getter and setter for zOrder, on the setter call the parent.onChildrenChange. This is because changing a sprites zOrder means it needs its parent to resort it's children array.


CONNECT-UDP example configuration error

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: CONNECT-UDP example configuration error
Description:
I am trying to test the configuration provided in https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/upgrades#connect-udp-support. I am also using quiche masque_client https://github.com/google/quiche/tree/main/quiche/quic/masque. Also I am using envoy:dev latest container. The client side proxy configuration is as below:
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: UDP
        address: <IP_ADDRESS>
        port_value: 10000
    udp_listener_config:
      quic_options: {}
      downstream_socket_config:
        prefer_gro: true
    filter_chains:
    - transport_socket:
        name: envoy.transport_sockets.quic
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport
          downstream_tls_context:
            common_tls_context:
              tls_certificates:
              - certificate_chain:
                  filename: /etc/envoy/server.crt
                private_key:
                  filename: /etc/envoy/server.key
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          codec_type: HTTP3
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog

          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains:
              - "*"
              routes:
              - match:
                  connect_matcher:
                    {}
                route:
                  cluster: cluster_0
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          http3_protocol_options:
            allow_extended_connect: true
          upgrade_configs:
          - upgrade_type: CONNECT-UDP
  clusters:
  - name: cluster_0
    typed_extension_protocol_options:
      envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
        "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
        explicit_http_config:
          http3_protocol_options:
            allow_extended_connect: true
    load_assignment:
      cluster_name: cluster_0
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: <IP_ADDRESS>
                port_value: 10000
    transport_socket:
      name: envoy.transport_sockets.quic
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport
        upstream_tls_context:
          common_tls_context:
            tls_certificates:
            - certificate_chain:
                filename: /etc/envoy/server.crt
              private_key:
                filename: /etc/envoy/server.key

Server side proxy (<IP_ADDRESS>) that terminates connect-udp and forward request to google is as follows:

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: UDP
        address: <IP_ADDRESS>
        port_value: 10000
    udp_listener_config:
      quic_options: {}
      downstream_socket_config:
        prefer_gro: true
    filter_chains:
    - transport_socket:
        name: envoy.transport_sockets.quic
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport
          downstream_tls_context:
            common_tls_context:
              tls_certificates:
              - certificate_chain:
                  filename: /etc/envoy/server.crt
                private_key:
                  filename: /etc/envoy/server.key
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          codec_type: HTTP3
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains:
              - "*"
              routes:
              - match:
                  connect_matcher:
                    {}
                route:
                  cluster: service_google
                  upgrade_configs:
                  - upgrade_type: CONNECT-UDP
                    connect_config:
                      {}
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          http3_protocol_options:
            allow_extended_connect: true
          upgrade_configs:
          - upgrade_type: CONNECT-UDP
  clusters:
  - name: service_google
    type: LOGICAL_DNS
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_google
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: www.google.com
                port_value: 443

And the command for masque client is
./masque_client --disable_certificate_verification=true <IP_ADDRESS>:10000 https://www.google.com
It fails. The output of client envoy is

[2024-04-25 03:31:08.165][1][info][main] [source/server/server.cc:971] starting main dispatch loop
[2024-04-25 03:32:38.204][15][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_server_handshaker.cc:974] No hostname indicated in SNI
[2024-04-25 03:32:38.215][15][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_handshaker.cc:256] Cert chain verification failed: Leaf certificate doesn't match hostname:
58755145347776:error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:external/boringssl/src/ssl/handshake.cc:393:
[2024-04-25T03:32:38.211Z] "GET /.well-known/masque/udp/www.google.com/443/ HTTP/3" 503 UF 1311 236 4 - "-" "-" "c3a36610-997b-40ab-a2a4-a7d46f698f00" "www.google.com:443" "<IP_ADDRESS>:10000"

The server envoy output is

[2024-04-25 03:32:38.210][20][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_server_handshaker.cc:974] No hostname indicated in SNI

The client and server envoy proxies both use the same self-signed certificate, and the configuration is the same as provided in the website.
If I enable auto_sni in client side :
  - name: cluster_0
    typed_extension_protocol_options:
      envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
        "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
        upstream_http_protocol_options:
          auto_sni: true

        explicit_http_config:
          http3_protocol_options:
            allow_extended_connect: true
    load_assignment:
      cluster_name: cluster_0
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: <IP_ADDRESS>
                port_value: 10000
    transport_socket:
      name: envoy.transport_sockets.quic
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport
        upstream_tls_context:
          common_tls_context:
            validation_context:
              trust_chain_verification: ACCEPT_UNTRUSTED

I still get the following error
[2024-04-25 03:56:25.547][17][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_server_handshaker.cc:974] No hostname indicated in SNI
[2024-04-25 03:56:25.563][17][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_handshaker.cc:256] Cert chain verification failed: Leaf certificate doesn't match hostname: www.google.com
22063240393008:error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:external/boringssl/src/ssl/handshake.cc:393:
[2024-04-25T03:56:25.554Z] "GET /.well-known/masque/udp/www.google.com/443/ HTTP/3" 503 UF 1311 236 9 - "-" "-" "3e1dbc32-dba5-48fa-8069-2065bfecefec" "www.google.com:443" "<IP_ADDRESS>:10000"

I also changed server proxy to the follow and nothing changed:
  clusters:
  - name: service_google
    type: LOGICAL_DNS
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    typed_extension_protocol_options:
      envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
        "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
        upstream_http_protocol_options:
          auto_sni: true
        explicit_http_config:
          http2_protocol_options: {}

    load_assignment:
      cluster_name: service_google
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: www.google.com
                port_value: 443

Thank you for checking this.

cc @DavidSchinazi cc @RyanTheOptimist

Hi @Bfarkiani, thank you for reporting the issue. Does sending a CONNECT-UDP request directly to the server-proxy work?
I will try to test the forwarding and terminating proxy two-hop setup myself and see if there's any issue in the current example configs.

Hi @jeongseokson
Thank you for your attention. I sent the request to the server. The server uses the same configuration as above (the same as the envoy docs). Envoy server prints the following message
[2024-04-29T20:15:37.750Z] "GET /.well-known/masque/udp/www.google.com/443/ HTTP/3" 200 - 3875 68976 383 - "-" "-" "c70459b6-454d-45e1-9629-55f97aae6c7f" "www.google.com:443" "<IP_ADDRESS>:443"
So, it seems that sending directly to the server works fine.

Thanks for the update. I will test the two proxy setup myself when time permits to see if I can reproduce the issue.

Dear @jeongseokson
Have you had any chance to review this matter?

Hi @Bfarkiani, I started looking into this issue last week. I will follow up soon after gathering more information reproducing the issue myself.

I reproduced the setup and tried the same. The issue is due to certificate verification on the forwarding proxy side when establishing a QUIC connection with the upstream terminating proxy. This happens regardless of CONNECT-UDP when a self-signed certificate is used in the terminating proxy.
#17700 is a relevant discussion around this issue. I am not sure if we provided a way to disable upstream certificate checks when Envoy is working as a QUIC client. @danzh2010 Could you provide some insight on this?

There is no way to bypass Leaf certificate doesn't match hostname: www.google.com. You can use a self-signed cert on the proxy server to both downstream and upstream. But your masque client should be configured to expect your proxy server's own cert instead of a google.com cert. auto_sni will pick the host name from your request url, so it will be google.com. If you explicit config upstream_tls_context.sni in your masque client config to the SAN in your own cert, you should be able to bypass this error.

Thanks for the reply Dan. But the masque_client has --disable_certificate_verification=true, and the Leaf certificate doesn't match hostname: error is from the Envoy (forwading proxy), not from the masque_client. Is there a way to bypass it from the Envoy when it works as a QUIC client (as a forwarding proxy)?

Thanks for the reply Dan. But the masque_client has --disable_certificate_verification=true, and the Leaf certificate doesn't match hostname: error is from the Envoy (forwading proxy), not from the masque_client.

Sorry I'm confused about  this comment .
Is below log observed on the client envoy? If so it means it failed handshake with masque client as it is acting as a server (given tls_server_handshaker).
[2024-04-25 03:56:25.547][17][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_server_handshaker.cc:974] No hostname indicated in SNI
[2024-04-25 03:56:25.563][17][info][quic] [external/com_github_google_quiche/quiche/quic/core/tls_handshaker.cc:256] Cert chain verification failed: Leaf certificate doesn't match hostname: www.google.com
22063240393008:error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:external/boringssl/src/ssl/handshake.cc:393:
[2024-04-25T03:56:25.554Z] "GET /.well-known/masque/udp/www.google.com/443/ HTTP/3" 503 UF 1311 236 9 - "-" "-" "3e1dbc32-dba5-48fa-8069-2065bfecefec" "www.google.com:443" "<IP_ADDRESS>:10000"

Is there a way to bypass it from the Envoy when it works as a QUIC client (as a forwarding proxy)?

No other than via the sni config knob.

@Bfarkiani Do you have anything to add regarding the auto_sni? I think auto_sni doesn't make sense in this setup because the target hostname (google.com) is not the hostname of the terminating proxy.
@danzh2010 My understanding is that it's the TLS handshake failure between the forwarding proxy (client Envoy) and the terminating proxy (server Envoy), not between the masque client and the forwarding proxy. Is there a reason you believe it's still a handshake failure between the masque_client and the forwarding envoy?
To try to solve the issue, I set the sni value in UpstreamTlsContext config of the forwarding proxy to match the self signed certificate's CN of the terminating proxy, but I still got the same Leaf certificate doesn't match hostname:  error from the forwarding proxy side.

I figured out that sni should match SAN, not CA of the certificate to pass the leaf hostname check test of the Envoy. The test certificates provided have lyft.com as a SAN. To make the TLS handshake between the proxies work, you should set sni: "lyft.com" under upstream_tls_context:.
Please try this @Bfarkiani. If you created your own self-signed certificate, you should specify the SAN there to match the one in the config. I checked other http3 example configs of Envoy and they have sni field set to avoid this issue I guess. I will update the config soon.
Unfortunately, the CONNECT-UDP request still doesn't go through even after the TLS handshake is successfully done. This one looks like an actual issue related to the HTTP Datagram implementation. I will take a look into it as well, but please try to do it yourself just to make sure we encounter the same issue @Bfarkiani.

Dear @jeongseokson
Sorry for my late response. I tried the following configurations after applying your change and also creating a self-signed certificate with SAN of example.com:
client:
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: UDP
        address: <IP_ADDRESS>
        port_value: 10000
    udp_listener_config:
      quic_options: {}
      downstream_socket_config:
        prefer_gro: true
    filter_chains:
    - transport_socket:
        name: envoy.transport_sockets.quic
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport
          downstream_tls_context:
            common_tls_context:
              tls_certificates:
              - certificate_chain:
                  filename: /etc/envoy/example.com.crt
                private_key:
                  filename: /etc/envoy/example.com.key
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          codec_type: HTTP3
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains:
              - "*"
              routes:
              - match:
                  connect_matcher:
                    {}
                route:
                  cluster: cluster_0
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          http3_protocol_options:
            allow_extended_connect: true
          upgrade_configs:
          - upgrade_type: CONNECT-UDP
  clusters:
  - name: cluster_0
    typed_extension_protocol_options:
      envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
        "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
        upstream_http_protocol_options:
          auto_sni: true   ####<---- I added this but no help

        explicit_http_config:
          http3_protocol_options:
            allow_extended_connect: true
    load_assignment:
      cluster_name: cluster_0
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: <IP_ADDRESS>
                port_value: 10000
    transport_socket:
      name: envoy.transport_sockets.quic
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicUpstreamTransport
        upstream_tls_context:
          # SAN of the certs/servercert.pem used for local testing. Update this if using a different certificate.
          sni: example.com

Server:
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        protocol: UDP
        address: <IP_ADDRESS>
        port_value: 10000
    udp_listener_config:
      quic_options: {}
      downstream_socket_config:
        prefer_gro: true
    filter_chains:
    - transport_socket:
        name: envoy.transport_sockets.quic
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.transport_sockets.quic.v3.QuicDownstreamTransport
          downstream_tls_context:
            common_tls_context:
              tls_certificates:
              - certificate_chain:
                  filename: /etc/envoy/example.com.crt
                private_key:
                  filename: /etc/envoy/example.com.key
      filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          codec_type: HTTP3
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains:
              - "*"
              routes:
              - match:
                  connect_matcher:
                    {}
                route:
                  cluster: service_google
                  upgrade_configs:
                  - upgrade_type: CONNECT-UDP
                    connect_config:
                      {}
          http_filters:
          - name: envoy.filters.http.dynamic_forward_proxy
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig
              dns_cache_config:
                name: dynamic_forward_proxy_cache_config
                dns_lookup_family: V4_ONLY
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          http3_protocol_options:
            allow_extended_connect: true
          upgrade_configs:
          - upgrade_type: CONNECT-UDP
  clusters:
  - name: service_google
    type: LOGICAL_DNS
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_google
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: google.com
                port_value: 443

  - name: dynamic_forward_proxy_cluster
    lb_policy: CLUSTER_PROVIDED
    connect_timeout: 5s
    http2_protocol_options: {}
    cluster_type:
      name: envoy.clusters.dynamic_forward_proxy
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig
        dns_cache_config:
          name: dynamic_forward_proxy_cache_config
          dns_lookup_family: V4_ONLY
        allow_insecure_cluster_options: true

My certificate details:

The command I am using for masque client is
./masque_client --disable_certificate_verification=true <IP_ADDRESS>:10000 https://www.google.com
What server envoy prints is

And what happens for packets:

Seems that there is a connection. Although masque client shows nothing.
As you see still server envoy prints "No hostname indicated in SNI" even with auto_sni. The connection handshake was successful, but masque client doesn't show anything.

@jeongseokson
I changed my client to chromium https://www.chromium.org/quic/playing-with-quic/ and tried the same configuration without auto_sni to connect to a local www.example.com website. Still Failure with this error at client.

@Bfarkiani  I think we've reached the same actual error in the existing forwarding proxy mode I mentioned in a previous comment. Fixing this would probably require some modification to the existing HTTP Datagram handler unfortunately. I will create a separate issue for tracking this as this isn't a configuration issue.

@jeongseokson
Thank you.

Just want to clarify that the issue raised in this post (as the title says) is about the incorrect example config (No SNI specified), which has been resolved. We uncovered the other issue in the CONNECT-UDP forwarding mode, and I created #34836. I think we can mark this issue resolved and use #34836 to track the issue separately, which I am currently working on.

That makes sense, thanks for the details. OK let's close this issue once https://github.com/envoyproxy/envoy/issues/34836 is reopened


Update request: newsflash 2.3.1 → 3.0.1

Package name: newsflash
Latest released version: 3.0.1

Current version on the unstable channel: 2.3.1
Current version on the stable/release channel: 2.3.0

[x] Checked the nixpkgs pull requests

Notify maintainers
@kira-bruneau
@Stunkymonkey

Note for maintainers: Please tag this issue in your PR.

please see at #258567 sadly blocked by #247766


kmmBridgePublish task not found in Azure DevOps pipeline despite successful local execution

When I run the following task command locally, it executes without any issues:
./gradlew kmmBridgePublish -PENABLE_PUBLISHING=true -PGITHUB_PUBLISH_TOKEN=<AZURE_ARTIFACT_TOKEN> -PGITHUB_REPO=<REPO> --no-daemon --stacktrace

However, invoking the same task via my Azure DevOps pipeline produces an error. Specifically, it states that the kmmBridgePublish task cannot be found in either the root project or any of its subprojects.
I'm puzzled by this behavior and would appreciate any insights or solutions to address this discrepancy between local and pipeline execution.

I have this issue but with local machines. In one computer I managed to get it to work by deleting de gradle cache. But in another computer it does not create the task even after deleting the gradle cache.

The kmmBridgePublish doesn't get registered, depending on your config. If your are missing either the artifact manager or version manager config, or if they fail to properly return a version, the config stops short of trying to set up tasks related to actually publishing. There were historical reasons for this, but in summary, it is assumed your config is in flux or you're locally editing. Throwing errors, etc, would prevent you from locally getting Gradle to configure. Look for log warnings from Gradle.


Fix undesired color in buttons or collections inside cards

Placing a button or a collection with links in a card cause it to inherit the card link color, which is undesired. Also, card link color was exported to a variable.

Thanks for bringing this issue up. Instead of hardcoding exceptions, I decided to instead move the anchor styles to only the card action section
Fixed in efb070131d50cc63bde55f2e344634c435ecb49c


add slack/twitter notifications

notification type should be optionally set in settings.

added slack alerts with c78aba7b6495760fb78b322cc45f82b9f4bf6773
I have decided against adding twitter alerts for now since it would be hard for the maintainer to use their own account to alert themselves.


Vulnerability roundup 85: cereal-1.3.0: 2 advisories [9.8]

search, files

[ ] CVE-2020-11105 CVSSv3=9.8 (nixos-20.03, nixos-unstable)
[ ] CVE-2020-11104 CVSSv3=5.3 (nixos-20.03, nixos-unstable)

Scanned versions: nixos-20.03: a84b797b28e; nixos-unstable: 22c98819ccd. May contain false positives.

Not fixed upstream.  Both issues are still considered open.

1.3.2 was released a while ago, we could update this.

CVE-2020-11105 was fixed in 4509181d6c3eeafd6c4f032926f0a6d01a011f93.
CVE-2020-11104 remains unfixed, see https://github.com/USCiLab/cereal/issues/625.

That's unfortunate, I agree that we should mark it with knownVulnerabilities.
Is there a way to mark the usage of a derivation as save? I'm not sure when/if I have time to look into how prusa-slicer is using the lib, but hopefully it's only used internally.
It looks like https://github.com/NixOS/nixpkgs/blob/4792ee0b1ae54bfff7b6f9876f0c048596b33df6/pkgs/applications/window-managers/cardboard/default.nix#L31-L35 uses cereal but not via its derivation. cc @AndersonTorres

I will verify.


Terminate Istio Proxy at VM Cleanup

Signed-off-by: Radim Hrazdil<EMAIL_ADDRESS>What this PR does / why we need it:
When VMI has Istio Proxy sidecar, then after migration the proxy keeps running in the original virt-launcher pod indefinitely.
This PR terminates the proxy, so that the original virt-launcher pod can get to completed state.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #5657
Special notes for your reviewer:
The solution introduced in this PR is best-effort, if for some reason the curl request fails, then the proxy is not terminated.
I tried to look into how virt-handler could deal with the istio-agent process in a "no questions asked" manner, but I couldn't figure out how to identify which istio-agent to terminate.
QUESTION: Maybe it would be possible to cache the PID of the proxy process when it's created? And then use it to kill the proxy when cleaning the VM after migration?
To decide whether or not to send the termination request, I use the output of ss to see if there is a istio/proxy socket.
If there are better ways to tell if the istio-proxy container is present from our compute container, I'd be happy for suggestions.
Release note:
Fix issue with virt-launcher becoming `NotReady` after migration when Istio is used.

/test pull-kubevirt-unit-test

/test pull-kubevirt-e2e-k8s-1.19-sig-compute

/cc @davidvossel

/lgtm

/retest


Support input data that don't fit in memory

When X is really large, it might not fit into the CPU RAM.
We might want to extend fit_model() to support using Dataset and DataLoader with custom loading (from disk), by subclassing torch.utils.data.Dataset and implement the __len__ and __getitem__ methods.
Need an article to document this feature.

Mark as not doing for now as it might involve updating the scheduler with fractional epochs which is less than ideal.


Add the ability to register a raycast filter callback from Rust

With this, you can register a callback to use to decide what objects can be hit by raycasts. In the callback, you get the actor, the custom filterdata for the mesh, and a userdata pointer. To reject a single object for example, pass in the PxActor through userdata and compare.

All the parameters are in now. Made the flags one an u32 for FFI purposes...


Information is Missing

I need to rename our organziation due to character length limits of files being moved into OneDrive, particularly when it happens using the Backup feature to redirect known folder locations.
I'm skeptical that the list of impacts listed on your support page are comprehensive since there are many details missing on that page.
For example, it says that it doesn’t update for already configured clients. Okay... so what happens to them? Will it stop syncing new files/file changes? What about shared links? What about after they unlink and re-link their account and the changes to the new name (duplicate files, share links, etc.)--assuming it works (contrary to multiple online reports, including one in the other feedback on this page)? What about Teams meetings scheduled or in progress? What about Teams shared links? I don't think those will be impacted since our SharePoint Domain shouldn't change (right?), but I want to be sure. Will my users get logged out of Teams or be kicked out of meetings or disconnected calls? In talking to a OneDrive support team member, he said that when he unlinked and re-linked, it found the OneDrive folder name with the old organizational name by default. If that's the case, then I need to provide other steps to users to rename or delete that folder before linking again (information not included on this support page). Is there a delay after I change the organization name before unlinking and re-linking is effective? I don't expect there would be DNS concerns if the domain doesn't change, but is there something that is going to take 24-72 hours to sync across Microsoft's environment after a change? Those are some questions that I can think of, but I imagine that there are more I should be thinking about, and don’t know what I don’t know to ask. Since it is a global change that impacts everyone (instead of a select group), I don’t want to break anything for users.
So, I'm looking for a full, comprehensive list of things to consider and any preparation steps needed. For example, this page on renaming the SharePoint Domain (which understandably has more implications), but look at the thorough list of low, medium, and high impact areas across the entire MS365 ecosystem, along with necessary preparation steps. That's exactly what I'm looking for, but as it relates to this issue.
https://docs.microsoft.com/en-us/sharepoint/tenant-rename
Something like that would be helpful. At a minimum spelling out some answers to my questions above, along with anything else that's come up from your support team would be helpful.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ecea09f5-957a-4674-0449-def4a1de21a4
Version Independent ID: 53c2bbeb-daf8-56cd-f821-aa6e7e2fee92
Content: Change your organization's address, technical contact, and more - Microsoft 365 admin
Content Source: microsoft-365/admin/manage/change-address-contact-and-more.md
Service: o365-administration
GitHub Login: @cmcatee-MSFT
Microsoft Alias: cmcatee

I do think you should update the documentation with these three things as it relates to the Organization name:

After you rename the organization, there is a 24 hour delay before new clients signing into OneDrive will receive the new name. I assume the same for its update in other places, but didn't clarify that with MS support.
Currently logged in OneDrive clients will not be impacted, but if they should get the new name, then they need to unlink the account. Then rename the existing OneDrive folder (or it will re-use the folder with the old name). Then sign-in again. If there is more you feel should be added on how to address already enrolled clients, then I encourage you to do so.
For the portion 'Organization profile link and page' - this is confusing. According to MS Support, no link is updated. Only the information on the organizational profile page in the MS Admin Center is updated. Is this definitely the case? If so, then is this necessary to say since the article is specifically about updating that field?


”Grebenișu de Câmpie” is listed in the drop-down menu

Description:
"Grebenișu de Câmpie" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Grebenișu de Câmpie" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Grebenișu de Câmpie, MUREȘ".


[AAT] Support the gcid table for Glyph-to-CID mapping

https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6gcid.html
https://github.com/fonttools/fonttools/issues/178

@behdad, how to extend otConverters with a computed UInt32 for the total table size?

how to extend otConverters with a computed UInt32 for the total table size

Figured it out. Rebased to current master, and did some cleanup. Now merging into master.


DBZ-3169 Adds doc for debezium UI

Adding doc for the Debezium UI.

@rk3rn3r What's the current status of this PR? Can it be merged?

LGTM. One last question would be: Do we need to wrap this somehow that it only goes to the upstream docs and not yet to downstream? I think @roldanbob once said when a doc is not listed it will not be included.

LGTM. One last question would be: Do we need to wrap this somehow that it only goes to the upstream docs and not yet to downstream? I think @roldanbob once said when a doc is not listed it will not be included in downstream docs?

@rk3rn3r When I update docs for a downstream release, I fetch content only from the upstream branch that is aligned with that release, for example, for Q1, it was the 1.4 branch. So as long as the UI doc is backported to a release branch, I don't think that there's any concern about the content being inadvertently included downstream.

@rk3rn3r @mdrillin @indraraj So where exactly does this stand now?  This is tagged for 1.6, so should this be merged before next week's release or is this on hold until 1.7?

This should wait for 1.7. By then, we should be clear on where we stand
with the UI, we can update Mark's blog post, etc.

@mdrillin, @indraraj, @uidoyen, @rk3rn3r, is any update needed here still? Like new screenshots or similar?

I think similar to https://github.com/debezium/debezium.github.io/pull/644 we should describe application.properties and related environment variables better. Especially the ui.base.uri property / UI_BASE_URI env var.
@mdrillin could you maybe add that?

@mdrillin, @indraraj, @uidoyen, @rk3rn3r, is any update needed here still? Like new screenshots or similar?

For the screenshots, there is a slight change with the KAFKA_CONNECT_URI dropdown placement. And also I was thinking if we should also add a screenshot of the final "Review" step. @mdrillin
FYI I have made some recent modifications to show the hidden password and download the final config json.

And applied. Thanks, @mdrillin!

I think similar to debezium/debezium.github.io#644 we should describe application.properties and related environment variables better. Especially the ui.base.uri property / UI_BASE_URI env var. @mdrillin could you maybe add that?

I searched through Debezium's issue list and communication emails, as well as debezium-ui's online information, but I couldn't find the configuration address of the parameter ui.base.uri. I tried to set it in ui/packages/services/src/config/config. service.ts;
backend/src/main/resources/application.properties;
deployment/dbzui-config.sh;
ui/config/config.js;
Updating or adding configuration cannot modify the uri address of debezium-ui, which causes this service to only open port 8080 for this machine and cannot be accessed from the outside. In addition to using port forwarding to solve this problem, Do you have any other good suggestions, thank you!

@taoyuanai  Please have a look at https://github.com/debezium/debezium-ui/pull/398. The config options was required by the UI frontend to get the UI backend domain name and base path. The UI frontend got updated to use the path from the initial call. Thus, the config options was not required anymore and was removed with the forementioned PR.
Correct @indraraj ? Maybe you have the UI task / PR at hand where you changed that behavior?

yes I guess it was removed after this https://github.com/debezium/debezium-ui/pull/376

Maybe you have the UI task / PR at hand where you changed that behavior?

sure, lets discuss this


KOGITO-3656/KOGITO-5649: Support copy/paste integration with other spreadsheets / Support single/multiple cells highlight

JIRAs:

KOGITO-3656: [DMN Designer] New boxed expression editor - Support copy/paste integration with other spreadsheets
KOGITO-5649: [DMN Designer] New boxed expression editor - Support single/multiple cells highlight

Here's the live demo: karreiro.com/kogito-editors-java

01 rename column
We have name and data type for columns. however currently I am not able to rename any column. Is that related to this PR?

multiple cells selection
If I understand correctly from the gif, I should be able to select multiple cells (of my decision table for example) if I simply drag a rectangle with mouse.
If that is correct, I struggle to use this feature. Was able to select desired area in 1/10 attempts. The selection feature was in most cases even not started or it was stopped preliminary.
Is this dependent on some OS Mouse Speed settings? Is some keyboard key needed to use the selection feature?

03 render after paste
Try to paste some values into Relation expression, however not into [0, 0] cell. The UI will be not rendered with pasted values, however they will be already shown in the json presenter bellow.

04 function
If there is java function expression, and user tries to paste are bigger than single cell into class, the attached will happen.

Either no acttion should be taken or just single value from the copied area should be pasted I think. No context entries should appear in the expressions.

05 invocation
Very similar issue as 04

06 list
Very similar issue as 04

07 empty cells
Empty cells in the copied area behavior is different from google spreadsheets
Original content in DMN editor
|a|a|
|b|b|
|c|c|
Copied area
|1|1|
| | |
|2|2|
the result in DMN editor
|1|1|
|b|b|
|2|2|
the result in google spreadsheets
|1|1|
| | |
|2|2|

@karreiro I tried also to write some cypress test with t do sanity check of copy and paste, using this paste custom command [1], however I am not sure, what element should I locate/what element should consume the paste event. Could you advise?
[1]
https://gist.github.com/nickytonline/bcdef8ef00211b0faf7c7c0e7777aaf6#gistcomment-3305442

The (build) Kogito Tooling Editors Java check has failed. Please check the logs.

Thank you for the review @jomarko and @vpellegrino. I've fixed all issues mentioned above. Also, I've improved the selection mechanism (following the item 02 multiple cells selection), now it's easier to select multiple elements:

This PR is ready for the re-review. Thanks again for the feedback! 🚀

02_1
Paste into context with single entry causes all the generated entries has same name. Not sure what is the best solution here:

prevent such paste
generate unique context entries keys
keep it as it is

02_2
Please follow this scenario

create relation with two columns and single row
paste area of two columns and few rows
rows were added into relation what is perfect
try to insert row in the middle of new area, the issue is not all cells of the added row will be empty

02_4
I can still reproduce https://github.com/kiegroup/kogito-editors-java/pull/103#issuecomment-915833481

02_4

prepare relation with single column, few rows
select the rows
copy them: ctrl+c
insert column left
try to paste copied values into new column

Thanks for the review, @jomarko. I've answered each topic inline:

02_1 - As this is not something that blocks users and they are able to successfully rename rows. I've raised this Jira (KOGITO-5920) to fix it in another PR.

02_2 - This issue is already happening in the main branch. So, I've raised this Jira (KOGITO-5922) to fix it in another PR.

02_3 - Well spotted, thanks! It's fixed now.

02_4 - I cannot reproduce this issue in the most updated version of the editor. Is it still happening?

The live demo (in the PR description) is updated, and this PR is ready for the re-review.
Thanks again for the feedback!


fix: add webhook to prevent proposal create

Fix: https://github.com/bestchains/fabric-operator/issues/237

commit message not match


no_std support

With alloc now stable since 1.36 (released last month) it'd be nice to have this crate support no_std (perhaps behind a feature gate to keep compatibility with rust 1.31). My end-goal is to have the RSA crate working in no_std environments.

I agree, this would be great, I don't have any experience in turning things no_std compatible though, so happy to get some help with this.

Awesome, I'll get to work on this then.


Cannot read from frame header after Connect()

In reference to #203 ... I finally have a chance to get back to this. I uninstalled TwitchLib and websocket- sharp and then reinstalled the latest version of TwitchLib... to no avail:
6/16/2017 13:12:56|Fatal|WebSocket.<startReceiving>b__175_2:0|WebSocketSharp.WebSocketException: The header of a frame cannot be read from the stream.
                            at WebSocketSharp.WebSocketFrame.processHeader(Byte[] header)
                            at WebSocketSharp.WebSocketFrame.<>c__DisplayClass73_0.<readHeaderAsync>b__0(Byte[] bytes)
                            at WebSocketSharp.Ext.<>c__DisplayClass55_0.<ReadBytesAsync>b__0(IAsyncResult ar)

I added the TwitchLib project to my solution and referenced the project instead of the nuget package. No luck.
.NET version doesnt change anything, as usual.
I even passed my compiled program through my firewall.
Also, the program doesnt crash or anything, its simply that called Connect(); causes the previously described exception. What do.avi
I made a new issue since I was cannot reopen the old one (a collaborator closed it instead of myself).

Is it possible for you to try the bot on a different network (I assume you are trying it from a home network)? Everything I've read about this error points to an issue in the network.

No I dont really have a way of doing that :/ Is there a port that needs to be open or something that needs to be changed on my network for it to work properly?

Do you hit this error both in debugger and when you run the exe independent of VS? I'm reaching, but maybe try VS2015? I'm pretty much out of ideas, the error doesn't seem to have a hard fix judging by issues on websocksharp github repo.

Nothing at all happens when its ran outside of VS. If it connected or there was a connection error then something would show up in my event box. I'm also not able to get my program to output the exception to a log file, either.

do you know where the exception is thrown? if yes give the method the [HandleProcessCorruptedStateExceptions] attribute and use a try catch on it

I should've turned on logging in TwitchLib way ahead of time...
JsonConvert cant reflect a property's set routine if that routine is internal. This caused my saved Username value to be a non-null empty string, since I use JsonConvert to save and load my config. TwitchLib doesn't do simple verification on the string passed to see if its empty or null, causing it to successfully send to the server.
Empty strings always result in an Invalid NICK error . For some reason, an Invalid NICK error isnt properly caught by TwitchLib and ends up leading to the exception ive been getting for about a month now. I fixed the issue on my side by removing the internal access modifier from the property's set routine.
However, TwitchLib should at the very least do some simple verification on the username. I actually do this already like so:
public static string TwitchUsernamePattern => "^([a-zA-Z0-9][a-zA-Z0-9_]{3,25})$";

public static bool IsValidUsername(string username) => new Regex(TwitchUsernamePattern).Match(username).Success;

as Twitch usernames have to fulfill that regex completely in order for it to be a valid username (usernames cannot start with an underscore, must be at least 4 characters long, less than 25 characters long, and may contain alphanumeric characters)

The closed connection should be handled by websocketsharp and a disconnect event raised to the library itself, I would think. That being said, it never occurred to me to validate the twitch username, but I'll go ahead and add that. Sorry about the issue.


turbinia-gcs has static name

The turbinia-gcs resource is the pubsub topic used by Timesketch as a trigger to pull in output from Turbinia/GCS.   Since this is static, two Turbinia instances in the same project will have conflicts and deployments will fail if there is an instance running or this still exists from a previous instance.
We should find a way that this can use the infrastructure ID so that it is unique.  Presumably this will require some plumbing through to the Timesketch side so that it knows what the topic name is there too.

Fixed in #10. Closing.


add thruthy test to findCommentsInRaws to avoid it throwing

fixes #294

Coverage remained the same at 92.262% when pulling 68857ae5957c1b50df6f08fbd650a886e598aa16 on bugfix/issue-294 into 39bdb6d61e9aac86f28bed1772a23cc5aa3f7fdd on master.


Add back button to advancements page

 kikis2111 on Discord says

Only show button if accessing the advancements page through the inventory tab

 yarden.zamir on Discord says

I don't mind showing it even if you use the shortcut

 kikis2111 on Discord says

ok yeah i meant more so it takes you back to the right place when clicked, but yeah should take you back either way


Import via Web UI silently fails when new records violate an index constraint

My Environment

ArangoDB Version:       3.5.0
Storage Engine:              RocksDB
Deployment Mode:        Single Server
Deployment Strategy:   Manual Start
Configuration:               Simple basic setup with defaults
Infrastructure:               Own server
Operating System:        Ubuntu 18.04
Total RAM in your machine:        8Gb.
Disks in use:        SSHD
Used Package:              Built from source (no changes)

Component, Query & Data
Affected feature:
Import data into collection via web interface (aardvark)
AQL query (if applicable):
AQL explain (if applicable):
Dataset:
Simple records like this:
{
  "Name": {
    "ru": "Фильтр масляный двигателя",
    "en": "Engine oil filter"
  },
  "src": {
    "existru": {
      "lastcheck": 0,
      "id": "7"
    }
  }
}

Size of your Dataset on disk:
n/a
Replication Factor & Number of Shards (Cluster only):
n/a
Steps to reproduce

Log in to the Web UI (eg: localhost::8529 ), select your database, and create an empty document collection.
Set up a hash index on a collection with the "unique" option set
Import a JSON file into the collection which is either missing the values for the index, or have duplicate values

Problem:
The documents which violate the constraint are not getting imported. Eg, if the key of the index is missing then only one record will be imported, all others won't.
The UI gives no error message, or any kind of indication as to why the documents are not imported. Not even checking the network traffic reveals any information.
Expected result:
Provide an error message, something to the effect "document x was not imported due to unique constraint violation - in index xyz"

Hi @lacikawiz
Thanks for reporting this, we reproduce this internally and we will fwd your request internally
By the way, if you try to execute the import operation from arangoimp you will get a proper error message - something like:
2019-11-20T11:47:36Z [14825] WARNING [e5a29] at position 0: creating document failed with error 'unique constraint violated', offending document: {"_key":"356","_id":"test/356","_rev":"_ZmgcgBC--_","Nam1":"Omar"}

Best

Hi @lacikawiz,
Version 3.5.3, which includes a fix for this issue, has been released.
From the Changelog:

Fixed issue #10470: The WebUI now shows potential errors and details which
occured using _api/import (e.g. unique constraint violated).

Please find the latest release in the download section.


Add support in Core library to analyze Bicep files

The Core library should be able to translate Bicep files to ARM template JSON, pass translation to be analyzed, and have results returned. Tests should be added.
Child of #118

Already supported


Compability with PhpParser v5

Allow compatibility with nikic/php-parser v5
This is just a compatibility layer there is no BC

Closed in favor of #36


Forward OAuth Identity does not work for queries

What happened:
This plugin does not include Authorization header when it makes queries to an opensearch server despite Forward OAuth Identity being toggled on. This is indicated by this error:
Post "https://opensearch.example.com:9200/_msearch?max_concurrent_shard_requests=5": downstream error: 401 Unauthorized

What you expected to happen:
I expect the plugin to actually Forward OAuth Identity as it was configured to do. I suppose it is done by supplementing query requests with current user's access_token via Authorization HTTP header.
How to reproduce it (as minimally and precisely as possible):

Setup an Opensearch server
Login to your Grafana instance using an OpenID-Connect identity provider
Configure this plugin to use the opensearch server from p1 and toggle Forward OAuth Identity on
Use tcpdump to capture Grafana requests
Try executing a query via explore or a dashboard panel.
Use Wireshark or an alternative to analyze packet dump from p.4 and notice missing Authorization header in query requests.

Anything else we need to know?:
The request to get Opensearch version from plugin configuration page does actually come with the user's identity. Here is how this request looks in the packet capture:

And this is how a query request looks like:

As you can see, the second request comes without the header and thus it gets the 401 error from opensearch.
Another thing that I want to point out is that the Elasticsearch datasource plugin configured to use the same opensearch server in the same environment does actually work, I can see query results and no error. Here's how the Elasticsearch plugin performs the request:

Environment:

Grafana version: v11.3.0 (d9455ff7db)
OpenSearch version: 2.16.0
Plugin version: 2.20.0, 2.21.0 (tested both)
Identity Provider: Keycloak v25.0.2

Hi @anemyte can you try updating your plugin to the latest version, 2.21.1 and see if that changes if the headers are being passed in get_version and queryData? Thanks!

@idastambuk Well, I don't see any changes with 2.21.1. "get_version" still passes the header and works, while querying still doesn't. Here's the query request once again:

@idastambuk Do you need any help in setting up the environment to work on this? I understand it can be a little too hard to launch and configure all the services. I could write a docker-compose file for you to spin up the environment locally (if you have docker installed, of course).

Hi @anemyte , I'm currently taking a look at this, but to help me figure out what path to investigate, do you have the feature flag openSearchBackendFlowEnabled set to true? If you're on hosted grafana it should be on by default. (For context we've been migrating Opensearch to backend queries, and are planning on deprecating the frontend path). If you're not sure, if you send me a screenshot of network information for the frontend request and I can figure it out.

Also, a docker file to spin up the test environment would be very helpful, thanks!

@iwysiu I have a self-hosted Grafana and I'm pretty sure I did not touch that feature toggle, so it should be on default (not really know how to check for sure). There is an option in datasource settings called "Access" and it is set to "Server", I guess this must be the "backend flow".
Anyways, here's the promised docker compose: https://github.com/anemyte/opensearch-plugin-test-env
It should be relatively simple to launch (just one command) but let me know if there are problems with it.

Hi @anemyte we just released v2.21.5  that should take care of the headers. Let us know if this works for you.
Thanks a lot for the repro repository, it was invaluable!


Allowing to define flags in the URL

This commit adds support for a new flags parameter in the URL, so that it is possible to distinguish different environments which contain the same browser, and make sure the full campaign is executed on each environment.

@divdavem the feature seems nice. You can go on.

@benouat Thank you for your review


Fix group titles

https://github.com/stolostron/backlog/issues/20505
Fixes Network {{0}} section titles and changes Worker pool # titles to use externalized string.

/cc @jeswanke


Updated V2 JSON schema to match latest responses

FIXED: bc-ferries-api-v2-schema.json - correctly validates latests response data
ADDED: bc-ferries-api-v2-capacity-schema.json - Schema for the /v2/capacity endpoint
ADDED: bc-ferries-api-v2-capacity-schema.json  - Schema for the v2/noncapacity endpoint

Thanks for updating this, lgtm.


Add chadhellyea as CoP member

Resolves #337

/approve
/assign @sabre1041

@pabrahamsson can you also add as a member of rhel-edge-automation-arch? It was added as a comment which you might have missed

@pabrahamsson can you also add as a member of rhel-edge-automation-arch? It was added as a comment which you might have missed

My bad, updated PR incoming

/lgtm


Fixed etag bug

This PR is related to https://github.com/Azure/azure-sdk-for-python/issues/8490 intended to fix a small etag bug. Initially the etag variable was empty since it was not storing the appropriate response etag. Two additional unit tests were added.

I just noticed we have the same issue in lease_async.py, can you also fix that in this pr ^_^ sorry that I didn't describe it in the github issue

I just noticed we have the same issue in lease_async.py, can you also fix that in this pr ^_^ sorry that I didn't describe it in the github issue

Done :)


help with seperating vocals

this the error i got while i tried to seperate vocals from a song:You Only Live Once - The Strokes - 2023 Cover Version (320 kbps).mp3.reformatted.wav->Traceback (most recent call last):
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\librosa\core\audio.py", line 155, in load
context = sf.SoundFile(path)
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\soundfile.py", line 655, in init
self._file = self._open(file, mode_int, closefd)
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\soundfile.py", line 1213, in _open
raise LibsndfileError(err, prefix="Error opening {0!r}: ".format(self.name))
soundfile.LibsndfileError: Error opening 'D:\voice\Retrieval-based-Voice-Conversion-WebUI\TEMP/You Only Live Once - The Strokes - 2023 Cover Version (320 kbps).mp3.reformatted.wav': System error.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\infer-web.py", line 370, in uvr
pre_fun.path_audio(
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\infer_uvr5.py", line 64, in path_audio
) = librosa.core.load(  # 理论上librosa读取可能对某些音频有bug，应该上ffmpeg读取，但是太麻烦了弃坑
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\librosa\util\decorators.py", line 104, in inner_f
return f(**kwargs)
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\librosa\core\audio.py", line 174, in load
y, sr_native = __audioread_load(path, offset, duration, dtype)
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\librosa\core\audio.py", line 198, in _audioread_load
with audioread.audio_open(path) as input_file:
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\audioread_init.py", line 111, in audio_open
return BackendClass(path)
File "D:\voice\Retrieval-based-Voice-Conversion-WebUI\runtime\lib\site-packages\audioread\rawread.py", line 62, in init
self._fh = open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'D:\voice\Retrieval-based-Voice-Conversion-WebUI\TEMP/You Only Live Once - The Strokes - 2023 Cover Version (320 kbps).mp3.reformatted.wav'

Retrieval-based-Voice-Conversion-WebUI and RVC-WebUI are two different projects. you can contact the repository Retrieval-based-Voice-Conversion-WebUI you using.
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/issues
however, you probably have the wrong path. on windows, the path separator is \ not /.
also, paths containing multibyte characters or spaces can cause problems.


Exceptions thrown by waitFor timeout callback do not get propagated

Any exception thrown by the onWaitTimeout callback in waitFor will not be propagated. This happens because there is a finally block which contains a return statement which prevents the error from being thrown.

Create a fix PR: https://github.com/n1k0/casperjs/pull/1183


Redesign edit profile page

Initial rebased branch combining both frontend with discrete commits is here:
https://github.com/johngian/mozillians/commits/profile-ui-latest-rebased

I squashed all the UI to one commit since there was a single bug for the frontend stuff. Kept all the commit messages to describe the functionality.

@akatsoulas Do you think that I should also squash 3c465235630b3fc8b31db1a415c1744aa35d92dd with 6cdbcf63ca3f42dce84f1a7be77e0846f433e1ba to have a single commit for the backend?

@akatsoulas @comzeradd Please take a look to see if something went wrong in the rebase because there where many conflicts.

@johngian makes sense to me

PR still has some issues. Some of them can be tackled while QA works on updating the tests that gives us time to do some polishing. The rest of them are blocking this PR. FYI most of the blockers are already mentioned in previous reviews.
Some things might also be broken because of the rebasing that's why we need to take a look.

Blocking

* TODO Issue with privacy buttn in external accounts save
** TODO JS buttons doesn't initialize hidden privacy input
*** Steps to reproduce:
*** Go to external accounts
*** Add >2 external accounts
*** Inspect hidden privacy element
*** Default value = " "
* TODO Wrong position for privacy errors http://pix.toile-libre.org/upload/original/1441800668.png
* TODO Delete account button is clickable by default
** Steps to reproduce
*** Edit your profile, go to delete section
*** Delete button is clickable
*** Toggle the value
*** Now the button is not clickable
* TODO Location form needs some love (registration) - too much space http://pix.toile-libre.org/upload/original/1441795455.png

Non blocking

* TODO Add messages on profile creation to inform user to fill the profile
* TODO Persona button still misaligned (compare with prod)
* TODO Front page vertical line/alignment changed (need to double check UI with more data)
* TODO Misaligned (view groups, functional areas) http://pix.toile-libre.org/upload/original/1441793788.png
* TODO Fix UI for link contribution story
* TODO Fix UI for country/region/city
* TODO Fix next per section not per tab
* TODO Contribution section has different types of textboxes http://pix.toile-libre.org/upload/original/1441794640.png

I'm pushing small commits on branch comzeradd:profile-ui-2 that fix each of the pending issues.

Updated branch comzeradd:profile-ui-3

@akatsoulas Added latest changes and updated notes above. Do you want take a look or should I merge ?

@akatsoulas bump

Haven't tested this. The changes in the back-end look good code-wise. Since you have reviewed the UI multiple times, I skipped it completely.  Having said that, I still have a pending comment on profile_edit.js. For me it seems to be working fine without those lines.
r+wc :beers: :rocket:  really nice job.

I've tested this branch and it seems to be OK in terms of functionality.
@comzeradd Any comments about @tasos comment?

The specific line is needed for the mobile view to display properly in cases where a user opens a url with a location.hash (eg. #groups) that it's not visible on mobile. Otherwise user gets an empty page.

After doing some testing it seems that the user gets the correct page (eg. #mygroups). The only problem is that it's collapsed. If you click the Show all settings it correctly expands the mygroups section. This happens without those lines. If we leave those lines there and you try to open the mygroups hash then you get an open page starting from the basic info.

Yes, that's the intended behavior. A user should never get an empty page with just a reveal button. This js code ensures that profile and location settings are always visible on mobile.

I agree, the user should never get a page with an expand button. The solution is to have the page expanded to the correct hash and not collapsed. With the solution that you are proposing to this PR the user gets all the profile page from the top, which is the basic info, and not the correct hash (eg #mygroups).

Yes, the user should always get the mobile view of Settings regardless on how he landed there. Otherwise he'll struggle to realize how to get to Profile settings without the sidebar.

@johngian we reviewed the registration page with @ppapadeas and it just needs a minor fix for now.

I am not quite sure we are talking about the same thing. Probably, I am not understanding something right. I am going to re-check this thoroughly. That being said, one last question, can't we use a media selector for this?

On mobile view we don't use location.hash to amend the view. So my take is that we should ignore it even when it's present. That's why unfortunately we can't use a media selector to do this. We can only do this in js.


Provide a way to know the major AND minor version of Python being tested

Just major is not enough as we start to include tools that can only work in e.g. >=3.6 (like Black).

Will be possible with this #1569 (a PR is in progress).
For some reason, a number of the CI tests are falling over.
Closing in favor of #1569


Do not sync nested collections from Model#save.

Should fix critical bug #858.  After looking at more radical change in PR #861 to remove nested operation sync on update, @particlebanana suggested just targeting the issue from the model.  This passes all adapter tests that sails-memory currently passes using the waterline master branch and all vanilla waterline tests.
The approach is simply to remove attributes that are collections prior to passing the cloned model values to ParentCollection.update.

All waterline-orientdb tests pass when I run against this branch, which encourages me.
It would be good to see a test being added to this PR to see exactly the use case that this PR fixes (as well as to prevent future regressions).

@dmarcelino added!  With this PR, Model#save does not add, remove, or update records in a nested collection–you must use add and remove with ids or Collection#update directly.  The reason for this is that the nested update functionality is broken, and fixing it outright would be hellish.  Although it's not obvious from the test I wrote, here's the use-case that is broken:
Persons.findOne(666).populate('friends', {id: 42})
.then(function(person) {

    person.friends.remove(42);

    person.save(function() {

        /* now I have no friends,
         * since nested operations assumed
         * that this person had only one friend to begin with (friend 42),
         * which is not necessarily true.
         */
    });
});

@devinivy, I'm good with this :white_check_mark:
We probably want to make sure this change is mentioned on the release notes, because although it prevents a huge bug it may break the behaviour for some folks.
@particlebanana, @tjwebb, @rwoverdijk, @randallmeeker any concerns before we push the big green merge button?

I'd love for @particlebanana to peek at this since he was involved in the conversations around my first PR to fix this issue.  At the same time, this fix is time sensitive, as it is an issue of data integrity.

Hey @devinivy this looks good. It worked by accident in the first place so this can just be a patch release. If you guys merge this stuff just shoot me an email and I can do an npm push today if it's ready. We have a good set of changes and it's been a bit since the last release.

I appreciate it, @particlebanana!


Added support for experiment execution on clusters with no shared disk

The Peel framework assumes that all nodes within a cluster share the same disk for experiment execution.
We at FG INET together with Niklas Semmler wanted to use Peel to execute our experiments in an environment where all nodes use their one dedicated disks. We added support for clusters with no shared disk by using rsync to copy the 'systems' directory in an experiment bundle to all slave nodes configured in hosts.conf file. We added a new parameter sytem.default.config.noSharedDisk to reference.peel.conf to make this feature configurable. The default value is false if it is not present or set in application.conf file. In this case the behavior of Peel is still the same. If the parameter is set in application.conf the systems folder will be copied remote hosts.
Feedback from the Peel team is very welcome.

Thanks for the PR.
I left some comments in the code, maybe you can address them. We will then test your implementation on our clusters and merge.
PS. I will probably start a "CONTRIBUTORS" file with the next release. Would you mind sending me a full name and an email in case you can to be included as a contributor?

Squashed and merged in 6a32b1072730b1435528c909e596a0f24c0d2973.
Thanks again!

Thanks indeed.


[Request]: Storage for download Genshin Impact in PC

Is your request related to a problem?
No
How is the feature request related to the problem?
NO
Describe your proposed solution
Can i download genshin impact although my storage not 150 GB*
Describe alternatives you've considered
*Can i download genshin impact although my storage not 150 GB because i just have 120 GB in my storage
Additional context
No response

Because Genshin takes that much space to be installed.  Our launcher can't install files needed for the games to work in non-existing space. This is true for each and every game.
I can't say that you'll have much luck with this, but you can try using: https://github.com/bagusnl/Genshin-MinimalInstaller
This thread is locked.


Optimize ripgrep glob patterns for file search

For text search we rewrite include globs so that cases like */foo don't have to search the whole workspace. We should do this for file search too. Important for workspaceContains and findFiles.
https://github.com/microsoft/vscode/blob/b6a2e697b85dbba68c7255e704580cffc3305c9b/src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts#L380-L388

@roblourens any idea if this is still a problem?

Yes


WIP: add format.output.json.envelope config

Related: aiven/aiven-kafka-connect-gcs#81
I'm not a java developer, I appreciate your feedback on how I can improve the code. Thank you!

Addressed in #92 and is in the latest release


Provide build artifact assembled with JDK8

Is your feature request related to a problem? Please describe
If OpenSearch plugin has a dependency on classes from main repository this set the lower supported JDK version for the plugin to be same as JDK that used to build the plugin. This causes a problem as OpenSearch declares support for JDK8, but is built with JDK11. If I want to build my plugin with JDK8 I cannot do it, in build time I'm getting errors similar to one below:
java.lang.UnsupportedClassVersionError: org/opensearch/gradle/plugin/PluginBuildPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Describe the solution you'd like
Build OpenSearch with multiple JDK and provide ability to set a dependency on a build artifact for each JDK separately (or at least for JDK8 in this case).
Describe alternatives you've considered
Officially declare that the lowest supported version of JDK for plugins may be different from one for OpenSearch itself.
Additional context
Problem arises for kNN plugin in a context of recent changes for 1.3.0 release.

Moving this to OpenSearch. I had started on this in https://github.com/opensearch-project/OpenSearch/pull/2300 but I am not sure it's worth the effort as we plan to deprecate Java 8 in 2.0.


What about add a parameter index to click and other functions?

click and other events implemented  in CasperJs are using document.querySelector to get one element, but sometimes It's impossible to query one element by using CSS3 selector.
So I wonder if you are planning to add a new parameter or function to let callers can obviously passing the index. I have added this functionality to my local casperjs clone.
If you and others think this make sense, I will send the PR.

There is broad support for CSS3 selectors now, so current versions of Phantom should support that, including :nth-last-child.
Please try that.


[web]: make it possible to specify a port as an argument

Use case
I want to embed a Flutter web app into an iframe. But every time I start the app, it uses a different port, which complicates my use case. Besides, in a server environment security-wise it would be desirable to keep only a known set of ports open.

Proposal
Make it possible to specify a port as an argument: flutter run -d chrome --port 8989

flutter run -d chrome --web-port=8989
see: flutter run -d -h -v:
Usage: flutter run [arguments]
-h, --help                                   Print this usage information.
    --debug                                  Build a debug version of your app (default mode).
    --profile                                Build a version of your app specialized for performance profiling.
    --release                                Build a release version of your app.
    --flavor                                 Build a custom app flavor as defined by platform-specific build setup.
                                             Supports the use of product flavors in Android Gradle scripts, and the use of custom Xcode schemes.

    --trace-startup                          Trace application startup, then exit, saving the trace to a file.
    --verbose-system-logs                    Include verbose logging from the flutter engine.
    --route                                  Which route to load when running the app.
    --web-hostname                           The hostname to serve web application on.
                                             (defaults to "localhost")

    --web-port                               The host port to serve the web application from. If not provided, the tool will select a random open port on the host.
    --[no-]web-browser-launch                Whether to automatically launch browsers for web devices that do so. Setting this to true allows using the Dart debug extension on Chrome and other
                                             browsers which support extensions.
                                             (defaults to on)

@jonahwilliams If we run flutter for web from the command line like this, then how do we open the DevTools widget inspector page? Typically I open it using the VS code plugin, but when running from the command line I'm stuck on how to get it open. Thanks!


Improved streaming updates on overlaid plots

Previously the stream handling code in the bokeh backend was not correctly handling a condition where multiple subplots were attached to different streaming sources. In those cases it would fall back to sending a full update of the data for some subplots. It now appropriately skips updates to a streaming plot when it isn't being triggered.
Additionally it now forces the ranges to be updated in streaming mode, which previously caused issues when running a plot reset.

Looks good. Merging.


sshd container image for ARM64

Hello,
I'm using withAccessToHost() and Testcontainers.exposeHostPorts() and I realized the sshd container this functionality depends on is built for Intel only. Would it be possible to create also ARM64 build? I see Ryuk now has ARM builds too. I could help with that, but I don't know how exactly is the sshd container image build. Thank you for this awesome library!

hi @kiview,
thanks for a quick response! I actually checked the repo. There is just a Dockerfile definition, no script to actually build a container image out of it. For multiplatform images, the Dockerfile is usually intact. You just build it differently. dockerx and friends. I don't know how this is built. Maybe @bsideup built it manually on his local? The last push was 2 years ago and I can imagine there wasn't much pressure to automate it.
I could try to contribute a GitHub Action file to automate it if you are interested in that.

Something like this should be sufficient if you are OK with just the latest tag in DockerHub: https://github.com/docker/build-push-action/blob/master/docs/advanced/multi-platform.md It's super simple, I guess a released version of TestContainers should not depend on latest.
This looks like a pretty good intro how to do it properly: https://dev.to/cloudx/multi-arch-docker-images-the-easy-way-with-github-actions-4k54

We are using GHA to build the multi-arch image in the case of Ryuk:
https://github.com/testcontainers/moby-ryuk/blob/master/.github/workflows/build-docker-image.yml

that looks good. let me know if I can help with that in any way.

@jerrinot your contribution is very welcome. I think it make sense to add a GHA to https://github.com/testcontainers/sshd-docker

@eddumelendez: I sent a pull request
Let me know what you think. Cheers!

new version should be updated here

it's also hardcoded in the docs: https://github.com/testcontainers/testcontainers-java/blob/737865fb964f6fd5dd84ff6dbe8ca42ab9efdc53/docs/features/configuration.md?plain=1#L56

The image is published now 🎉  @jerrinot please give it a try (with the mentioned configuration property)
https://hub.docker.com/layers/232132304/testcontainers/sshd/1.1.0/images/sha256-7879c6c99eeab01f1c6beb2c240d49a70430ef2d52f454765ec9707f547ef6f1?context=repo

@bsideup thanks! I did a quick test an there appears to be a problem:

org.testcontainers.containers.ContainerLaunchException: Container startup failed

	at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:345)
	at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:326)
	at org.testcontainers.containers.GenericContainer.starting(GenericContainer.java:1063)
	at org.testcontainers.containers.FailureDetectingExternalResource$1.evaluate(FailureDetectingExternalResource.java:29)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
	at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
	at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88)
	at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:338)
	... 22 more
Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container
	at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:537)
	at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:340)
	at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
	... 23 more
Caused by: java.io.IOException: There was a problem while connecting to localhost:58384
	at org.testcontainers.shaded.com.trilead.ssh2.Connection.connect(Connection.java:755)
	at org.testcontainers.containers.PortForwardingContainer.createSSHSession(PortForwardingContainer.java:47)
	at org.testcontainers.containers.PortForwardingContainer.getSshConnection(PortForwardingContainer.java:27)
	at org.testcontainers.containers.PortForwardingContainer.start(PortForwardingContainer.java:73)
	at org.testcontainers.containers.GenericContainer.applyConfiguration(GenericContainer.java:836)
	at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:374)
	... 25 more
Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
	at org.testcontainers.shaded.com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:93)
	at org.testcontainers.shaded.com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:231)
	at org.testcontainers.shaded.com.trilead.ssh2.Connection.connect(Connection.java:711)
	... 30 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
	at org.testcontainers.shaded.com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:415)
	at org.testcontainers.shaded.com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:756)
	at org.testcontainers.shaded.com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:470)
	at java.base/java.lang.Thread.run(Thread.java:833)

Chances are I have something wrong in my test setup. I will investigate it later.

ok, even the ExposedHostTest is failing with the new sshd container. Chances are the new Alpine base image has a newer sshd with a stricter configuration. The ssh client in TestContainer is old and not really maintained. The latest release in Maven Central is from 2017
I will investigate it further, but as of now I see 2 options:
1: Customize the sshd container to make sshd more permissive.
2. Change ssh client impl. There are various forks of the trilead library. It seems e.g. Jenkins uses this: https://mvnrepository.com/artifact/org.jenkins-ci/trilead-ssh2/trilead-ssh2-build-217-jenkins-17

We are using the Jenkins fork :)

@bsideup I think you are using the Glassfish fork, arent you?
I tried to switch the client impl to JSch: https://github.com/testcontainers/testcontainers-java/commit/5ede16b2e56fda7c12d753dafe8ec79262b22b13
It's almost working. Except the test where it's binding to a port 80. I suspect it's due a newer ssh version not allowing to forward a privileged port (by default?) To be continued.

@bsideup: this works for me: https://github.com/testcontainers/testcontainers-java/pull/5486

Thanks, @jerrinot. While it might make sense to switch to a better-maintained SSH client library, I am in favor of first getting it working through changing the sshd config as done in #5486.


resolves #1168 Studio: FAQ UI dedicated to users without advanced tech knowledge

FAQ UI in Tock Studio
See #1168
Creation of the FAQ Screen to manage easily the build of FAQ bots.
A FAQ is a representation of Frequently Asked Questions which means with a question/uterrances there is a specific answer.
There are two screens :

FAQ Training :
A dedicated screen to manage the sentences training for instance if sentences are unknown.
Features :

Text search filtering

FAQ / intention selection

Validate / delete

Show conversation sample detail

FAQ Content Management :
Screen to manage the creation/update of a Frequently Asked Question.
The features :

Create/Update/Delete a FAQ

Ability to search and filter on the multiple created FAQ (active,inactive,undetermined)

the whole  #screen

Sentences / Uterrances

Answer  :

It is possible to create a Story, an Intent and all the classifiedSentences in just one screen.

Late PR, the most recent is https://github.com/theopenconversationkit/tock/pull/1359


algorithm "get from cache" should be prior to "get from peer"

HKube micro-service
worker
Describe the bug
the algorithm should check if the data needed is in cached before reaching to get the data from peer

[ ] python
[ ] java
[ ] node

fixing it will fix  #912 also therefore I'm closing it

@golanha @NassiHarel Can this issued be moved to QA?

@yehiyam Yes


Fixed integration tests for UploadedFile, Uri

After php-http/psr7-integration-tests finally added some tests for UploadedFile I checked if we are compatible and found out that our test setup of the UploadedFile was wrong, which ended in errors running PHPUnit.
Now the tests should be running fine.
Edit:
With latest updates Uri integration tests were failing too.

Coverage remained the same at 97.786% when pulling 9aeef282354e8b4206f785f7908edb32a41d5106 on danopz:uploadedfile-integration-tests into 987b9cfdf8f0a176774d31c730c372b63e464a73 on slimphp:master.

@akrabat would you may have a look? This one makes other PRs red

I added /.tmp to .gitignore.


fixes clean shutdown bug in manager

This commits fixes #4209 by shutting down fate before unassigning any tablets on which fate depends.

I took a look at this and my main thought is I don't think this solves the problem all the way because what happens if the Tservers are all offline or can't be reached due to something like a network issue?

Made an update in 5e47c1a to not wait forever.  Realized in addition to tservers that other things like DFS and ZK could make fate operations running in the background threads hang. So the changes wait a bit, giving thing running in background threads a chance to wind down.