Retry Filter receives 200 OK response status code even on exception/error responses

Bug Description:
I am using RetryGatewayFilterFactory to re-try the request in case of certain error codes like- BAD_REQUEST, INTERNAL_SERVER_ERROR, BAD_GATEWAY, NOT_FOUND.
When SCG is unable to reach the destination service, it receives "java.net.ConnectException" and hence tries to re-attempt the request as per the number of "retries" configured for this "route".
But, I could see that RetryGatewayFilterFactory receives a "200 OK" as status code even though the request failed because of "java.net.ConnectException".
I believe that the response status code should not be "200 OK" as the request has failed.
Please look in to this.
I have attached the sample project for you reference.
scg-demo.zip

Hi,
Could you please look into this issue.
As its affecting the behavior of our product which is based on SCG.

Have you tried setting the exceptions property?

I tried adding the "exceptions" property in the route as below:
     routes:        # RE-TRY FILTER        - id: retry_route          order: 1          uri: http://localhost:32068/          predicates:            - Path=/nef/**          filters:            - name: CustomRetry              args:                retries: 5                methods: GET, POST, PUT, DELETE, PATCH                statuses: BAD_REQUEST, INTERNAL_SERVER_ERROR, BAD_GATEWAY, NOT_FOUND                exceptions: java.net.ConnectException
But, the issue still persists.
I have attached the logs for your reference.
You can see a line as below in the logs:
2020-04-20 20:07:24.905  INFO 28456 --- [ctor-http-nio-4] c.e.s.f.CustomRetryGatewayFilterFactory  : Response statuscode: 200 OK

With your project, I deleted application.properties and my application.yml looks like
spring:
  application:
    name: apigateway
  cloud:
    gateway:
      routes:
       # RE-TRY FILTER
       - id: retry_route
         order: 1
         uri: http://localhost:32068/
         predicates:
           - Path=/nef/**
         filters:
           - name: Retry
             args:
               retries: 5
               methods: GET, POST, PUT, DELETE, PATCH
               statuses: BAD_REQUEST, INTERNAL_SERVER_ERROR, BAD_GATEWAY, NOT_FOUND
               exceptions: java.net.ConnectException
logging:
  level:
    org.springframework.cloud.gateway: TRACE
server:
  port: 8089

I see in the logs
2020-04-20 14:59:25.141 TRACE 8680 --- [or-http-epoll-2] o.s.c.g.f.f.RetryGatewayFilterFactory    : Entering retry-filter
2020-04-20 14:59:25.150 TRACE 8680 --- [or-http-epoll-2] o.s.c.g.filter.RouteToRequestUrlFilter   : RouteToRequestUrlFilter start
2020-04-20 14:59:25.192 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 0
2020-04-20 14:59:25.193 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations false, iteration 0, configured retries 5
2020-04-20 14:59:27.361 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is retryable io.netty.channel.AbstractChannel$AnnotatedConnectException{cause=java.net.ConnectException}, configured exceptions [class java.net.ConnectException]
2020-04-20 14:59:27.361 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : retryableMethod: true, httpMethod GET, configured methods [GET, POST, PUT, DELETE, PATCH]
2020-04-20 14:59:27.362 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.filter.RouteToRequestUrlFilter   : RouteToRequestUrlFilter start
2020-04-20 14:59:27.365 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 1
2020-04-20 14:59:27.365 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations false, iteration 1, configured retries 5
2020-04-20 14:59:29.275 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is retryable io.netty.channel.AbstractChannel$AnnotatedConnectException{cause=java.net.ConnectException}, configured exceptions [class java.net.ConnectException]
2020-04-20 14:59:29.276 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : retryableMethod: true, httpMethod GET, configured methods [GET, POST, PUT, DELETE, PATCH]
2020-04-20 14:59:29.276 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.filter.RouteToRequestUrlFilter   : RouteToRequestUrlFilter start
2020-04-20 14:59:29.283 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 2
2020-04-20 14:59:29.284 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations false, iteration 2, configured retries 5
2020-04-20 14:59:29.660 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is retryable io.netty.channel.AbstractChannel$AnnotatedConnectException{cause=java.net.ConnectException}, configured exceptions [class java.net.ConnectException]
2020-04-20 14:59:29.661 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : retryableMethod: true, httpMethod GET, configured methods [GET, POST, PUT, DELETE, PATCH]
2020-04-20 14:59:29.661 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.filter.RouteToRequestUrlFilter   : RouteToRequestUrlFilter start
2020-04-20 14:59:29.667 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 3
2020-04-20 14:59:29.667 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations false, iteration 3, configured retries 5
2020-04-20 14:59:30.035 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is retryable io.netty.channel.AbstractChannel$AnnotatedConnectException{cause=java.net.ConnectException}, configured exceptions [class java.net.ConnectException]
2020-04-20 14:59:30.035 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : retryableMethod: true, httpMethod GET, configured methods [GET, POST, PUT, DELETE, PATCH]
2020-04-20 14:59:30.036 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.filter.RouteToRequestUrlFilter   : RouteToRequestUrlFilter start
2020-04-20 14:59:30.041 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 4
2020-04-20 14:59:30.042 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations false, iteration 4, configured retries 5
2020-04-20 14:59:30.367 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is retryable io.netty.channel.AbstractChannel$AnnotatedConnectException{cause=java.net.ConnectException}, configured exceptions [class java.net.ConnectException]
2020-04-20 14:59:30.367 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : retryableMethod: true, httpMethod GET, configured methods [GET, POST, PUT, DELETE, PATCH]
2020-04-20 14:59:30.367 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.filter.RouteToRequestUrlFilter   : RouteToRequestUrlFilter start
2020-04-20 14:59:30.369 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 5
2020-04-20 14:59:30.369 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations true, iteration 5, configured retries 5
2020-04-20 14:59:30.392 ERROR 8680 --- [or-http-epoll-3] a.w.r.e.AbstractErrorWebExceptionHandler : [0c4d3c41-1]  500 Server Error for HTTP GET "/nef/1"

io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/<IP_ADDRESS>:32068
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
	|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ HTTP GET "/nef/1" [ExceptionHandlingWebHandler]
Stack trace:
Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
	at io.netty.channel.unix.Errors.throwConnectException(Errors.java:124) ~[netty-transport-native-unix-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.unix.Socket.finishConnect(Socket.java:243) ~[netty-transport-native-unix-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:672) [netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:649) [netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:529) [netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:465) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

This statement proves it is working
2020-04-20 14:59:30.367 TRACE 8680 --- [or-http-epoll-3] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is retryable io.netty.channel.AbstractChannel$AnnotatedConnectException{cause=java.net.ConnectException}, configured exceptions [class java.net.ConnectException]

Hi @spencergibb ,
The issue that I am trying to highlight is with respect to the "status code" of the Response object being "200 OK" even in case of "java.net.ConnectException". Even though SCG was not able to reach the destination, it is giving the status code of Response object as "200 OK" which is not the expected behavior.
In our product, we are capturing the response metrics based on the Response Status code. Since, SCG is giving "200 OK" as the status code even in case of Exceptions(Example- ConnectException), our response metrics is not reflecting the correct data.
This issue can be observed in any filter and not just in Retry filter. Here, i have attached another sample project which has a PostGatewayFilter. In this filter as well, I can see the "status code" of Response object as "200 OK" in case of "ConnectException".
scg-demo-v0.1.zip
Below are the logs:

2020-04-21 19:00:37.402  INFO 28436 --- [           main] com.example.scgdemo.ScgDemoApplication   : Started ScgDemoApplication in 17.632 seconds (JVM running for 18.268)
2020-04-21 19:00:48.164 DEBUG 28436 --- [ctor-http-nio-2] io.netty.buffer.AbstractByteBuf          : -Dio.netty.buffer.checkAccessible: true
2020-04-21 19:00:48.164 DEBUG 28436 --- [ctor-http-nio-2] io.netty.buffer.AbstractByteBuf          : -Dio.netty.buffer.checkBounds: true
2020-04-21 19:00:48.166 DEBUG 28436 --- [ctor-http-nio-2] i.n.util.ResourceLeakDetectorFactory     : Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@6732a062
2020-04-21 19:00:48.191 DEBUG 28436 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] New http connection, requesting read
2020-04-21 19:00:48.192 DEBUG 28436 --- [ctor-http-nio-2] reactor.netty.channel.BootstrapHandlers  : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] Initialized pipeline DefaultChannelPipeline{(BootstrapHandlers$BootstrapInitializerHandler#0 = reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler), (reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
2020-04-21 19:00:48.200 DEBUG 28436 --- [ctor-http-nio-2] io.netty.util.Recycler                   : -Dio.netty.recycler.maxCapacityPerThread: 4096
2020-04-21 19:00:48.200 DEBUG 28436 --- [ctor-http-nio-2] io.netty.util.Recycler                   : -Dio.netty.recycler.maxSharedCapacityFactor: 2
2020-04-21 19:00:48.200 DEBUG 28436 --- [ctor-http-nio-2] io.netty.util.Recycler                   : -Dio.netty.recycler.linkCapacity: 16
2020-04-21 19:00:48.200 DEBUG 28436 --- [ctor-http-nio-2] io.netty.util.Recycler                   : -Dio.netty.recycler.ratio: 8
2020-04-21 19:00:48.226 DEBUG 28436 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] Increasing pending responses, now 1
2020-04-21 19:00:48.231 DEBUG 28436 --- [ctor-http-nio-2] reactor.netty.http.server.HttpServer     : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@17257f7
2020-04-21 19:00:48.244 DEBUG 28436 --- [ctor-http-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter    : [411b0e23-1] HTTP GET "/nef/"
2020-04-21 19:00:48.268 DEBUG 28436 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping   : Route matched: route1
2020-04-21 19:00:48.269 DEBUG 28436 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping   : Mapping [Exchange: GET http://localhost:8089/nef/] to Route{id='route1', uri=http://localhost:32068/, order=1, predicate=Paths: [/nef/**], match trailing slash: true, gatewayFilters=[], metadata={}}
2020-04-21 19:00:48.269 DEBUG 28436 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping   : [411b0e23-1] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@1e7bc200
2020-04-21 19:00:48.270 DEBUG 28436 --- [ctor-http-nio-2] o.s.c.g.handler.FilteringWebHandler      : Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@6c1cfa53}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@fb2e3fd}, order = -2147482648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@696b4a95}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@61bcbcce}, order = 0], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@4d68b571}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.config.GatewayNoLoadBalancerClientAutoConfiguration$NoLoadBalancerClientFilter@6232ffdb}, order = 10100], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@6af91cc8}, order =<PHONE_NUMBER>], [GatewayFilterAdapter{delegate=com.example.scgdemo.filters.PostGatewayFilter@6468a7b6}, order =<PHONE_NUMBER>], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@2f860823}, order =<PHONE_NUMBER>], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@52b06bef}, order =<PHONE_NUMBER>]]
2020-04-21 19:00:48.282 DEBUG 28436 --- [ctor-http-nio-2] c.e.scgdemo.filters.PostGatewayFilter    : Entering PostGatewayFilter
2020-04-21 19:00:48.285  INFO 28436 --- [ctor-http-nio-2] c.e.scgdemo.filters.PostGatewayFilter    : Response statuscode: 200 OK
2020-04-21 19:00:48.286 DEBUG 28436 --- [ctor-http-nio-2] c.e.scgdemo.filters.PostGatewayFilter    : Exiting PostGatewayFilter
2020-04-21 19:00:48.331 DEBUG 28436 --- [ctor-http-nio-2] r.n.resources.PooledConnectionProvider   : Creating a new client pool [PoolFactory {maxConnections=2147483647, pendingAcquireMaxCount=-1, pendingAcquireTimeout=0, maxIdleTime=-1, maxLifeTime=-1, metricsEnabled=false}] for [localhost:32068]
2020-04-21 19:00:48.346 DEBUG 28436 --- [ctor-http-nio-3] r.n.resources.PooledConnectionProvider   : [id: 0x4592472d] Created a new pooled channel, now 1 active connections and 0 inactive connections
2020-04-21 19:00:48.349 DEBUG 28436 --- [ctor-http-nio-3] reactor.netty.channel.BootstrapHandlers  : [id: 0x4592472d] Initialized pipeline DefaultChannelPipeline{(BootstrapHandlers$BootstrapInitializerHandler#0 = reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler), (reactor.left.httpCodec = io.netty.handler.codec.http.HttpClientCodec), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
2020-04-21 19:00:49.379 DEBUG 28436 --- [ctor-http-nio-3] a.w.r.e.AbstractErrorWebExceptionHandler : [411b0e23-1] Resolved [AnnotatedConnectException: Connection refused: no further information: localhost/<IP_ADDRESS>:32068] for HTTP GET /nef/
2020-04-21 19:00:49.380 ERROR 28436 --- [ctor-http-nio-3] a.w.r.e.AbstractErrorWebExceptionHandler : [411b0e23-1]  500 Server Error for HTTP GET "/nef/"
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/<IP_ADDRESS>:32068
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ? org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
|_ checkpoint ? HTTP GET "/nef/" [ExceptionHandlingWebHandler]
Stack trace:
Caused by: java.net.ConnectException: Connection refused: no further information
at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[na:na]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:702) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
2020-04-21 19:00:49.406 DEBUG 28436 --- [ctor-http-nio-3] o.s.http.codec.json.Jackson2JsonEncoder  : [411b0e23-1] Encoding [{timestamp=Tue Apr 21 19:00:49 IST 2020, path=/nef/, status=500, error=Internal Server Error, messag (truncated)...]
2020-04-21 19:00:49.452 DEBUG 28436 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] Decreasing pending responses, now 0
2020-04-21 19:00:49.455 DEBUG 28436 --- [ctor-http-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter    : [411b0e23-1] Completed 500 INTERNAL_SERVER_ERROR
2020-04-21 19:00:49.456 DEBUG 28436 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] Last HTTP response frame
2020-04-21 19:00:49.456 DEBUG 28436 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0x411b0e23, L:/0:0:0:0:0:0:0:1:8089 - R:/0:0:0:0:0:0:0:1:62019] Last HTTP packet was sent, terminating the channel

Below lines extracted from the logs(above) confirm my observation:

2020-04-21 19:00:48.282 DEBUG 28436 --- [ctor-http-nio-2] c.e.scgdemo.filters.PostGatewayFilter    : Entering PostGatewayFilter
2020-04-21 19:00:48.285  INFO 28436 --- [ctor-http-nio-2] c.e.scgdemo.filters.PostGatewayFilter    : Response statuscode: 200 OK
2020-04-21 19:00:48.286 DEBUG 28436 --- [ctor-http-nio-2] c.e.scgdemo.filters.PostGatewayFilter    : Exiting PostGatewayFilter

Could you please have a re-look at this behavior.

$ http :8089/nef/1
HTTP/1.1 500 Internal Server Error
Content-Length: 214
Content-Type: application/json

{
    "error": "Internal Server Error",
    "message": "finishConnect(..) failed: Connection refused: localhost/<IP_ADDRESS>:32068",
    "path": "/nef/1",
    "requestId": "71cc47b0-1",
    "status": 500,
    "timestamp": "2020-04-21T15:09:43.489+0000"
}

Your post filter is getting the response in the "pre" phase. For a post filter you need to put any functionality in chain.filter(exchange).then().

Ok thanks for the suggestion @spencergibb
I will check and get back to you.


Add LOG_TO_SINK_IF and DLOG_TO_SINK

I noticed these were not in the code and they could be useful.  Could those be added?

Of course, go ahead!

Thank you!


Initial version of multitenant server

fixes #70
index.yaml's being generated on the fly. Next PR will use an in-memory cache. A cache subpackage has also been added to support next steps.
ListObjects methods have a new "prefix" arg, to support listing objects from a storage backend starting at a nested location. The arg is only being used for now in LocalFilesystemBackend, which is the only backend this is tested with (for now).
cc @liamawhite @SlickNik @davidovich @itaysk

Given the following directory structure
charts
├── org1
│   ├── repoa
│   │   └── nginx-ingress-0.9.3.tgz
├── org2
│   ├── repob
│   │   └── chartmuseum-0.4.0.tgz

and starting ChartMuseum with
chartmuseum --debug --port=8080 --multitenant --storage="local" --storage-local-rootdir=./charts

these commands work:
$ helm repo add a http://localhost:8080/r/org1/repoa
"a" has been added to your repositories

$ helm search a/
NAME           	CHART VERSION	APP VERSION	DESCRIPTION
a/nginx-ingress	0.9.3        	0.10.2     	An nginx Ingress controller that uses ConfigMap...

$ helm repo add b http://localhost:8080/r/org2/repob
"b" has been added to your repositories

$ helm search b/
NAME         	CHART VERSION	APP VERSION	DESCRIPTION
b/chartmuseum	0.4.0        	0.4.0      	Helm Chart Repository with support for Amazon S...

I'm not sure you should be changing the cloud storage interface if you are not exercising it yet. The prefix change seems unrelated to your main multi-tenancy introduction work.

@davidovich but I am exercising the change, checkout the ListObjects call in getIndexFileRequestHandler.
I am not sure of an alternative here, besides instantiating a new storage.Backend per org-repo combination. Is this something we should do? Seems inefficient. I know we discussed a bit in #53, but I think per-org/per-repo storage configuration needs to come later on.

@liamawhite @davidovich I will see what I can do about removing the /r/ prefix

Right, I see the prefix being used in the file storage and is also part of the common interface. Never mind my comment on that.

@davidovich @liamawhite this is good to go now. I've managed to remove the "/r" prefix with a new Gin middleware


REST: Pass the charset and language chosen to the resource

We need to pass the charset and language we have selected to the resource so it knows how to generate the result. We need it for pretty much all functions since we may want to act differently depending on the language. However it would be cool to keep the calls with only 2 arguments.
I suppose there's two solutions here. We can either call the resource when we have decided which charset or language is going to be used and let it handle it from there, or we can store it in the Req and access it through some sort of metadata/2 function. I suspect the first to be a better option.
@klaar @licenser @bfrog and others, thoughts?

I'd say store it in the Req with the other data, it makes sense in my eyes. Also the other request data as content type could go in there, it'd make sense if you could call metadataand get a combination of content_type, language and charset since they are all tied together in my eyes.

I like the idea of just adding more optional callbacks to the rest handler as it fits in well with how REST works already. If you really want to hold on to it you can certainly add it to your own REST handler State.

The problem with adding functions is that you'll be forced to write them. If you had the languages_provided or charsets_provided functions, then chances are you care about them and you'll write the corresponding set_language or set_charset, doubling your work for handling them. So storing metadata in the Req doesn't seem like a bad idea, and could be used for other protocols as well (like storing websocket connection info like the version or extensions used for websocket use).

I've added meta/2 and meta/3, will push later today.

Done in f390dbd60671fd49bd99137f539794b1fbe1c718.


extension remains in disabled list after being enabled

Version: 1.38.0-insider (user setup)
Commit: 8985ff7c9d38bd2ce7d1e6b58e40d27c5bbdb67b
Date: 2019-08-15T07:37:38.653Z
Electron: 4.2.9
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18956

Steps to Reproduce:

Disable an extension (PowerShell preview), and restart as requested
Enable the same extension, after finding it in the disabled list.

The extension 'disabled' list shows the extension, but with a state if 'enabled'.

I was expecting that it would move back to the 'Enabled' list immediately.

/duplicate https://github.com/microsoft/vscode/issues/67369


Show public key

[x] Set Private Key button should change to Show Public Key when private key is set
[x] show public key in a modal
[x] show public key QR code
[x] show loaders when creating keypair
[x] share public key text & QR code via android share
[x] save keystore to app memory
[x] select keystore from file
[x] delete keystore
[x] unlock keystore with password when selected

Merged in #18


Option to poll externally managed VMs on a recurring interval

Fixes #78
Externally manged VMs, meaning VMs which are not on the same local cluster that capk is running on, are not watched by informers. Instead we need to periodically wake up the reconcile loop to detect changes to these VMs. This PR adds an option that allows setting the interval the kubevirtMachine controller wakes up at for externally manged VMs
Adds the external-cluster-sync-period cli option for specifying how often to poll externally managed VMs.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 9 (55.56%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 51.535%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

controllers/kubevirtmachine_controller.go
5
9
55.56%

Totals

Change from base Build<PHONE_NUMBER>:
0.08%

Covered Lines:
957

Relevant Lines:
1857

💛  - Coveralls

Can't we create new client with informers for the external VMIs ?

@qinqon here's my thoughts on this.
There's no restriction for how many external clusters might be in use. Each VM could technically be on a separate external cluster. This means in order to use the informer pattern, we'd have to begin book keeping what clients belong to what VMs. Then comes the informers. We'd have to book keep what informers are shared between what VMs, and dynamically create/destroy the informers as VMs are created/deleted.
We technically can do all that, but I'd prefer seeing how far tightening the poll interval for external VMs gets us first. It's possible we don't need near instantaneous VMI status, which would make polling "good enough" for us so we can avoid maintaining the more complex informer solution.

/retest

/ltm

/lgtm

/retest

🆙 .
We're impacted by this issue too.
How can I help any of you on this topic ?

/close
I'm not satisfied with this approach. It's possible we should take an approach that avoids watching VM/VMIs entirely and always polls more often. this would solve both #78 and #100 at the cost of VM/VMI reconcile responsiveness. I think this tradeoff might be worth it though

@BarthV I've taken an alternate approach here, https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/pull/216


add memoization support

Thanks for the great library!
It may be nice to use the dependency graph to invalidate memoized computation.
To memoize an expensive computation users can just replace computed(...) with memoizeOne(...).
Other solutions like memoize-one require passing in all the inputs as arguments to the function that is memoized.

I'm not sure I understand what your use-case is here. computed IS memoized. That's the whole point of its existence :)
const obs = computed(() => expensiveComputation())

If you then have obs.get() in a reaction, expensiveComputation will only be called if any of its dependencies actually change (and thus the cached value is no longer valid). It would only switch back to the non-memoized mode if it is not observed, which is by design; because the onBecomeUnobserved callback is the only place we can actually bust the no longer needed cache. BTW, it is implemented precisely the same way in MobX as well...

Thanks for the response! I noticed a couple things which might just be a result of me not knowing how to use the API properly. First, it seems that computed() is only cached if it is executed during an autorun(). The following test fails:
test.only('has a cache hit on second invocation', t => {
  const a = observable.box(3);
  let didRecompute = false
  const square = computed(() => (didRecompute = true) && a.get() * a.get())

  t.is(square.get(), 9)
  t.true(didRecompute)
  didRecompute = false
  t.is(square.get(), 9)
  t.false(didRecompute)    // <---- This fails
})

Additionally, it seems that all nested computed() are always recomputed even if their values did not change. As an example, let's assume we have a program that computes the sum of squares (a * a) + (b * b) and caches each operation. If the value of a changes then it seems quarx will recompute b * b even though b did not change:
test.only('caches subcomputations', t => {
  const a = observable.box(2);
  const b = observable.box(3);

  let aRecomputed, bRecomputed, sumRecomputed, actualSum

  const squareA = computed(() => (aRecomputed = true) && a.get() * a.get())
  const squareB = computed(() => (bRecomputed = true) && b.get() * b.get())
  const sum = computed(() => (sumRecomputed = true) && squareA.get() + squareB.get())

  autorun(() => sum.get())

  t.true(aRecomputed)
  t.true(bRecomputed)
  t.true(sumRecomputed)

  aRecomputed = bRecomputed = sumRecomputed = false
  a.set(4)
  t.true(aRecomputed)
  t.false(bRecomputed) // <----- This fails
})

Again, I might be misusing quarx for something it was not initially intended but the tiny codebase is really fun to work with!

Thank you for exploring Quarx!
As I mentioned, the behavior in your first case is indeed by design.
Here's an excerpt from the MobX docs on the same subject:

It sometimes confuses people new to MobX, that if you create a computed property but don't use it anywhere in a reaction, it will not cache its value and recompute more often than seems necessary. However, in real life situations this by far the best default

The second case was actually a true bug 😔. The global Quarx.sequenceNumber hydration id previously started at 0 (changed to 1 now), and the zero value is also coincidentally used for seqNo to indicate "dirty state" for a computation, which was causing the unnecessary recomputation, though at first rehydration only, which made it hard to spot in production in the first place!
I definitely need more tests...
I fixed it in v3.4 and included your test which now passes. Thank you so much for your contribution!!! 🎉

I'm glad it ended up being just a one-line fix :blush: ! And :+1: for sourcemaps & adding Quarx.debug.
I find these "distilled-X" libraries like tinyx, conclure, preact, nanostores, & vdom a good way to tinker and understand larger projects. Do you know of any others?


Experiment with read retries to handle BufferUnderflowExceptions.

To address #131

summer_crop_model (2).json.zip

According to @courtney-whalen large model training completed after this change.

Yeah, tested it out several times and haven't gotten a BufferUnderflowException again

@metasim did it finally work?

@pomadchin Not sure yet.... takes a larger deployment process and several hours of training to be absolutely sure.


Disable ssr

Is there any way to disable SSR after installing plugin? Maybe something like <no-ssr> component in nuxt.js?

Just curious you use SSR plugin but want to disable it?

How to disable ssr for certain pages?

npm i vue-no-ssr

Just curious you use SSR plugin but want to disable it?

Some plugins might not work in a server environment.

I want to generate multiple bundles with ssr & wihtout ssr.
I want to disable ssr on highload.
is it possible?

Doesn't this plugin support something similar to nuxt's {ssr: false}?
https://nuxtjs.org/guide/plugins#client-side-only

Also interested in no-ssr prop or similar

The plugin preserves yarn serve and yarn build. Would indeed be nice to keep them working in parallel.

Just curious you use SSR plugin but want to disable it?

@chanlito The static version this is useful to take advantage of services like Now, Netlify, Render, etc, to automatically create a deployment for each pull request.

Sadly, but any vue ssr plugin is poorly not supported right now. You can try to use https://universal-vue.github.io/

Yes, I'm currently giving it a try and it seems to fit so far :-) Thanks!


fix: aztec start --prover

Was failing with No module specified to start.

Benchmark results
Metrics with a significant change:

proof_construction_time_sha256_100_ms (16): 5,538 (-17%)
avm_simulation_time_ms (Token:mint_public): 91.6 (+53%)
avm_simulation_time_ms (Token:_increase_public_balance): 19.2 (-69%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,755 (+1%)
1,569 (+2%)
709 (+1%)
755 (-2%)
777 (+1%)

proof_construction_time_sha256_30_ms
11,908 (+1%)
3,181 (+1%)
1,409
1,458 (+1%)
1,481 (+1%)

proof_construction_time_sha256_100_ms
44,334 (+1%)
12,115 (+2%)
:warning: 5,538 (-17%)
5,410 (-1%)
5,391 (+1%)

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
59.0 (-2%)
88.0

proof_construction_time_poseidon_hash_30_ms
1,530 (-11%)
423 (+1%)
202 (-1%)
228 (+4%)
275 (+3%)

proof_construction_time_poseidon_hash_100_ms
5,638
1,518 (+1%)
678 (+1%)
742 (+3%)
749 (+1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
708
708
708

l1_rollup_calldata_gas
6,588
6,590
6,588

l1_rollup_execution_gas
583,050
583,203
583,352

l2_block_processing_time_in_ms
770 (+1%)
1,432 (+1%)
2,763 (+2%)

l2_block_building_time_in_ms
10,870 (+1%)
21,146
41,994

l2_block_rollup_simulation_time_in_ms
10,869 (+1%)
21,146
41,994

l2_block_public_tx_process_time_in_ms
9,109 (+1%)
19,156
39,913

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
7,148
9,957 (+1%)

node_database_size_in_bytes
12,738,640
16,912,464

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

GasToken:_increase_public_balance
102 (+2%)
13,790

GasToken:set_portal
16.0 (+26%)
3,339

Token:constructor
122 (-3%)
23,692

FPC:constructor
90.5 (-2%)
13,592

GasToken:mint_public
82.3 (-1%)
10,158

Token:mint_public
:warning: 91.6 (+53%)
19,034

Token:assert_minter_and_mint
76.5 (+20%)
12,925

AuthRegistry:set_authorized
48.6 (+5%)
7,812

FPC:prepare_fee
267 (+11%)
11,068

Token:transfer_public
43.4 (-3%)
44,012

FPC:pay_refund
89.6 (+22%)
15,961

Benchmarking:increment_balance
1,062
11,281

Token:_increase_public_balance
:warning: 19.2 (-69%)
15,006

FPC:pay_refund_with_shielded_rebate
137 (+2%)
17,056

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.158 (-2%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.4
16.8 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.602
0.515 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
48.2
76.3
132 (+1%)
247
475 (+1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.493
0.467 (-1%)
0.454 (+1%)
0.447
0.443 (+1%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
60.0 (+2%)
112 (+1%)
184 (+1%)
354 (+1%)
699 (+1%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.506 (+1%)
0.502 (+1%)
0.482
0.480 (+1%)
0.481 (+2%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
73.6 (+1%)
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
133
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.523 (+1%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
72,014
666,910

Transaction size based on fee payment method
| Metric |  |
| - |  |


Cronjobber does not work with slim tzdata format

Hello,
I have a two CronJob the one set to 0 1 * * * in Europe/Paris which is running at 3 CEST, the other one scheduled at 0 3 * * * in Europe/Paris ran at 5 CEST...
Do you have any idea why it's not running at the time it was scheduled ?
Thanks,

Hello,
Same issue here. We scale up our pods in the evening:

, yet they have been triggered at the wrong time today:

Best,
u6f6o

Hello, @u6f6o and I have the exact same problem.
We have 4 different namespaces with 2 jobs each.
Of those jobs, 4 are scheduled for 19:50 PM and 4 are scheduled for 20:30 PM, each day.
Today, they all ran at exactly the same time (10:44 AM).
Maybe it is a coincidence, but the updatetz container logged the right before all jobs ran:
2020-10-23T08:43:58+0000 Local Time Zone database updated to version 2020c on /tmp/zoneinfo

Our local time zone is CEST (+0200), thus the database update was logged at 10:43:58 AM local time.

May be related to #24. Actually don't have the workload to investigate deeper. Switched to default Kubernetes CronJob while the issue is not fixed/investigated.

Running into the same problem here. Now my TZCronJobs won't start at all, at least not during my specified time. I haven't been able to debug the tzdb inside the container, has there been an issue with the update?

Sorry about this unexpected behaviour, and I hope it did not result in too much chaos. Can you all please confirm you are using the latest cronjobber-updatetz release (v0.1.1)? This helps me narrow my search.

Yes, we (@u6f6o, @obitech and me) used the v0.1.1 release (with sidecar.enabled=true; installed per Helm chart).

Just noticed this is happening for us as well. Running cronjobber:0.2.0 and cronjobber-updatetz:0.1.0. Latest log message from updatetz is
2020-10-22T23:03:54+0000 Local Time Zone database updated to version 2020c on /tmp/zoneinfo

Yeap, same for me. Hopefully it can be fixed soon

When I look at the logs of the cronjobber I see this errors that keep repeating over and over again:
2020-10-25T07:09:06.312819787Z cronjobber E1025 07:09:06.312568       1 reflector.go:134] github.com/hiddeco/cronjobber/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1alpha1.TZCronJob: tzcronjobs.cronjobber.hidde.co is forbidden: User "system:serviceaccount:bama-prod:cronjobber" cannot list resource "tzcronjobs" in API group "cronjobber.hidde.co" at the cluster scope
2020-10-25T07:09:07.182842095Z cronjobber E1025 07:09:07.182647       1 controller.go:122] can't list Jobs: jobs.batch is forbidden: User "system:serviceaccount:bama-prod:cronjobber" cannot list resource "jobs" in API group "batch" at the cluster scope
2020-10-25T07:09:07.316420688Z cronjobber E1025 07:09:07.316221       1 reflector.go:134] github.com/hiddeco/cronjobber/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1alpha1.TZCronJob: tzcronjobs.cronjobber.hidde.co is forbidden: User "system:serviceaccount:bama-prod:cronjobber" cannot list resource "tzcronjobs" in API group "cronjobber.hidde.co" at the cluster scope

@maksimu Your errors should  be unrelated. Your service account seems to be missing the correct ClusterRole permissions.
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: cronjobber
rules:
- apiGroups: ['cronjobber.hidde.co']
  resources: ['*']
  verbs: ['*']
- apiGroups: ['batch']
  resources: ['jobs']
  verbs: ['*']
- apiGroups: ['']
  resources: ['events']
  verbs: ['create', 'patch', 'update']

The problem is due to zic changing the default format from fat to slim since >=2020-b, this format is however not correctly understood by Go (https://github.com/golang/go/issues/42138), resulting in an UTC fallback.
The best option here is likely to start using Go 1.15, and make use of the embedded timezone information there, which makes the timezone update utility obsolete.

@hiddeco do find time to fix this? Otherwise I can draft a PR.

I have just crafted a release, once it has been pushed to the registry, using the https://raw.githubusercontent.com/hiddeco/cronjobber/master/deploy/deploy.yaml manifest with hiddeco/cronjobber:0.3.0 should solve this issue with a workaround.
I will track the Go issue to release a new version once it is able to understand the slim format as well, so the updatetz utility can be used again. Keeping this issue open until then.

Works again with 0.3.0, thank you! 🙏

The bug fix for this problem has landed in the release branch for Go 1.15.4, with the release scheduled for next week. Expect a patch release as soon as this version is available in container / image land. :sunflower:

I am just wondering when cronjobber is going to be patched with the golang fix (starting from 1.15.4) for handling slim tzdata given that we are already past the 2021 DST transition. Thanks!

Hello all,
It is likely not what you hoped, but I do at present not have the bandwidth to further maintain this project. See https://github.com/hiddeco/cronjobber/issues/43#issuecomment-890097573 for more information.


updated libraries, removed unused orchestrator

Task/Issue URL:  https://app.asana.com/0/1157893581871903/1202073151026961
Description
Several lib updates, only changed the ones with minor updates
Also removed the orchestrator library, since we no longer use it.
Steps to test this PR
Usual app smoke tests

Thanks @joshliebe !


CreateFullPage component: impossible to Cancel after closing the confirmation modal by clicking outside of it

Steps to reproduce
How do we reproduce the error you described above: (ex. below)
In the CreateFullPage component, press Cancel - the confirmation modal will appear.
image
Close the modal by clicking outside of it.
Try to press Cancel again - the confirmation modal won't be displayed.

Reproducible here: https://carbon-for-ibm-products.netlify.app/?path=/story/ibm-products-patterns-create-flows-createfullpage--create-full-page

@jagathgj if you have bandwidth, do you want to take a look at this? If not, we can reassign to someone else.

@elycheea, I did a quick look at the issue. Create flows of FullPage(all) and Modals(Create Modal, Create Modal using dark theme) are seen as opened before clicking the open button. It shouldn't be open until the user clicks the open button.


from_pileup_mate_aware very inefficient?

Hi Seth, if I understand correctly, from_pileup_mate_aware is run for each column in a pileup. This means it is grouping, sorting, grouping, etc for each position, often with the same sets of reads for each consecutive column.
Do I misread?  If not then this will be an extreme bottleneck as it's O(n^2) or worse.
We can mitigate by checking if the end of the left-most read is less than the start of the right-most read. Then at least the cost could be minimized to only the percent of reads that overlap.

mosdepth uses such a check (if read is strictly less than mate) and if not, it saves the read into a hashtable. I think that can work here, but I'm not sure if I miss something about the implementation.

Nope, you aren't missing anything! That is how it does it and it for sure slows things down. I do like the idea in your PR if the functions from htslib fall into place.


[ODS-5191] Record Ownership Phase 2 - Update existing migration scripts to use new tables

@raghuramakrishna please rebase your branch with  feature-RecordOwnershipPhase2 .  Then update table name and new columns in your script in sql server and postgres

@raghuramakrishna  bring these scripts also from old PR

您好！我已经收到你的邮件我会尽快回复你，谢谢！

@raghuramakrishna   Count for 4 tables should be matching for Sql server and Postgres .  Validate that in your local run for both database .

@raghuramakrishna  ClaimSetResourceClaimActionAuthorizationStrategyOverrides table record count is mismatch with Sql server and Postgres now .

As All 4 tables changes are looks good .   Integration builds failure will be fixed in separate ticket, So  I am merging this ticket .


[eas-cli] Use expo-updates runtime version CLI to generate runtime versions

Why
This makes use of https://github.com/expo/expo/pull/27263 to generate the correct runtime version for build metadata and updates.
How
Call the command in the package to use the versioned config-plugins for the app. This way the runtime version is consistent no matter what version of eas-cli is used (and for canary versions so we don't have to update eas-cli to use canaries).
Test Plan
Run tests.
Manual test:

neas build with a bare-app in expo/expo
neas update with same app, including with EXPO_DEBUG=1 to see fingerprint sources.

/changelog-entry bug-fix Use expo-updates runtime version CLI to generate runtime versions


Immutable js

Does this allow writting immutable code ?
I ask because I am porting some J's code to holang and the J's codes only dependency is immutable js library made by Facebook.
The code I am porting
https://github.com/automerge/automerge/tree/master/src
The Facebook lib.
https://facebook.github.io/immutable-js/

Yes. This package is similar to immutable.js. We don't provide as many data structures as they do, but we invite pull requests adding more. Good luck on your project.


Model graph not showing all inheritance lines

Ask: In the model graph, when a model (interface) extends more than one other interface ("extends" is an array), only one of the inheritances lines is shown in the graph view. All inheritances lines should be shown.
Pri: P0

fix is in main


Different Monitor Different Rendering?

Expected Behavior

Dear Author,
I am seeing an issue with the rendering. It seems the chart will render smaller on a high definition monitor. Please see images below for reference.
Look forward to your advise. Thank you.
Current Behavior

Good - This renders on a Desktop Screen 1920x1080.

Bad - This renders on a 2019 MacBook Pro

Possible Solution

Steps to Reproduce (for bugs)

Context

Environment

Chart.js version:
Browser name and version:
Link to your project:

@WYKDev I have some questions:

What browser are you using?
Was the external monitor connected to the same MBP that the bad renders come from?
For the bad renders, did you simply open your test case there or was the reproduce more complex (e.g. drag window from monitor to retina screen).

The reason I ask is that the retina screen has a window.devicePixelRatio that is greater than 1 (ie. 1 CSS pixel maps to more than 1 display pixel). I don't know if there is any detection for this and so the chart could be rendered as if it was on a non-retina screen.

Thank you for quick reply.

Firefox 71.0 (64-bit), Chome 79.0.3945.88 (Official Build) (64-bit)
Yes.
It happens on renders. I didn't drag the window or anything.

Btw, I should mention that rendering a single chart on screen was fine. The issues happens when rendering multiple charts. As you can see in the bad version, the first chart rendered fine. But it got smaller and smaller as more charts are being rendered.

Whats the surrounding DOM like? Are there animations / transformations?
Why is there a portion missing from "NASDAQ 100 Index" in both images?
Does the issue appear in that page?: https://www.chartjs.org/samples/latest/charts/line/point-styles.html

Markup Structure
`
{{ title }}

`
The portion missing on the NASDAQ is because of FireShot capture.
The charts look good on that page.

Closing as this can not be fixed without a reproduce. There has been quite a lot of development, so it could also be fixed.
Please re-open if you can create a reproduce of this.


pigpio and signal SIGRTMIN

Hello,
I got a question regarding signals and pigpio. My main programs receives SIGRTMIN and sometimes I see the following in my logs:
Nov 23 17:08:38 raspberrypi test[5716]: 2021-11-23 17:08:38 pthFifoThread: fifo fgets failed (Interrupted system call)
Nov 23 17:08:38 raspberrypi test5716]: 2021-11-23 17:08:38 pthSocketThread: setsockopt() fail, closing socket -1
Nov 23 17:08:38 raspberrypi test5716]: 2021-11-23 17:08:38 pthSocketThread: accept failed (Bad file descriptor)

I've never seen the above logs before the addition of SIGRTMIN in my main program. But I read that signals cause EINTR on function calls such as read or accept and I see there are some sockets and fifos in pigpio.

Are these related to /dev/pigpio?
Is there a way to disable /dev/pigpio since I don't need it in my use case?
Is there a nice way to mask out SIGRTMIN for the pigpio threads?
Should I worry about the above logs or does pigpio recover from them without me doing anything?

Many thanks for the great lib!

I will close this issue. Sometimes just writing down the issue helps :) Found the following:
gpioCfgInterfaces(PI_DISABLE_FIFO_IF | PI_DISABLE_SOCK_IF | PI_LOCALHOST_SOCK_IF);


chore(deps): update terraform-module

This PR contains the following updates:

Package
Type
Update
Change

github.com/terraform-ibm-modules/terraform-ibm-resource-group
module
patch
v1.1.5 -> v1.1.6

terraform-ibm-modules/cbr/ibm (source)
module
patch
1.22.1 -> 1.22.2

terraform-ibm-modules/kms-all-inclusive/ibm (source)
module
patch
4.13.2 -> 4.13.4

terraform-ibm-modules/resource-group/ibm (source)
module
patch
1.1.5 -> 1.1.6

terraform-ibm-modules/secrets-manager-secret-group/ibm (source)
module
patch
1.2.1 -> 1.2.2

terraform-ibm-modules/secrets-manager-secret/ibm (source)
module
patch
1.3.1 -> 1.3.2

terraform-ibm-modules/secrets-manager/ibm (source)
module
minor
1.13.5 -> 1.14.0

Release Notes

terraform-ibm-modules/terraform-ibm-resource-group (github.com/terraform-ibm-modules/terraform-ibm-resource-group)
v1.1.6
Compare Source
Bug Fixes

remove upper limit for required terraform version (#624) (0c4a55a)

terraform-ibm-modules/terraform-ibm-cbr (terraform-ibm-modules/cbr/ibm)
v1.22.2
Compare Source
Bug Fixes

remove upper limit for required terraform version (#458) (f388f0c)

terraform-ibm-modules/terraform-ibm-kms-all-inclusive (terraform-ibm-modules/kms-all-inclusive/ibm)
v4.13.4
Compare Source
Bug Fixes

deps: update terraform-module (#502) (1cb586a)

v4.13.3
Compare Source
Bug Fixes

remove upper limit for required terraform version (#500) (55443ca)

terraform-ibm-modules/terraform-ibm-secrets-manager-secret-group (terraform-ibm-modules/secrets-manager-secret-group/ibm)
v1.2.2
Compare Source
Bug Fixes

remove upper limit for required terraform version (#177) (b59743a)

terraform-ibm-modules/terraform-ibm-secrets-manager-secret (terraform-ibm-modules/secrets-manager-secret/ibm)
v1.3.2
Compare Source
Bug Fixes

remove upper limit for required terraform version (#158) (dd27491)

terraform-ibm-modules/terraform-ibm-secrets-manager (terraform-ibm-modules/secrets-manager/ibm)
v1.14.0
Compare Source
Features

add support to secrets manager DA solution to create event notifications destinations, topics and subscriptions (#135) (e507048)

v1.13.8
Compare Source
Bug Fixes

remove upper limit for required terraform version (#140) (9e18567)

v1.13.7
Compare Source
Bug Fixes

deps: update terraform-module (#136) (7ce164d)

v1.13.6
Compare Source
Bug Fixes

Update DA variable descriptions (#141) (50c4649)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

This should resolve itself next run now that #197 is merged.

/run pipeline

:tada: This PR is included in version 1.13.0 :tada:
The release is available on:

GitHub release
v1.13.0

Your semantic-release bot :package::rocket:


preliminary support for cmake

Can we drop the mk/win32/* Visual Studio files? Since they could maybe build with cmake?
https://cmake.org/cmake/help/v3.23/manual/cmake-generators.7.html#id14


chore(main): release 1.0.0

:robot: I have created a release beep boop
1.0.0 (2024-06-28)
⚠ BREAKING CHANGES

use pydantic models for validation (#496)

Code Refactoring

use pydantic models for validation (#496) (cd446f0)

This PR was generated with Release Please. See documentation.

coverage: 85.8%. remained the same
when pulling bfe9c6a5f6bc47d37e63005068a4b0077c678555 on release-please--branches--main
into cd446f043348844478f5843d8a29ae7b1a4f4c3a on main.


⚠ ClamAV has degraded performance

In 1a2bade, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 65 ms

Resolved: ClamAV performance has improved in fddcc32.


Specify pip version when running get-pip.py

Since the release of PIP 10, some of our Heroku projects have been failing to build. There is already a PIP_UPDATE environment variable present but was not being respected in vendor/get-pip.py.
Passerby: If you are currently experiencing problems with Python builds due to PIP 10, you can change your buildpack to https://github.com/jordaneb/heroku-buildpack-python.git#f650a9cdd5f76ccf74766b0a2520f62bbed72d85 in the meantime! :)

Thanks!

Closed for #683


Adding the Cassandra SSL certificate to lua_ssl_trusted_certificate

Reimplement this directive https://github.com/Mashape/kong/blob/0.5.4/kong/cli/utils/signal.lua#L106

This has been implemented with #921.

I'm using kong/master at 282481ba572bf4a6ed6172664cc6b8de7da0416a (which includes this commit) and cannot connect to Cassandra via SSL.
The same error as we experienced together at the meetup is occurring now:
2016/02/03 22:34:17 [error] 73#0: [lua] cluster.lua:84: Cassandra error: NoHostAvailableError: All hosts tried for query failed. <IP_ADDRESS>:9042: SocketError: 18: self signed certificate for socket with peer <IP_ADDRESS>:9042. <IP_ADDRESS>: SocketError: 18: self signed certificate for socket with peer <IP_ADDRESS>. <IP_ADDRESS>: SocketError: 18: self signed certificate for socket with peer <IP_ADDRESS>., context: ngx.timer

I do have the template value in the Nginx config:
nginx: |
  …
  http {
    …
    {{lua_ssl_trusted_certificate}}

I see in the rendered nginx.conf that the value is inserted:
http {
  …
  lua_ssl_trusted_certificate "/app/config/cassandra.cert";

It references a valid certificate file (used successfully with Kong 0.5.4):
~ $ cat /app/config/cassandra.cert
-----BEGIN CERTIFICATE-----
…
-----END CERTIFICATE-----

Our fix of manually inserting the certificate path into the Nginx config as lua_ssl_trusted_certificate '/app/config/cassandra.cert'; no longer works, either.
Kong 0.5.4 can still connect to this Cassandra cluster via SSL using the same certificate, so I'm pretty certain it's not a higher-level Cassandra connection problem.

Using the current master I have no problem connecting Kong to my local Cassandra cluster with SSL and certificate verification enabled:
  ssl:
    enabled: true
    verify: true
    certificate_authority: "/paht/to/cassandra.pem"

Would you mind giving it a try?

Yes! Using kong/master at df123de2a1ee2dde5284cf6bc25da8b6622eb587 now allows Cassandra SSL certficates to be verified!
:fireworks: :cocktail:

Very good!


Ability to decolorize

We have a case when the output of the entire script here and there is colored with colored, but at times we want to remove colors globally. Is there any API function, which would be able to remove all the color codes from a string?

Hi @alexanderad,
Have you try attr('reset') ?

Hey @dslackw, thanks for the super fast reply!
Hmm... but doesn't it reset the style for the message in question only?
Generally I'm looking for something like
def strip_colors(message):
    # strip all the color codes
    return message

colored_message = colored.stylize(...)

print(strip_colors(colored_message))

But perhaps my scenario is too specific, and I should do it myself. Story is that I'm looking for some way to disable the colorization globally: I have a script, which has colored applied here and there (across multiple modules, unfortunately), with no single place. And it used only to print to stdout. I added file writing with a sort of hack:
class LogToFileAndStdout(object):
    def write(self, message):
        sys.stdout.write(message)
        self.log_file.write(strip_colors(message))

sys.stdout = LogToFileAndStdout()


User.rb refactor

The goal is to be able to obliterate user.rb and use only carto/user.rb.
cc/ @juanignaciosl @javitonino

Should fix #5736

There has been no activity on this issue for more several months. We are closing it. If you think this still needs to be addressed please open a new issue.


Support any storage solution; drop built-in support for GCS?

We are currently integrated with gcs storage buckets as a storage solution. Ideally, we should support arbitrary solutions of getting the snapshots. This would hopefully also allow us to remove a whole lot of go dependencies.

I think we can use REST API for the GCS, which, I assume, allows us to reduce the number of dependencies and let us support any storages that can be accessed via REST API like AWS: S3.
What are your thoughts on this?


BUG: typo in test

Replaces #234

Thanks @andrewsanchez! Can you "Squash and merge" when you're ready? Generally speaking, we don't include extended descriptions (unless one of the commits has provided one). Often when there are multiple commits, the GH interface will squish them all together in this text box, I prefer to delete all that jazz.
For the main description line, please use a numpydoc-style prefix.

The snapshot above represents a "typical" merge that is all ready to go.


Update dashboard-list.component.scss

fixed the syntax error.
Getting the compilation error while running ng serve
ERROR in ./src/app/landing_page/dashboard-list/dashboard-list.component.scss
Module build failed (from ./node_modules/sass-loader/lib/loader.js):

  box-shadow: 8px 16px 6px rgb(0, 0, 0, 0.2);
                          ^
      Wrong number of arguments (4 for 3) for `rgb'
      in /Users/rzheng/bb/hygieia3-ui/src/app/landing_page/dashboard-list/dashboard-list.component.scss (line 44, column 28)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Rong Zheng seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


net: DialContextTCP()

Hello! I've search for some similar issues and found this one but looks like it is stale now.
My issue points to inability to dial via tcp with custom context.Context passed.
Current implementation of net.DialTCP() (actually net.dialTCP) is absolutely ready to receive context for dial, but has no exported wrapper that can receive it.

Did you miss https://golang.org/pkg/net/#Dialer.DialContext ?

@fraenkel no.
conn, err := dialer.DialContext(...)

Does not allow me to setup local address for connection.

Sure it can. Set the LocalAddress in the Dialer.

@fraenkel wow. Thanks! Seems like I really missed this. 👍
By the way, should the net.DialContextTCP() appear?

I don't think so. We just need to adequately highlight the proper APIs that people should use. The original ones were modified to leverage the Context based ones but cannot be removed for compatibility reasons.

Closing since there doesn't seem to be anything to do here.


Make sections on Settings screen

To avoid long scroll on Settings screen please make sections with inner screens:

All screens are here:
https://app.zeplin.io/project/5c73dc8aa74b4b4085a86a91/dashboard?seid=5dc06c1ec73df203b4dd8b83

Align the indicator to the center.

checked


Help! Can't get Git Bash to work

I can't get this to work. I tried this...
Here's some code I tried...
# markdown here

@ebeshero

@ebeshero, I was able to submit the image to my repo, but it is not showing up under my commits. Is it because it takes a while, or is it because I did something wrong?
I followed along with the video, and I whenever I typed "git pull", it said that everything was up to date.


I want to add a Marker for a particular position in openalyer map

Dear Concerned,
I want to add a marker for a particular position in the openlayer map which i am using. Please suggest me how to add such a marker because addlayer function is not working here.
Below is the code used :

XYZ Esri

please ask this type of usage questions on stackoverflow instead with the openlayers tag
https://stackoverflow.com/questions/tagged/openlayers


[ACR] Separate Task Source Trigger Event Types

Support one source control event per trigger (commit or pull request).

//cc @mnltejaswini  @sajayantony

To get this in for today's code complete, please rebase to resolve the conflicts and introduce the enum parameter.  At the same time, deprecate the existing flag with guidance here:
https://github.com/Azure/azure-cli/blob/dev/doc/authoring_command_modules/authoring_commands.md#deprecating-commands-and-arguments
This will not be a breaking change (not yet) because the flag will continue to work. It will just be hidden and will issue a warning when used.

Closing this PR. Will create a new PR for the new task trigger command group.


release build of CI should use version number from release

instead of creating a version bump commit -- the manifest.json and package*.json files should have a pre-set version (for example 9.9.9) and then the build pipeline should use the version number to replace the version before build.
for example:
      - name: Set ENV
        run: |
          if [[ "${{ github.event_name }}" == "release" ]]; then
            RELEASE_VERSION="${{ github.event.release.tag_name }}"
          else
            RELEASE_VERSION="0.0.0"
          fi
          echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV

done with 8d74dea


fix Need to wait wal to be deleted when creating MaterializedView

Proposed changes
Now i found fe need to wait old wal to be deleted before creating MaterializedView, this is like schema change.However, schema change has shadow column, so it can do double writing，fe just need to wait on the final stage, i.e. waiting on before renaming shadow column to visible column.MaterializedView dosen't have shadow column, so it need to wait on the whole stage.
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall


[BUG] Wrong return turn (u32 vs gint) for GtkNotebook append_page

Bug description
Please provide a code sample as small as possible which reproduces the bug.
Upstream gtk_notebook_append_page returns a gint. In gtk3-rs NotebookExtManual.append_page returns a u32. The documentation says the function will return -1 on error, which is impossible in the rust code.

There is an assert in the code to ensure the returned value is >= 0. It'll panic if it isn't the case so it can never return something less than 0.

It might a bit problematic because it can actually return -1 with our code since we accept nullable arguments and the function returns -1 if an argument is nullable. So either we don't allow the arguments to be nullable, or we return Option<u32>.

If the function doesn't allow NULL then we should not allow passing None.
But I think this can actually fail in other ways, can't it? It calls into a virtual method somewhere and it looks like at least the default implementation of that can also fail in other reasons (if the page already was added to another notebook maybe?).


rk on Windows: ImportError

Hi,
I tried to run rk install-template on Windows 7 and it failed with the following error:
C:\Anaconda>rk install-template
Traceback (most recent call last):
  File "c:\anaconda\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\anaconda\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Anaconda\Scripts\rk.exe\__main__.py", line 5, in <module>
  File "c:\anaconda\lib\site-packages\rk\rk.py", line 7, in <module>
    from os import link, listdir, makedirs, remove, strerror
ImportError: cannot import name link

(As you can see, I'm using Anaconda distribution)
Is the utility is compatible with Windows? What would you recommend?
Cheers,
Denis

Hi Denis,
Error:
os.link(source, link_name) -- create a hard link pointing to source named link_name.
Availability: Unix.
https://docs.python.org/2/library/os.html#os.link
Windows compatibility:
Operating System :: POSIX :: Linux
https://pypi.python.org/pypi/rk
Recommendation:
Alternative remote jupyter kernel/kernels administration utility: https://bitbucket.org/tdaff/remote_ikernel
VM: https://www.virtualbox.org/wiki/Downloads
Docker: https://docs.docker.com/engine/installation/windows/
Docker images: https://hub.docker.com/u/jupyter/ and/or https://hub.docker.com/u/korniichuk/


Don't erase types in (lake %noun), which should always suceed

This could use a comment. Maybe something like:
Don't verify the product type when using the %noun mark, since that would cast to *,
which would prevent the product from being used as a gate or other typed structure.

@ohAitch Travis build failed

I noticed, with the comment it gets a SIGTERM while trying to pill (??)
On Mon, Dec 11, 2017 at 4:23 PM, Ted Blackman<EMAIL_ADDRESS>wrote:

@ohAitch https://github.com/ohaitch Travis build failed
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/489#issuecomment-350903092, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxXhiA8iBYJ_E_eLNWpSurtNYq0V-Ndks5s_cecgaJpZM4Q-MvN
.

The joys of CI ... my first guess would be a timeout got triggered.

After less than a minute?

Oh ... probably not

Restarted it and it built fine, idk what exactly was going on there


[Fix #1345] Improve offense message for Rails/RootPathnameMethods

Fix #1345
The current message is confusing/nonsensical for Dir[].  Let's display the correct code instead to show what needs to be done.
I also added the Dir offenses to the example section.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.
[ ] If this is a new cop, consider making a corresponding update to the Rails Style Guide.

🆒 Thanks for improving this for us all!


Restructure

I have made some additional changes to the notebook subdirectory names to fix navigation issue in documetation.


Checklist

[x] I made sure that the markdown files are formatted properly.
[x] I made sure that all hyperlinks are working.

Thanks for adding! Could you please fix the failing linting?

Thanks for adding! Could you please fix the failing linting?

Yes sure, i think it was a space in a newline. Should be fixed now

Thanks! Could you also please resolve the conflict that was introduced just now? :grin:


Comparison table/matrix

Describe the feature you'd like
Forgive me if there's already something like this, but I couldn't find it.
We have a use case in which we would like to document our organization's application suite and which departments get the respective applications. It would end up being tens of rows and columns (see additional context for example).
Describe the benefits this would bring to existing BookStack users
We think having this capability would provide a quick way to answer a question with regard to "what applications does x department use" or "does x department use x application" without digging through system configurations.
Can the goal of this request already be achieved via other means?
We attempted to do this with the existing table function, however, the table becomes squished between the page margins (due to the number of columns required), making the content unreadable and adjusting the rows and columns has diminishing returns.
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?
1 to 5 years
Additional context
https://wcs.smartdraw.com/software/img/feature-comparison-chart-example-2.png?bn=15100111875

A little tweak I discovered was to put in a personalized CSS in the  in the settings menu:
<style>
@media screen and (min-width: 1400px) {
  .tri-layout-middle-contents {
      max-width: 1700px;
  }
}
.page-content { max-width: 1200px; }
</style>

So I got a bit more space in the wideness of the page.

Thanks @Man-in-Black, but even with that, it doesn't give enough room for what we're looking for. I'm thinking it would have to be a scrollable table of some sort to "fit" with the page layout.

Thanks for the request @FMCUSystemAdmins.
Personally, I don't really want to be adding use-case specific block/formatting support, like I'd consider this to be. Especially where this would be very similar to an existing block options (tables) and we'd be facing the same issues/considerations that make tables an issue for this case.

@ssddanbrown, understood. Thank you


Setup a VM for adhoc metric debugging

Click Ops

[x] VPC
[x] DynamoDB Private Link
[x] EC2 instance
[x] Storage for EC2 instance
[x] NSG
[x] Add NSG to route table
[x] Create inet gateway
[x] Add inet gateway to route table
[x] Lock nacl down to ssh inbound only

Terraform

[x] VPC
[x] DynamoDB Private Link
[x] Storage for EC2 instance
[x] EC2 instance
[x] NSG
[x] Add NSG to route table
[x] Create inet gateway
[x] Add inet gateway to route table

closed #170
related to #171


Can't find annotation because of trailing spaces

/*
 * foo
 */

Does not return {foo:true} if there are trailing spaces behind foo.

@jantimon You must write annotations with @ in front of foo.
/*
 * @foo
 */

Return {foo: true}.

Sorry was a typo - the important part is the space after @foo .


Added development watch command to package.json

I've created a "dev" config for webpack, for development use only.
This work is a start to improve build time for development, and cuts build time while watching from average 6500ms to average 2500ms.
This does run the risk of developers committing and pushing this development build, which we can setup checks for.
Also a small risk of different behaviours between this development build and the production build, not common or likely but it's difficult to anticipate regressions from Uglify and Source-maps.
I do believe that this is an important step for improving contributor/developer experience, as currently some drawbacks with the current build are:

Long build time, so if you're making rapid change+saves, it's possible that the last save does not trigger another build so you're missing changes in the build.
Refreshing the browser too early and you don't get the new build.
A combination of the two above leads to frustrating: emptying cache, reloading and restarting watch cycle.
Source maps built for production are redundant because they are in .gitignore, only beneficial for development.
resolve.root performance: https://github.com/webpack/webpack/issues/472#issuecomment-55706013 using resolve.modulesDirectory is slower and not necessary for our setup.

Things I'm looking into for improving this further:

Dev-server hot-loading new changes. This gist and this post
Possibly a manifest file to separate development and production streams, so it reduces the risk of committing the development build... there are limitations (reference: https://github.com/webpack/webpack/issues/144 )
Possibly look at upgrading webpack version for its tree-shaking, etc... features
Looking into HappyPack

Current coverage is 70.24% (diff: 100%)

Merging #6152 into master will not change coverage

@@             master      #6152   diff @@
==========================================
  Files           416        416
  Lines         35714      35714
  Methods        4688       4688
  Messages          0          0
  Branches          0          0
==========================================
  Hits          25086      25086
  Misses        10628      10628
  Partials          0          0

Powered by Codecov. Last update f2ac6e3...2f4867f

If you haven't already, I certainly recommend looking into Webpack hot reloading. This is what in my opinion really makes it shine. Hot reloading styles should be easier than javascript, but I've previously worked on a React project where Webpack hot reloaded the entire app, getting back to other projects  felt like being thrown back 10 years...

@anselmdk we'll have a look into it. :)

Hackday project to add hotloading with proxy settings! :D
Yes, hotloading is part of my todo list in my original post.

Awesome change, sorry for overlooking this!

This does run the risk of developers committing and pushing this development build, which we can setup checks for.

I've already fallen into this trap a few hours after it was merged. It's going to be a frequent cause of frustration I think, particularly since those erroreous changes will be hidden in Github diffs (too large to view). If nothing else, it'll grow the size of our repo because the dist files will go back and forth between different formats. I would've expected only the last line to change (reference to sourcemap), but for some reason the whole file has changed. Any idea why that's the case? I'm not too fussed about a sourcemap reference appearing in our bundle files every now and then, but multiple 100kb diff on accidental commits isn't good.
Also, we've now created an inconsistent experience with cms and asset-admin - are you going to get those aligned as well?

Also, we've now created an inconsistent experience with cms and asset-admin - are you going to get those aligned as well?

Let's iron the kinks out of the framework implementation first.
What do we need to do to address @chillu's issue? Generating dev files to .dev.js and patching requirements to include these files instead would be an approach.

The problem is that on framework, as a developer you're running npm run watch, but on cms and asset-admin you run npm run build -- --watch. Maybe it's too early to port over the rest of the approach, but we need a) consistent commands and b) tickets for follow up work. We also need the docs updated with this approach.
I think if we're generating a separate bundle.dev.js, we need to have a CI task check if the bundle.js is outdated by re-building it. Ideally we can just keep bundle.js the same, even leave the //# sourceMappingURL=bundle.js.map at the bottom - regardless if its generated with sourcemaps - browsers with dev tools open will simply fail to load these. But we have to sort out why its generating entirely different file structures with sourcemaps enabled first.

Yes, I'm planning to pull this over to cms/asset-admin/frameworktest when it's a bit more mature, in retrospect, I should've put my notes in an open issue rather than pull request.
I'm not sure why you're getting a differently generated file because sourcemaps weren't enabled? Are you using webpack -p or just npm run build? I have noticed some builds being pushed up uses the -p switch and some do not.
e.g. https://github.com/silverstripe/silverstripe-framework/pull/6180 only changed the sourcemap comment at the bottom (although I'm not sure what is happening with the separate legacy files)

On the note of a separate output file, I had considered this option, this also present issues in of itself such as:

Desynchronised files, dev and prod files can be different, I think this point is acceptable until you have to push then it becomes an issue.
Extra logic on the server-side somewhere to work out which of the two sets of files to use. (e.g. manifests file)
Build on every branch checked out.

I'm still playing around with this idea a bit more, I did get a nice setup on one of my projects before but it was a lot more simpler ;) and I don't quite see it suitable for a framework implementation.


Performance optimizations

Current coverage is 99.56% (diff: 100%)

Merging #12 into master will increase coverage by <.01%

@@             master        #12   diff @@
==========================================
  Files            14         14
  Lines           453        462     +9
  Methods          82         86     +4
  Messages          0          0
  Branches         88         89     +1
==========================================
+ Hits            451        460     +9
  Misses            2          2
  Partials          0          0

Powered by Codecov. Last update dd24e8d...c4f0c2b


Corrected link in README.md by renaming file

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description

Corrected the above link
Checklist

[ ] I've read the contribution guidelines.
[ ] I've checked the issue list before deciding what to submit.
[ ] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Related to https://github.com/TesseractCoding/NeoAlgo/issues/6438

@ankitaggarwal23 I have made some changes. Please review once. Thank you!


Fix changelog

If I understand the new feature correctly, it makes craft.orders() possible, right?

yep thx!


Scheduler :: on a multi server setup

Just wanted to know the proper way to handle a multi server scheduler setup, where cron jobs would be split up on a per server basis?  I'm sure it's something really easy to configure, but it's just not standing out to me just yet...  i'm assuming that there would be a flag to use so that the Kernel class would only load certain jobs at runtime?  Is this not supported, or am I blind?  Hoping it's that i'm blind... Or does anyone have a suggestion on this one?

Please ask on the forums.

Well I will do that if its not a relevant question here but I'm seeing this more as a package related question for the Scheduler.  I can't imagine I'm the only one that would want to limit cron jobs per server.  It's such a helpful addition to the framework and I feel it's missing a
    php artisan schedule:run my_flag_name

To get an argument in the class to switch function loading per server would be great... If I'm off base here I apologize in advance.


merge main into develop

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

Project coverage is 24.59%. Comparing base (7dd449e) to head (ec5801d).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #458   +/-   ##
========================================
  Coverage    24.59%   24.59%
========================================
  Files          119      119
  Lines        22000    22000
========================================
  Hits          5410     5410
  Misses       16062    16062
  Partials       528      528

Flag
Coverage Δ

unittests
24.59% <ø> (ø)

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

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


Model weight download error.

Before Asking

[X] I have read the README carefully. 我已经仔细阅读了README上的操作指引。

[x] I want to train my custom dataset, and I have read the tutorials for finetune on your data carefully and organize my dataset correctly; 我想训练自定义数据集，我已经仔细阅读了训练自定义数据的教程，以及按照正确的目录结构存放数据集。

[X] I have pulled the latest code of main branch to run again and the problem still existed. 我已经拉取了主分支上最新的代码，重新运行之后，问题仍不能解决。

Search before asking

[X] I have searched the DAMO-YOLO issues and found no similar questions.

Question
Unable to download '701-categories-DAMO-YOLO-S' model weight.
Additional
No response

I confirm that I am also unable to download the 701-categories-DAMO-YOLO-S model weights from the provided link. If this could be restored that would be very helpful. Thank you.


[zh] Update resever-compute-resources.md

[zh] Update resever-compute-resources.md

/lgtm
/approve


The sample tutorial contains some errors that require rectification.

Hello, I would like to offer feedback regarding an issue pertaining to the output generated by this code, as illustrated below.
Problem url：https://developer.android.google.cn/codelabs/basic-android-kotlin-compose-first-program?hl=zh-cn&continue=https%3A%2F%2Fdeveloper.android.google.cn%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-1-pathway-1%3Fhl%3Dzh-cn%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-first-program#8
 fun main() {     println("1")     println("2")     println("3") }
I believe that the expected output of the aforementioned code should be
1 2 3
rather than
I'm learning Kotlin!

Hi @Eve-Middleton
Thank you for writing in with your question.
Those are from different questions so what you said for the output could be correct.
Question 1 asks you to review the code and try to figure out what will be printed when you run those lines of code.
Quest 2 ask you how to write the code to print that message.
Hope you are enjoying the course!
Regards.


Update Min supported version to iOS 11, tvOS 11 and Xcode 14.1 + Extension version Bump to 4.0.0

Description
Update Min supported version to iOS 11, tvOS 11 and Xcode 14.1 + Extension version Bump to 4.0.0.
Update SwiftLint to 0.52.0 and fix warnings.

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Search for aep-sdks.gitbook.io, there are two locations we need to update to the new doc locations.


Addressing potential Deserialization security issue reported

Message: Call to method Deserialize is converted to T, allowing malicious subtypes
Description: Doing a conversion rather than a precise type check will succeed for potentially malicious subtypes.
Alert Locations:
src/Simulation/QCTraceSimulator/Utils.cs#L123
This is a non-issue as the buffer is fully trusted and has just been serialized into.
However, this is an attempt to change the code to comply with the rule.

Abandoning this in favor of https://github.com/microsoft/qsharp-runtime/pull/1059


[WIP][Live] Let the bidding button know about being bidder registration

This lets the bid button know about the registration status of the user. We don't show anything different if you're a logged in user who ins't registered ( I initially created that state, but went as saw all examples ( and past code) were the same )
Note: This PR makes us ignore events that we don't understand, I'm a little bit torn there, but it's either that or we whitelist events that aren't relevant to us to show e,g, StartingPriceChanged/ReservePriceChanged
WIP cause tests, and cause I want to try get the "you're the max bidder" in before I make a beta, giving myself 30m

        1 Error

  </th>
 </tr>

:no_entry_sign:
No CHANGELOG changes made

        3 Warnings

  </th>
 </tr>

:warning:
PR is classed as Work in Progress

:warning:
Needs testing on a Phone if change is non-trivial

:warning:
Detected some Swift building time outliers

Time | Class | Function |
| --- | ----- | ----- |258.6ms | AuctionViewController.swift | @objc dynamic func showRefineTappedAnimated(animated: Bool)
197.2ms | SwiftyJSON.swift | get {}
173.2ms | WebSocket.swift | private func processRawMessage(buffer: UnsafePointer, bufferLen: Int)
65.5ms | RefinementOptionsViewController+Private.swift | func stackView() -> ORStackView

  Generated by :no_entry_sign: danger

I'm a huge fan of this PR, great work @orta.

Cool, merging.


Do not download onnx model in sd pipeline if from_onnx=False

What does this PR do?
fixes downloading onnx model from hub if both openvino and onnx models are provided. Problem observed in stable diffusion pipeline (especially SDXL base)

Fixes # (issue)
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

@AlexKoff88  @helena-intel  @echarlaix  could you please take a look?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks @eaidova ! This was expected to be fixed with https://github.com/huggingface/diffusers/pull/4338 but I also still see ONNX models being downloaded with a source install of diffusers.
@fxmarty could you have a look?

Thanks @eaidova ! This was expected to be fixed with huggingface/diffusers#4338 but I also still see ONNX models being downloaded with a source install of diffusers. @fxmarty could you have a look?

hi @helena-intel, in your referenced pr, fixed downloading onnx if pytorch model used (in our case, when export=True set), in my case model repo contains openvino model (https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 has openvino model inside) and downloading extra files related to onnx, that is why pr to diffusers does not work in this case

hi @helena-intel, in your referenced pr, fixed downloading onnx if pytorch model used (in our case, when export=True set)
Yes, but that may be an oversight there (I was told last week this issue was expected to be fixed with that PR). From my perspective, if it is possible to fix this upstream, that would be nicer. But no strong preference, most important that it is fixed; these files are huge.

I agree with these changes as a stop-gap measure.

Being curious: should we also ignore the OV IR .bin in case we have from_onnx=True?

Being curious: should we also ignore the OV IR .bin in case we have from_onnx=True?

Yes I see no reason why not. We're not really exposing the from_onnx parameter to users though; users will generally use PyTorch models and convert them to OpenVINO on the fly with export=True (which uses from_onnx internally for now) or OpenVINO models.
Thanks for approving the PR @fxmarty . Could you merge it? These models can be so large, it would be really nice to skip downloading unnessary ones.


Windows service: how to log on as "Local Service"

Windows services can be log on as "Local Service" or another user. How do I configure that within the jenkins recipe? As far as I see the jenkins-slave.xml.erb is forcing to use a specific user: https://github.com/opscode-cookbooks/jenkins/blob/master/templates/default/jenkins-slave.xml.erb#L57
It looks serviceaccount is not mandatory from the jenkins point of view: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/windows-service/jenkins.xml
https://github.com/kohsuke/winsw#service-account
It looks a bit odd but from my point of view windows-jenkins-agents should have an optional attribute about the "" tag. This is my suggested implementation:
jenkins-slave.xml.erb
....
<% if is_service_account -%>
    <serviceaccount>
    <%- if @user_domain -%>
       <domain><%= @user_domain %></domain>
    <%- end -%>
       <user><%= @user_account %></user>
    <%- if @user_password -%>
       <password><%= @user_password %></password>
    <%- end -%>
    </serviceaccount>
<% end %>

Let me know if you need further scenarios or use cases.
Thanks

@v1v Are you still experiencing issues?

This should have been fixed as part of: https://github.com/opscode-cookbooks/jenkins/pull/376