ClusteredEventBus is not removing connection when Hazelcast member leaves the cluster

Version
4.0.3
Context
It appears that, under Vert.x 4, a member will not be removed from the connections hashmap under ClusteredEventBusImpl, and its ConnectionHolder will not be closed whenever a member leaves the Hazelcast cluster.
On a clustered EventBus setup, this makes Vert.x think that the previous member (which has already left) is available to make a connection on the EventBus port (in our case 15701).
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492690860Z [WARN ] 2021-03-19 13:14:19.489 [vert.x-eventloop-thread-2] PartitionServiceProxy: 67 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Error while querying cluster's safe state
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492761260Z com.hazelcast.core.MemberLeftException: Member [<IP_ADDRESS>]:5701 - 54207d1d-5323-44cf-98d4-573f968e2aa7 lite has left cluster!
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492771523Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$OnMemberLeftTask.onTargetLoss(InvocationMonitor.java:429)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492779543Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$OnMemberLeftTask.run0(InvocationMonitor.java:396)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492787478Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$MonitorTask.run(InvocationMonitor.java:255)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492795396Z       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492802769Z       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492810080Z       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492818166Z       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492826331Z       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492834324Z       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492842071Z       at java.lang.Thread.run(Thread.java:748)

And some seconds later, when we send a message through the EventBus...
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:25.529967030Z [INFO ] 2021-03-19 13:14:25.529 [hz.elated_grothendieck.cached.thread-5] TcpIpConnector: 65 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Could not connect to: /<IP_ADDRESS>:5701. Reason: SocketException[Host is unreachable to address /<IP_ADDRESS>:5701]
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:25.539395708Z [WARN ] 2021-03-19 13:14:25.539 [hz.elated_grothendieck.cached.thread-5] TcpIpConnectionErrorHandler: 67 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Removing connection to endpoint [<IP_ADDRESS>]:5701 Cause => java.net.SocketException {Host is unreachable to address /<IP_ADDRESS>:5701}, Error-Count: 6
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419425451Z [WARN ] 2021-03-19 13:14:26.418 [vert.x-eventloop-thread-4] ConnectionHolder:  - Connecting to server 86d47754-6872-4227-81d8-b99f7ccbc4ca failed
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419468524Z io.netty.channel.AbstractChannel$AnnotatedConnectException: Operation timed out: /<IP_ADDRESS>:15701
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419476330Z Caused by: java.net.ConnectException: Operation timed out
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419482367Z       at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419488436Z       at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419494210Z       at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419500615Z       at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419507306Z       at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419513333Z       at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419519394Z       at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419525316Z       at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419531285Z       at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419537499Z       at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419543282Z       at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419549394Z       at java.lang.Thread.run(Thread.java:748)

as can be seen above, Vert.x is trying to send the message to the member that has already left.
This is happening under our Kubernetes setup whenever we perform a pods rollout. The pods will be deleted and recreated but it appears that the list that keeps Vert.x under the Hazelcast Cluster is not getting updated as old members are removed.
The result is that, if we deploy a Hazelcast data nodes cluster from scratch (replicaset of 3 data nodes) and then deploy our app (another replicaset of 3 instances of our app, all lite members), everything works fine.
However, when we perform a rollout of our app, the new pods will start trying to communicate with the older pods through the EventBus using the old pods' IPs, and this behavior persists in time.

Can you please share a small reproducer? I am particularly interested in
the rollout setup.
Le ven. 19 mars 2021 à 15:04, Miguel Vera Belmonte @.***>
a écrit :

Version
4.0.3
Context
It appears that, under Vert.x 4, a member will not be removed from the
connections hashmap under ClusteredEventBusImpl, and its ConnectionHolder
will not be closed whenever a member leaves the Hazelcast cluster.
On a clustered EventBus setup, this makes Vert.x think that the previous
member (which has already left) is available to make a connection on the
EventBus port (in our case 15701).
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492690860Z [WARN ] 2021-03-19 13:14:19.489 [vert.x-eventloop-thread-2] PartitionServiceProxy: 67 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Error while querying cluster's safe state
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492761260Z com.hazelcast.core.MemberLeftException: Member [<IP_ADDRESS>]:5701 - 54207d1d-5323-44cf-98d4-573f968e2aa7 lite has left cluster!
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492771523Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$OnMemberLeftTask.onTargetLoss(InvocationMonitor.java:429)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492779543Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$OnMemberLeftTask.run0(InvocationMonitor.java:396)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492787478Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$MonitorTask.run(InvocationMonitor.java:255)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492795396Z       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492802769Z       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492810080Z       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492818166Z       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492826331Z       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492834324Z       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492842071Z       at java.lang.Thread.run(Thread.java:748)
And some seconds later, when we send a message through the EventBus...
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:25.529967030Z [INFO ] 2021-03-19 13:14:25.529 [hz.elated_grothendieck.cached.thread-5] TcpIpConnector: 65 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Could not connect to: /<IP_ADDRESS>:5701. Reason: SocketException[Host is unreachable to address /<IP_ADDRESS>:5701]
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:25.539395708Z [WARN ] 2021-03-19 13:14:25.539 [hz.elated_grothendieck.cached.thread-5] TcpIpConnectionErrorHandler: 67 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Removing connection to endpoint [<IP_ADDRESS>]:5701 Cause => java.net.SocketException {Host is unreachable to address /<IP_ADDRESS>:5701}, Error-Count: 6
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419425451Z [WARN ] 2021-03-19 13:14:26.418 [vert.x-eventloop-thread-4] ConnectionHolder:  - Connecting to server 86d47754-6872-4227-81d8-b99f7ccbc4ca failed
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419468524Z io.netty.channel.AbstractChannel$AnnotatedConnectException: Operation timed out: /<IP_ADDRESS>:15701
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419476330Z Caused by: java.net.ConnectException: Operation timed out
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419482367Z       at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419488436Z       at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419494210Z       at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419500615Z       at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419507306Z       at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419513333Z       at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419519394Z       at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419525316Z       at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419531285Z       at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419537499Z       at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419543282Z       at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419549394Z       at java.lang.Thread.run(Thread.java:748)
as can be seen above, Vert.x is trying to send the message to the member
that has already left.
This is happening under our Kubernetes setup whenever we perform a pods
rollout. The pods will be deleted and recreated but it appears that the
list that keeps Vert.x under the Hazelcast Cluster is not getting updated
as old members are removed.
The result is that, if we deploy a Hazelcast data nodes cluster from
scratch (replicaset of 3 data nodes) and then deploy our app (another
replicaset of 3 instances of our app), everything works fine.
However, when we perform a rollout of our app, the new pods will start
trying to communicate with the older pods through the EventBus using the
old pods' IPs, and this behavior persists in time.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vert-x3/vertx-hazelcast/issues/141, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALOLNRUTOHKQKLME6IBH7DTENKWXANCNFSM4ZO3MXQQ
.

Also, do you observe a similar behavior when adding/removing pods with the
same version?
Thank you
Le ven. 19 mars 2021 à 16:10, Thomas SEGISMONT @.***> a
écrit :

Can you please share a small reproducer? I am particularly interested in
the rollout setup.
Le ven. 19 mars 2021 à 15:04, Miguel Vera Belmonte <
@.***> a écrit :

Version
4.0.3
Context
It appears that, under Vert.x 4, a member will not be removed from the
connections hashmap under ClusteredEventBusImpl, and its ConnectionHolder
will not be closed whenever a member leaves the Hazelcast cluster.
On a clustered EventBus setup, this makes Vert.x think that the previous
member (which has already left) is available to make a connection on the
EventBus port (in our case 15701).
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492690860Z [WARN ] 2021-03-19 13:14:19.489 [vert.x-eventloop-thread-2] PartitionServiceProxy: 67 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Error while querying cluster's safe state
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492761260Z com.hazelcast.core.MemberLeftException: Member [<IP_ADDRESS>]:5701 - 54207d1d-5323-44cf-98d4-573f968e2aa7 lite has left cluster!
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492771523Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$OnMemberLeftTask.onTargetLoss(InvocationMonitor.java:429)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492779543Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$OnMemberLeftTask.run0(InvocationMonitor.java:396)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492787478Z       at com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor$MonitorTask.run(InvocationMonitor.java:255)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492795396Z       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492802769Z       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492810080Z       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492818166Z       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492826331Z       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492834324Z       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:19.492842071Z       at java.lang.Thread.run(Thread.java:748)
And some seconds later, when we send a message through the EventBus...
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:25.529967030Z [INFO ] 2021-03-19 13:14:25.529 [hz.elated_grothendieck.cached.thread-5] TcpIpConnector: 65 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Could not connect to: /<IP_ADDRESS>:5701. Reason: SocketException[Host is unreachable to address /<IP_ADDRESS>:5701]
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:25.539395708Z [WARN ] 2021-03-19 13:14:25.539 [hz.elated_grothendieck.cached.thread-5] TcpIpConnectionErrorHandler: 67 - [<IP_ADDRESS>]:5701 [dev] [4.0.3] Removing connection to endpoint [<IP_ADDRESS>]:5701 Cause => java.net.SocketException {Host is unreachable to address /<IP_ADDRESS>:5701}, Error-Count: 6
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419425451Z [WARN ] 2021-03-19 13:14:26.418 [vert.x-eventloop-thread-4] ConnectionHolder:  - Connecting to server 86d47754-6872-4227-81d8-b99f7ccbc4ca failed
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419468524Z io.netty.channel.AbstractChannel$AnnotatedConnectException: Operation timed out: /<IP_ADDRESS>:15701
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419476330Z Caused by: java.net.ConnectException: Operation timed out
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419482367Z       at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419488436Z       at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419494210Z       at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419500615Z       at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419507306Z       at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419513333Z       at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419519394Z       at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419525316Z       at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419531285Z       at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419537499Z       at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419543282Z       at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
vehicles-85ffb489fd-qdjcp vehicles 2021-03-19T13:14:26.419549394Z       at java.lang.Thread.run(Thread.java:748)
as can be seen above, Vert.x is trying to send the message to the member
that has already left.
This is happening under our Kubernetes setup whenever we perform a pods
rollout. The pods will be deleted and recreated but it appears that the
list that keeps Vert.x under the Hazelcast Cluster is not getting updated
as old members are removed.
The result is that, if we deploy a Hazelcast data nodes cluster from
scratch (replicaset of 3 data nodes) and then deploy our app (another
replicaset of 3 instances of our app), everything works fine.
However, when we perform a rollout of our app, the new pods will start
trying to communicate with the older pods through the EventBus using the
old pods' IPs, and this behavior persists in time.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vert-x3/vertx-hazelcast/issues/141, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALOLNRUTOHKQKLME6IBH7DTENKWXANCNFSM4ZO3MXQQ
.

HI @tsegismont, after reviewing the issue this weekend and trying to come up with a basic reproducer, I have not succeeded so far. To answer your question, it does happen when we remove any pod in our deployment.
It seems that the issue lies in some custom code that we have in place, that provides consumer-group-like functionality (similar to the one in this GH issue). However, it was working flawlessly in Vert.x 3, so it makes us consider whether something has changed in the way clustered consumers are handled in Vert.x 4. In particular whether sending a message to an address that was owned by some member if that member is already deregistered (and no one else owns that address), which seems to be what's causing the exception. In Vert.x 3 this didn't fail, but now it is failing. Would you happen to know if this behavior has been changed?
I'll keep investigating this week and come up with more insights, or close the issue if I can't.

Hi, Vert.x 4 changed the clustering SPI and thus the storage of eventbus
subscriptions.
You can learn the rationale behind this change in
https://github.com/vert-x3/wiki/wiki/RFC:-clustering-SPI-revisited
Le lun. 22 mars 2021 à 10:05, Miguel Vera Belmonte @.***>
a écrit :

HI @tsegismont https://github.com/tsegismont, after reviewing the issue
this weekend and trying to come up with a basic reproducer, I have not
succeeded so far. To answer your question, it does happen when we remove
any pod in our deployment.
It seems that the issue lies in some custom code that we have in place,
that provides consumer-group-like functionality (similar to the one in this
GH issue https://github.com/eclipse-vertx/vert.x/issues/2432). However,
it was working flawlessly in Vert.x 3, so it makes us consider whether
something has changed in the way clustered consumers are handled in Vert.x
4. In particular whether sending a message to an address that was owned by
some member if that member is already deregistered (and no one else owns
that address), which seems to be what's causing the exception. In Vert.x 3
this didn't fail, but now it is failing. Would you happen to know if this
behavior has been changed?
I'll keep investigating this week and come up with more insights, or close
the issue if I can't.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vert-x3/vertx-hazelcast/issues/141#issuecomment-803892800,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALOLNX26V3J5KSJGCCQ4KTTE4B47ANCNFSM4ZO3MXQQ
.

I see, thanks for the insights @tsegismont 😄. I was able to rewrite our code taking into account the new subscription storage model. Closing this since not a bug.

Thanks for letting us know
Le mar. 23 mars 2021 à 18:15, Miguel Vera Belmonte @.***>
a écrit :

I see, thanks for the insights @tsegismont https://github.com/tsegismont
😄. I was able to rewrite our code taking into account the new
subscription storage model. Closing this since not a bug.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vert-x3/vertx-hazelcast/issues/141#issuecomment-805080294,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALOLNRT5QU2NM5IHNKSCEDTFDEEVANCNFSM4ZO3MXQQ
.


remove macos tests

Signed-off-by: Fansong Zeng<EMAIL_ADDRESS>The test of MacOS is too slow. It is recommended that you can test locally when developing:

./hack/run-test.sh to run all unittests
./hack/run-test.sh TestXX to run the specified test
./hack/run-test.sh xx.go to run tests in the xx.go file

/lgtm cancel
@hormes you also need to delete this line
https://github.com/koordinator-sh/koordinator/blob/d84b49768a38cebf70e19f640178b3d0cd184b69/.github/workflows/ci.yaml#L86

/approve


logs vs. metrics

Siva / Bart present deep dive on lessons learned around logs vs. metrics

Closing this along with #60


How to operate each individual finger

I would like to only let the index finger point at a specific object and other fingers are bent. How do I achieve this?

Fingers are standard joints you can control in the configuration space in different modalities (e.g. position, velocity, position-direct) in the same way you control the joints of the arms, the legs or the head.
You only ought to know that fingers belong to left_arm and right_arm iCub's parts according to the following mapping:

part index
joint

0
shoulder

1
shoulder

2
shoulder

3
elbow

4
wrist

5
wrist

6
wrist

7
fingers adbuction

8
thumb  abduction

9
thumb proximal

10
thumb distal

11
index proximal

12
index distal

13
middle proximal

14
middle distal

15
ring + pinkie

To know how to control those joints, please refer to the resources listed below:

http://www.icub.org/doc/icub-main/icub_motor_control_tutorial.html
https://github.com/vvv-school/tutorial_joint-interface

Further, for your knowledge, we have high-level software components implementing coordinated pointing movements as per https://github.com/robotology/icub-main/pull/413.

Q1: When I used

iarm→getDOF(curDof);

I will get

1.000000	 1.000000	 1.000000	 1.000000	 1.000000	 1.000000	 1.000000	 1.000000	 1.000000	 1.000000

It seems that there are only 10 joints rather than 15 joints
Q2: How to implement the function below? It seems that in https://www.yarp.it/, there is no explanation about far.
$ yarp rpc /actionsRenderingEngine/cmd:io

pfar (x y z)
https://github.com/robotology/icub-main/pull/413

As mentioned in the tutorials I pointed you at as well as in this post, don't use the cartesiancontrollerclient device driver to control a joint in the configuration space. Instead, resort to remote_controlboard device.
ActionRenderingEngine (aka ARE) is not a YARP thing, it is rather a component bundled in the icub-main repository. It's quite a big module and thus takes some time to be explored and learned. Anyway, here is its doc page: http://www.icub.org/doc/icub-main/group__actionsRenderingEngine.html.


Update sources-dist-stable.json

new confirmed stable versions for stiebel-isg and pi-hole according to controller v5 update

@pihole
Please fix issues listed by adapterchecker for pi-hole.
@steibel-isg
Please fix issues listed by adapterchecker - it's only an edit at guthub, n o new relase and of course its not blocking.

pi-hole
1.3.6 Released 17.06.2023, 14:15:12 = TODAY, not yet at latest
steibel-isg
1.7.6 released 14.06.2023, 17:54:22 (3 days old) 10 USers (2%)
New releases should be available some time at latest repository unless there is a special reason for an hotfix. As js-controller5 is at beta / latates still I do not see a reason for an immidiate release especially as pi-hole is not used by anyone yet. Please feel free to comment if theres an urgent need for release. As this PR contains changes for two adapter its not possible to merge stiebel-isg earlier.
I'll keep this PR open and merge it in app 1 week if some users and no new issues are registered.

RE-CHECK!

RE-CHECK!


Can't use R_LIBS_USER because they are overridden in .Renviron

Several of these dockerfiles are overriding the R_LIBS_USER variable by forcing it to '' in the .Renviron file:
https://github.com/Bioconductor/bioc_docker/blob/8d2a26f1127caae86a44a3105e2ace68900cc229/out/release_base/Dockerfile#L42
This causes a problem in that the R_LIBS_USER variable is suppressed. So, users using the container and expecting to be able to add a user-specific library cannot do so.
Is there a suggested way to use these images with R_LIBS_USER? If not, I suggest not overriding this value, because there is no way for the user to undo this and get the default functionality back.

Hi @nsheff ,
Can you please give me an example of what you are trying to do?
Because after investigating the rocker/r-ver image, it seems like that path R_LIBS_USER is getting reset anyway, https://github.com/rocker-org/rocker-versioned/blob/master/r-ver/devel/Dockerfile#L117. The bioconductor/devel_base2 image inherits from rocker/rstudio which inherits from rocker/r-ver:devel.
As you can see, in the code below, which is the base rocker/r-ver:devel image, the R_LIBS_USER location is reset anyway.
> Sys.getenv("R_LIBS")
[1] "/usr/local/lib/R/site-library:/usr/local/lib/R/library:/usr/lib/R/library"
> Sys.getenv("R_LIBS_USER")
[1] "/usr/local/lib/R/site-library"

Could you help me figure out what is the use case for this?
Are you trying the docker image with an environment variable set like ?
docker run -it -e R_LIBS_USER=/<path> <image> bash

or maybe attaching a volume with ?
docker run -v /tmp:/usr/local/lib/R/host-site-library -it <image> bash

Also take a look at #95, if nothing else, this should fix the issue.

See also:
https://github.com/rocker-org/rocker-versioned/issues/175
https://github.com/rocker-org/rocker-versioned/pull/176
https://github.com/rocker-org/rocker-versioned/pull/186
Indeed, the same problem shows up in the rocker files... but it appears this is being addressed, so the solution should also be propagated through the bioconductor files.
What I am trying to do is simply something like you suggest:
docker run -it -e R_LIBS_USER=/<path> <image> R

I just want the containerized R to pick up R_LIBS_USER the same way an uncontainerized R would.

It looks like you may have solved this in bdf7866bdb13fa47ef4b25c122a9add8dfccd755

Great! I'm going to close this issue then @nsheff


Use blockHash for AcceptedWorkID, not powHash.

blockHash is used to construct the AcceptedWorkID when retrieving AcceptedWork from the database, not the powHash.
Because of this bug, dcrpool was failing to register when a block mined by the pool had been confirmed, thus it was never sending the coinbase from that block to the mining participants.

As an aside, that function is rather poorly named and should probably be renamed in a separate PR.  It didn't matter before since the block hash and proof of work hash were the same, but that is no longer the case.  Probably something like NewAcceptedBlock instead.

Good update with the rename to powHash.  I was actually thinking the same thing!


App crash with ToastAndroid

when I Import the ToastAndroid component of react-native, anywhere in my app, and send a notification when the app is closed, the app crash.
In ToastAndroid.android.js the line: var RCTToastAndroid = require('NativeModules').ToastAndroid;
returns a null value.
I'm not sure if this is an issue to you or react-native main git but thought you should know.

I get the same behavior when I do an
import codePush from "react-native-code-push";

When the app is killed/closed and a notification is received BackgroundService.java is loaded in place of your normal MainActivity.java, but still loads your normal index.android.js. I think this is where the compatibility problem is. Maybe if BackgroundService.java could load an alternate js file that doesn't contain the conflicting imports? Or the BackgroundService.java could be made more compatible with other native packages?

I would prefer the latter solution since I'm sebd data oayloads in my gcm's abd would like to load enough of my app to at least get access to my redux data stores to save the data. (though I suppose that could also be accomplished with a parred down version of my index.android. js...)


Change generator --csv to --type=csv

TL;DR
-$ rails generate maintenance_tasks:task NAME --csv
+$ rails generate maintenance_tasks:task NAME --type=csv # or --type csv

Details
Working on #326 and wanting to include a generator for tasks with a custom enumerator builder, @adrianna-chang-shopify and I decided it might be best to change the --csv generator option to --type=csv, rather than have a bunch of mutually exclusive options (e.g. --csv & --custom).
IF we decide to provide additional built-in enumerators in the future, this would also provide a natural extension point.
Included in this PR are various refactorings to the generator code.
This is technically a breaking change to the developer API, but not to the actual task/application code. As such, it doesn't feel like it warrants a major version bump.
⚠ Before Merging

[ ] Get feedback on task type names (--type=generic & --type=csv)
[ ] Update README and any other documentation mentioning --csv

@adrianna-chang-shopify I've

removed private_constant :TASK_TYPES
changed --type=collection to --type=generic
changed --csv to --type=csv in README.md

@sambostock @etiennebarrie how would you guys feel about starting off a feature branch for custom enumeration and shipping these incremental PRs into it so that we can release it in completion? main has got some patches on it currently that I'll release as a patch version soon, but I've still got a couple fixes to finish. I think it's probably best to not have bits and pieces of the custom enum stuff going out until it's ready in entirety, right?

The following PRs exist right now around supporting custom enumeration:

Ensure cursor is converted into integer as needed (#340)
Change cursor from bigint to string (#339)
Change generator --csv to --type=csv(#343, this PR)
Introduce Task#enumerator_builder (#326)

#340 would have to be released in a prior release to the one that includes #339, since it's concerned with forwards compatibility while the app is running, so we wouldn't want to include it in a feature branch. Though we'd have to validate #339 will work before merging #340.
#343 I think could technically ship on its own, though I can understand the value of shipping it in the same release as custom enumeration.
Usually I'm opposed to feature branches and prefer to continuously integrate small changes. For instance, we could always ship part of the custom enumerator change as an internal refactor that doesn't break anything.
That said, I've done most of my development for apps, not libraries/gems, so maybe this is different. If we think there's value in a feature branch here, I'm glad to do it. 🤷

I think we're okay to just ship incrementally in that case 👍  I was recalling a previous experience working on the Packwerk gem where a fix had to be shipped ASAP and there was a feature that was half-functional on the main branch and caused all sorts of headaches 😅  But you're right that the most of these changes are internal refactors that should be OK to ship without fear of having incomplete functionality on main.
This one (#343) is totally fine to go out on its own IMO. I was thinking maybe we'd release it as a minor version (since it is a change in the developer API) after releasing a patch (v1.1.1) but I suppose it's okay just to ship all our bug fixes to 1.2 instead.
#340 can go in with that as well, since it's just an internal refactor.
#339, #326 and a PR to add custom to our Task Generator can all go out together as the final piece of custom enumeration, once we're sure everything will work and our bases are covered in terms of backwards compatibility + making sure nothing breaks when changing the column type.
So TL;DR ignore my feature branch request, let me see if I can get the patch version out by the end of the day - if not, I think we can just start merging some of these and go straight to 1.2.

@etiennebarrie you'd mentioned preferring to keep --csv and support only --csv and --custom as mutually exclusive options moving forward. I believe that this PR gives us more flexibility, but agree that it might be premature to assume we'll have other Task types beyond CSV and the new custom enumeration stuff.
Can you 👍  / 👎  this so we either ship or close?

Yeah I'm not really in favor of this PR because:

I'd like to keep --csv around
--type=generic can just be the default, no need to add a name for that
whenever we introduce --enumerator (custom is a bit unclear I find), we can just deal with the fact that they're exclusive
I don't think we're going to need more than that

Fair enough


0 precision 0 recall for some custom tags

I tried to run my own dataset with your lstm_crf code, but some of the tags got 0 precision and 0 recall. Specifically, it's the phone_number set and email set. So I was wondering what happen. Is that the problem of embedding? Cause I noticed phone numbers and emails are not in the glove.840B.300d.txt embedding vectors.
However, what should I do to effectively train these two tags instead of 0? Thank you for your help ahead.

When I trained the lstm_crf model only with Phone_number a and email tag, the recall and precision is not 0. But I want to predict all labels together at once so that I can compare it with other model.

Yes, it's the problem of word embedding. Some of the out-of-vocabulary words will be set to tensor of 0 and they will likely be ignored by the network while the word embedding trainning option is set to False. However, there is some solution here:

You can choose other models with character embedding, but all of the models provided with character embedding are concatenated with word embedding. The problem of matrix of 0 still exist. But releive by the character embedding.
You can train your own embedding with your own corpus. However, it's a nightmare if you don't have enough time or computational resources.
You can use some out-of-the-box oov tool. They can provide you embedding of those out-of-vocabulary words by their own method. One of them use the context of oov to build oov's embedding matrix.
Like the first method, but different. You can build your own vocabulary in any forms. charactor/ngram are both good choice. Then the oov problem will not exist any more if you don't persist to use word embedding again.
That's my solution for this issue, if anything wrong in my words or you guys have some other solution, please point it out.


GDScript 'match' statment fails when exporting in release

Godot version
4.0 beta12
System information
Linux x86-64
Issue description
Having the following valid gdscript code in a file causes an issue when the project is exported in release:
func some_func(x: int) -> bool:
    match x:
        0:
            return false
        _:
            return true

This is completely valid according to the documentation - we have one case for 0 and then a catch-all case. Now comes the weird part. If the project is exported in debug (pick 'Export with Debug' during the export) then everything is fine and the project works as expected.
However, if the project is exported in release (not picking 'Export with Debug), then there is a weird behaviour when running the game. It took me a while to find out why but when I finally ran the exported game from the command line on Linux, I noticed this in the log:

SCRIPT ERROR: Parse Error: Not all code paths return a value.
at: GDScript::reload (res://test_scene.gd:10)

The log message points to the match statement above. Apparently the gdscript file containing this failed to compile properly because of this error.
This log message does NOT appear when the game is exported in debug.
Adding another return statement at the end of the function fixes the problem. Still, this is supposed to be valid code, as the default _ case should be considered enough for the function.
Steps to reproduce
Tested with exporting for linux x86-64 only!

Get the minimal project
It includes a simple scene with godot's icon in the centre, which is set to be invisible in the scene.
The scene has an attached script that decides in the _ready() function whether to make the icon visible by using a match statement as explained above.

Export the project for linux x86-64 in release

See that the exported game doesn't show the icon in the centre of the game window
You can also run the game from the command line to see the log message

Export the game again, this time in debug

See that the exported game now shows the icon in the centre of the window

Minimal reproduction project
test_gdscript_match.tar.gz

I downloaded the test project, opened it with 4.0 beta 12, and exported the project for Windows Desktop x86_64 in both debug and release modes. I ran the debug build, and the icon appeared as expected. I ran the release build (from command line), and the icon didn't appear, and the log showed
SCRIPT ERROR: Parse Error: Not all code paths return a value.
          at: GDScript::reload (res://test_scene.gd:16)

I also did the same with 4.0 beta 11, and with 4.0 beta 13, and had identical results.

This is a duplicate of #55045


Proposal: Add flag to scan string literals

You can't run glypcheck on itself without this flag :P
There are many cases (user messages written in other languages, i18n, etc) where you wouldn't want to scan string literals. However, use this flag with caution — as mentioned in the README, import statements and URLs use string literals.
Also, what do you think about checking if the string literal is part of an import statement? I didn't bother to implement this as you should still use caution with URLs.
String literals are scanned by default.
I'll write tests after the PR #1 is merged, and if you think this flag is a good idea.

I think this is a good flag to have, but I'd want it to be disabled by default (or perhaps make it -ignore-strings). The rationale being that most projects don't contain any non-ASCII characters, so they should be suspicious of everything by default. And as you mentioned, import statements (and any other URL in source code!) are one of the most dangerous attack vectors. We probably want to check import statements even if -ignore-strings is set, but that requires some more complex parsing.


Fix edit profile button visibility

broken as part of electron changes
canEdit$ was incorrectly removed

Codecov Report

Merging #4839 (901e14a) into master (0413ee5) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #4839   +/-   ##
=======================================
  Coverage   52.91%   52.91%
=======================================
  Files        1141     1141
  Lines       40141    40148    +7
  Branches     5121     5122    +1
=======================================
+ Hits        21239    21246    +7
  Misses      18718    18718
  Partials      184      184


services don't start if there is a space in the name of the containing folder

Please forgive my English (not my native language ) .
version: WPNXM-0.8.6-Standard-Setup-php56-w64 ( portable mode)
win 7 x64
I've run into a bug where services do not start if the folder that contains them has a space in the name
the server is stored in "E:\DATA\Software Development\server" when trying to start from the control panel , the green light flashes and nothing happens after that (no entry in any log file or propmt msg).
When reinstall the server in "E:\DATA\Software_Development\server" everything works perfectly .
running start.bat :
E:\DATA\Software Development\server>start.bat
Removing Temporary Files...
Creating Directories for Temporary Files...
Starting PHP FastCGI...
"E:\DATA\Software" is not recognized as an internal or external command,
program or batch file .

Starting MariaDb...
"E:\DATA\Software" is not recognized as an internal or external command,
program or batch file .

Starting Memcached...
"E:\DATA\Software" is not recognized as an internal or external command,
program or batch file .

Starting nginx...
"E:\DATA\Software" is not recognized as an internal or external command,
program or batch file .

Opening localhost in Browser...

Thank you for reporting this issue.
I could change the installer to ensure that the installation path does not contain any spaces (#431) or
wrap the start commands in quotes.


[5.8] On ELF platforms, only add runpaths as needed (#6321)

Cherrypick of #6321
Explanation: The bootstrap script currently adds two relative runpaths for ELF platforms, one for the PackageDescription and other libraries and another for the single swift-package executable, but since they're applied on the command line, both runpaths are applied to all binaries. This pull separates out the runpaths and only applies each where needed. It also shifts much of the bootstrap script over to applying build flags based on the build target, not on checking the build host platform in Python.
Scope: Should only affect the SPM build on ELF platforms like linux
Issue: None
Risk: low, as it only affects building SPM for ELF platforms
Testing: Passed all CI, including a trunk toolchain build that worked well
Reviewer: @neonichu

@swift-ci please smoke test

MacOS SPM test failure appears unrelated, flake?
2023-04-13 21:14:48.302Test Case '-[SPMBuildCoreTests.PluginInvocationTests testCompilationDiagnostics]' started.
/Users/ec2-user/jenkins/workspace/swift-package-manager-PR-macos-smoke-test/branch-release/5.8/swiftpm/Tests/SPMBuildCoreTests/PluginInvocationTests.swift:420: error: -[SPMBuildCoreTests.PluginInvocationTests testCompilationDiagnostics] : XCTAssertEqual failed: ("0") is not equal to ("1") - unexpected diagnostics count in [] from /var/folders/7n/r31lzfjx6556jgc6vg55_cg80000gn/T/spm-tests-testCompilationDiagnostics.o65Cw0/plugin-cache/MyPlugin.dia
/Users/ec2-user/jenkins/workspace/swift-package-manager-PR-macos-smoke-test/branch-release/5.8/swiftpm/Tests/SPMBuildCoreTests/PluginInvocationTests.swift:421: error: -[SPMBuildCoreTests.PluginInvocationTests testCompilationDiagnostics] : XCTUnwrap failed: expected non-nil value of type "Diagnostic"Test Case '
[SPMBuildCoreTests.PluginInvocationTests testCompilationDiagnostics]' failed (7.416 seconds).
Test Suite 'PluginInvocationTests' failed at 2023-04-13 21:14:55.718.
	 Executed 1 test, with 2 failures (0 unexpected) in 7.416 (7.417) seconds

I think so, yah.
@tomerd are we planning on any more non-Darwin releases for 5.8?

there isn't one panned right now, but we normally try to get one going if there is enough / urgent fixes

@neonichu, one last mac CI run and this can go in? I see the 5.8 branch still being updated for the compiler and stdlib.

@buttaface yes we can pull this in when we do a linux dot release (tbd exactly when)

@swift-ci smoke test macOS

Huh, the same SPM test failed again on macOS, but this pull should change nothing on macOS, and passed fine on 5.9 and trunk.
I have little insight into macOS failures, anyone know what's going on?

@neonichu @abertelrud looks like testCompilationDiagnostics is still flaky / failing?
@swift-ci smoke test macOS

@neonichu @abertelrud looks like testCompilationDiagnostics is still flaky / failing?

That's possible, I think we realized that the way we're checking for compiler compatibility could be using the superior toolchain instead of the inferior one.

@swift-ci smoke test macOS

Same test failed a third time, doesn't appear to be a flake. I compared the commit log for that file to trunk, and I see two pulls that recently modified that test in trunk and 5.9 that are not in the 5.8 branch, #6076 and #6080.
I have not looked into what triggers those, but perhaps the 5.8 CI is just broken right now because it needs some of those changes? This pull should change nothing on macOS and so shouldn't be at fault.

lets see what an empty PR does: https://github.com/apple/swift-package-manager/pull/6455

@swift-ci smoke test macOS


Connection error

Whenever I try to connect to my vertica DB, I get this connection error. I'm sure that it is authenticating as invalid credentials get rejected with a auth error. Any advise on how to proceed with fixing this?
Traceback (most recent call last):
  File "uber.py", line 5, in <module>
    connection = vertica_python.connect(**con_info)
  File "/usr/local/lib/python2.7/dist-packages/vertica_python/vertica/connection.py", line 25, in connect
    return Connection(kwargs)
  File "/usr/local/lib/python2.7/dist-packages/vertica_python/vertica/connection.py", line 45, in __init__
    self.startup_connection()
  File "/usr/local/lib/python2.7/dist-packages/vertica_python/vertica/connection.py", line 271, in startup_connection
    'salt': getattr(message, 'salt', None)}))
  File "/usr/local/lib/python2.7/dist-packages/vertica_python/vertica/connection.py", line 180, in write
    raise_from(errors.ConnectionError, e)
  File "/usr/local/lib/python2.7/dist-packages/six.py", line 718, in raise_from
    raise value
vertica_python.errors.ConnectionError

#CODE:
import vertica_python
# Fake DB info
con_info = {'host' : '<IP_ADDRESS>', 'port' : 5433, 'user' : 'username', 'password' : 'pass', 'database' : 'db', 'read_timeout' : 6000}

connection = vertica_python.connect(**con_info)
connection.close()

@JettJengaGod does your Vertica server require SSL? Your con_info doesn't include an SSLContext, so if your server requires it that could be a cause of the connection failure.

@AndrewJudson It does not require SSL.

@JettJengaGod you could print out the different fields for message here? https://github.com/uber/vertica-python/blob/master/vertica_python/vertica/connection.py#L269
Could shine some light on what is going on. Are you using the latest version?

@AndrewJudson I am using version 0.7.3
When I look into that, it looks like I am getting
{ValueError} unsupported authentication method: 11

@AndrewJudson I think its because the password contains non alpha numeric characters.

@AndrewJudson @hc000 non alpha numeric characters seemed to be the issue. Thanks.

Do you support schemas or tables with the '_' character in it?

@JettJengaGod
{ValueError} unsupported authentication method: 11 means your password will expire soon. This should be a warning, but currently it is an exception so you connection fails, we should fix that. Try to connect to your database after changing the password to see if it works.

Do you support schemas or tables with the '_' character in it?

@AndrewJudson Yes they do support _ in schema name.


Add smoothing capability for Fixed/Free Moving Spiking Correlation functions

This would be the same as the Individual Cell Correlation function in the Angular Head Velocity Analysis function group.

This functionality has been added to the following functions in the "Angular Head Velocity Analysis" function analysis group:

Individual Cell Correlation (Fixed)
Correlation Distributions (Fixed)
Correlation Scatterplot (Fixed)
Correlation Significance(Fixed)
Correlation Comparison (Fixed)
Correlation Fit Parameters (Fixed)


[API]: use the pymysql library

https://github.com/rrickgauer/pymysql

common/security
services/lists
services/users
services/items/routines


We didn't catch it since it ignores failures and will automatically pull the first version on docker run. We'll fix


key error

Hi Kiarash,
I got the following error when trying to run the program with a simple map and sequence file("model_angelo build -v PostProcess/job099/postprocess_masked.mrc -f hS.fasta -o model_angelo/"):
2022-12-01 at 13:13:10 | ERROR | Error in ModelAngelo
Traceback (most recent call last):
File "/home/xuewuzhang/miniconda3/envs/model_angelo/bin/model_angelo", line 33, in
sys.exit(load_entry_point('model-angelo==0.2.2', 'console_scripts', 'model_angelo')())
\u2502   \u2502    \u2514 <function importlib_load_entry_point at 0x7f4d69444160>
\u2502   \u2514
\u2514 <module 'sys' (built-in)>
File "/home/xuewuzhang/miniconda3/envs/model_angelo/lib/python3.9/site-packages/model_angelo-0.2.2-py3.9.egg/model_angelo/main.py", line 51, in main
args.func(args)
\u2502    \u2502    \u2514 Namespace(volume_path='PostProcess/job099/postprocess_masked.mrc', fasta_path='./hS.fasta', output_dir='model_angelo', ma...
\u2502    \u2514 <function main at 0x7f4c36565940>
\u2514 Namespace(volume_path='PostProcess/job099/postprocess_masked.mrc', fasta_path='./hS.fasta', output_dir='model_angelo', ma...

File "/home/xuewuzhang/miniconda3/envs/model_angelo/lib/python3.9/site-packages/model_angelo-0.2.2-py3.9.egg/model_angelo/apps/build.py", line 225, in main
gnn_output = gnn_infer(gnn_infer_args)
\u2502         \u2514 {'num_rounds': 3, 'crop_length': 200, 'repeat_per_residue': 3, 'esm_model': 'esm1b_t33_650M_UR50S', 'aggressive_pruning': Tru...
\u2514 <function infer at 0x7f4c365658b0>
File "/home/xuewuzhang/miniconda3/envs/model_angelo/lib/python3.9/site-packages/model_angelo-0.2.2-py3.9.egg/model_angelo/gnn/inference.py", line 243, in infer
protein = get_lm_embeddings_for_protein(lang_model, batch_converter, protein)
\u2502                             \u2502           \u2502                \u2514 Protein(atom_positions=None, atom14_positions=None, aatype=None, atom_mask=None, atom14_mask=None, residue_index=None, chain_...
\u2502                             \u2502           \u2514 <esm.data.BatchConverter object at 0x7f4c206bd070>
\u2502                             \u2514 ProteinBertModel(
\u2502                                 (embed_tokens): Embedding(33, 1280, padding_idx=1)
\u2502                                 (layers): ModuleList(
\u2502                                   (0): TransformerLayer(
\u2502                                  ...
\u2514 <function get_lm_embeddings_for_protein at 0x7f4c372daca0>
File "/home/xuewuzhang/miniconda3/envs/model_angelo/lib/python3.9/site-packages/model_angelo-0.2.2-py3.9.egg/model_angelo/data/generate_complete_prot_files.py", line 32, in get_lm_embeddings_for_protein
[result[s]["representations"][33].cpu().numpy() for s in seq_names],
\u2502                                                       \u2514 ['0']
\u2514 {}
File "/home/xuewuzhang/miniconda3/envs/model_angelo/lib/python3.9/site-packages/model_angelo-0.2.2-py3.9.egg/model_angelo/data/generate_complete_prot_files.py", line 32, in
[result[s]["representations"][33].cpu().numpy() for s in seq_names],
\u2502      \u2502                                           \u2514 '0'
\u2502      \u2514 '0'
\u2514 {}

KeyError: '0'
I am not sure whether my installation was corrupt, or there is a bug in the package. Can you please help?
Thanks,
Xuewu

Hi Xuewu,
This indicates there is something perhaps off about your FASTA file. Could you share this file here? Alternatively, if you are more comfortable you could email it to me.

This was an issue with FASTA formatting


Corrected the URL for contribution-short-guide in /CONTRIBUTING.md Re…

Corrected the link for contribution-short-guide in CONTRIBUTION.md file

markdown documentation shows the proper URL or is it working fine without .md?

Markdown file shows the proper URL. Before changes the link was broken


I encountered a 'not assignable type' error when I turned on the 'noUncheckedIndexedAccess' option.

Bug Report
🔎 Search Terms

type guard
noUncheckedIndexedAccess

🕗 Version & Regression Information
Typescript version that I tried: 4.9.5, 5.0.4, 5.1.0-beta
⏯ Playground Link

Make it sure that the "noUncheckedIndexedAccess" option is turned on.
Playground link
💻 Code
{
  "compilerOptions": {
    "noUncheckedIndexedAccess": true
  }
}

const fruits: Record<string, string> = { apple : 'best', orange: 'good' }

function getFruit (fruitName: string): string {
    if (typeof fruits[fruitName] === 'string') {
        // Type 'string | undefined' is not assignable to type 'string'.
        // Type 'undefined' is not assignable to type 'string'.(2322)
        return fruits[fruitName]
    }
    return 'nothing'
}

🙁 Actual behavior
Type guard doesn't work properly and typescript occurs not assignable type error when using the "noUncheckedIndexedAccess" option.
🙂 Expected behavior
The type guard works properly even the "noUncheckedIndexedAccess" option is turned on.
For example, in the code in the code section, fruits[fruitName] should be 'string', not 'string | undefined'

It's working as intended / a known design limitation with many many issues opened already, and it really needs to be added to the FAQ.
Indexed access is not narrowed, unless the key is a literal.

Tracked at #10530


Fix: Prevent small wave from showing when large wave is displayed

Fix: Prevent small wave from displaying when large wave is shown
Fixes #70
This pull request addresses the issue where both the small and large waves were being displayed simultaneously when the large wave was requested. The changes ensure that only one wave (either large or small) is shown at a time, with priority given to the large wave when both are requested.
Changes made:

Reordered conditional statements in the print_wave function to prioritize the large wave display
Removed the small wave display when the large wave is shown

This fix improves the visual consistency of the wave display and aligns with the expected behavior as discussed in issue #70

Summary by Sourcery
This pull request fixes an issue where both the small and large waves were being displayed simultaneously. The changes ensure that only one wave is shown at a time, prioritizing the large wave when both are requested. This improves the visual consistency of the wave display.

Bug Fixes:

Ensured that the small wave is not displayed when the large wave is shown by reordering conditional statements in the print_wave function.

Looks great, testing on my local and it works perfectly. Merging!


[VCPKG] Add tests of vcpkg-tools.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Proposed solution
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Now vcpkg-tool have many test cases.


snarky submodule updated

This will make the new poseidon parameters available

needs this to be merged before: https://github.com/o1-labs/snarky/pull/579

this is ready :)

I suspect that this needs some tweaking to make unit tests work. I believe @psteckler has already made some of these changes in another branch.
I'll plan to pull in those changes and fix up the remaining tests tomorrow, if nobody else beats me to it.


bug(chat): enter not always works to send a message

STR:

go to chat
write something
enter
sometimes enter does not work

hogan, phil and I noticed this bug
macOS, m1

so far works good

cc @phillsatellite


[Bug]: container.isRunning always returns false

Module
Core
Testcontainers version
1.20.3
Using the latest Testcontainers version?
Yes
Host OS
Mac OS
Host Arch
ARM64
Docker version
Docker version 27.3.1, build ce12230
What happened?
this.getcurrentcontainerinfo().getstate().getrunning() is returning wrong state all the time
Relevant log output
No response
Additional Information
No response

Docker configuration may affect the running status of the container, especially on macOS.
If possible, try to use ServBay instead of Docker to run your container to see if it can solve the problem. Since ServBay's support on macOS may be more mature, it may avoid some Podman-related problems.

this.getcurrentcontainerinfo().getstate().getrunning() is returning wrong state all the time

I am running a test using Mac M1 with Docker Desktop and Docker Engine 27.3.1.
PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>(DockerImageName.parse("postgres:9.6.12"));
postgres.start();
System.out.println(postgres.getCurrentContainerInfo().getState().getRunning());

The code above prints true, which is expected.
I am going to close this issue but feel free to share a project that reproduces the issue you described and I will reopen.


Improve api usability

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

7 of 33 (21.21%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-14.7%) to 44.706%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

examples/main.go
0
3
0.0%

errors.go
7
30
23.33%

Totals

Change from base Build<PHONE_NUMBER>:
-14.7%

Covered Lines:
76

Relevant Lines:
170

💛  - Coveralls


Automated cherry pick of #3731: build: 避免并发构建rpm时触发file exists错误

Cherry pick of #3731 on release/2.10.0.
#3731: build: 避免并发构建rpm时触发file exists错误

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@7d9ab4e). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release/2.10.0   #3735   +/-   ##
================================================
  Coverage                  ?   7.49%
================================================
  Files                     ?     418
  Lines                     ?   66611
  Branches                  ?       0
================================================
  Hits                      ?    4991
  Misses                    ?   61192
  Partials                  ?     428

Flag
Coverage Δ

#aFlag
7.49% <ø> (?)

Continue to review full report at Codecov.

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


how to use this package

hello,i want ti use this package on turtlebot,but i do not how to run,please tell me ,thanks

Hello,
as you can see, upo_robot_navigation is a metapackage that contains a lot
of ROS packages. It was developed for the European project TERESA, and it
is no longer maintained.
Unfortunately, it is not easy to use, since it contains some packages and
dependencies that you probably do not need. Moreover, you will have to
adapt the system to take the proper input from your sensors.
I would recommend you to start through simulation of the navigation. Check
the package upo_launchers and read the readme file.
best regards,
Noé Pérez
El mié., 3 jul. 2019 a las 0:18, baogege6661<EMAIL_ADDRESS>escribió:

hello,i want ti use this package on turtlebot,but i do not how to
run,please tell me ,thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/robotics-upo/upo_robot_navigation/issues/4?email_source=notifications&email_token=ADUK36FY6EV75AM2S3CIRZ3P5PH5DA5CNFSM4H5AIIO2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G473DMA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADUK36BSLDJ3LSVYGAED2HDP5PH5DANCNFSM4H5AIIOQ
.

--
NOE PEREZ HIGUERAS
Postdoctoral Researcher - RoboticsLab
Dept. Ingenieria de Sist. y Automatica
Universidad Carlos III de Madrid
c/ Butarque, 15 28911 Leganes, Madrid
España - SPAIN


Missing Magic Items marked as Worn

This is a report to myself, and from anyone who can reply to this.
There are magic items and hybrid, both already in the compendium and not, that are not marked as "Worn" in SRD sites. But are in their books.
I will be able to access the core line of rulebooks to learn about "Worn" magic and hybrid items from those. But magic and hybrid items from APs, Single adventures, and SFS, I will need replies from people who own them, to list off "Worn" magic and hybrid items, as displayed in your books.

Attack of the Swarm Worn magic items:
Adaptive Swarm Mask (Hybrid item)
Authority Medallion
Courage Medallion
Empty Orbit Emblem
Friendship Bracelet
Glory Medallion
Hoop of Perspicacity
Monocle of Recognition
Robe of Communalism
Valor Medallion

Drift Crashers #1:

Araznian Crusader Helm

Drift Crashers #2:

None

Dead Suns #1

Iomedaean Crusader Helm

Dead Suns #2

Ring of Fangs

Dead Suns #3

None

Dead Suns #4

Celestial Stole
Eohi Boots

Dead Suns #5

Dust Goggles
Gravitic Modulator
Plant Shield Amulet
Redundancy Belt
Remote Surveyor

Dead Suns #6

None

Dawn of Flame #1:

Allegiance Collar
Telespectrum Circlet (can be installed as an armor upgrade)
Flame Shield Gauntlet

Dawn of Flame #2:

Pilot's Helmet
White Knuckle Gloves
Radiant Ensemble
Shattercoat

Dawn of Flame #3:

None

Dawn of Flame #4:

Breath-Stealer Mask (can be installed as an armor upgrade)
Soul Projector (can be installed as an armor upgrade)
Eldritch Encephalon
Weatherwear
Conqueror's Star of the Headless Vesk
Hivejack

Dawn of Flame #5:

None

Dawn of Flame #6:

Void Hag Robe
The Malikah's Robes

Against the Aeon Throne #1:

Motion-Detection Badge

Against the Aeon Throne #2:

None

Against the Aeon Throne #3:

None

Signal of Screams #1:

None

Signal of Screams #2:

Ring of the Ninth Truth

Signal of Screams #3

None

The Threefold Conspiracy #1:

None

The Threefold Conspiracy #2:

None

The Threefold Conspiracy #3:

Intonation Pendant

The Threefold Conspiracy #4:

Night hag's Heartstone functions as a lv9 worn magic item, but disappears after 24 hours. So not a real item, but sorta..?

The Threefold Conspiracy #5:

None

The Threefold Conspiracy #6:

None

Devastation Ark #1:

None

Devastation Ark #2:

Arcane Signet

Devastation Ark #3:

Entanglement Belt (Pair)
Quantum Pad
Quantum Processor

Liberation of Locus-1:

Azlanti Noble's Cloak

Junker's Delight:

None

Great Grav Train Robbery:

None

Band on the Run:

None

System Takedown:

None

Redshift Rally:

None

Before the Storm:

None

First Contact:

None

Skitter Crash, Skitter Shot, Skitter Home:

None, None, None

The Starfinder Four vs the Hardlight Harlequin:

None

Bounties #1, 2, 3 and 4:

None, None, None and None.


conda install -c fastai nbdev is not installing the last version on nvdev

I have done the conda install in Windows 10 and Ubuntu through WSL.
After installing on different environments multiple times, using the CLI
conda install -c fastai nbdev
I have to report that every time I got nbdev 0.2.4 installed and I could not find any way to update the version using conda or pip.
The only way I was able to get the latest version was by cloning the repo and doing a
pip install -e .
My main concern is that I have to keep an eye on the repo to get the latest update instead of using the package manager.
I am using conda 4.9.2 and pip 21.0.1 , in case that helps.
Am I doing something wrong? Might there be a problem with pip and conda releases?

I had the same issue.  See https://github.com/fastai/nbdev/issues/451 for my conda-based solution/workaround.

This issue is a duplicate of #436


Not recording keystrokes

Hi!
I just came across this plugin and it worked like a charm.
One thing I noticed though is that it doesn't record keyboard input, which would be great (i added my own page.type code in where necessary, but it'd be good if you could enable the plugin to record keystrokes for you.
Thanks for this great plugin, helped me as a non webdev generate reliable selectors for my little automation task! :)

Hi @Lillecarl thanks for bringing this to my attention. Would you mind writing a bit more in what behaviour you would expect and what the outcome would be? If you provide that, we can start turning this into a feature request and start working on it. Thanks!

The behaviour could work in different ways, but if you think about it this extension has the possibility of becoming a "professional" version of iMacros, where you use it for automation of forms filling or whatever that you want to have done a gazillion times. It's just a minor inconvenience, but recording keyups and keydowns would also make sure that you replicate exactly what the user did.
To be fair, if you're competent enough to install node you should be able to write your own page.type calls, but convenience is not to be neglected.
Thanks for the quick reply!

Puppeteer In Action:
1)User clicks record
2)User goes to the URL CNN.com
3)Clicks on search bar to input search text
4)User types in Washington DC
4)User clicks search
5)User stops recording
Puppeteer Output:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
const navigationPromise = page.waitForNavigation()
await page.goto('https://www.cnn.com/')
await page.setViewport({ width: 1142, height: 836 })
await navigationPromise
await page.waitForSelector('#nav__plain-header > #nav > .nav__container > #search-form > #search-button')
await page.click('#nav__plain-header > #nav > .nav__container > #search-form > #search-button')
await page.waitForSelector('#nav > .nav__container > #search-form > .search__form-fields > #submit-button')
await page.click('#nav > .nav__container > #search-form > .search__form-fields > #submit-button')
await navigationPromise
await browser.close()
})()
When running code through VSC
Puppeteer seemed to acknowledge every action besides the keyboard input, No.3. As the playback successfully interacted with the search bar, and the click search function. No user keyboard input was recorded.

@jonathanOHZ thanks for adding to the discussion. Just to be sure we are talking about the same thing, did you try hitting the TAB key after typing into the search input?
Puppeteer recorder now only records text inputs if you end them with an explicit TAB. Not ideal, but this whole recording on user input is trickier than it seems.

@tnolet that cleared up alot! Puppeteer recorder recognized the keyboard when hitting the TAB key after typing your input.

Closing this for now. just use TAB as the final key to record keyboard input.

It would be good if puppeteer-recorder inserted page.keyboard.press('Tab') in these instances.

I spent 2 hours on this.
Please put this in the front page (Chrome extension) about pressing Tab to make it record.
Also, it doesn't work when you need to test Search boxes (pressing Enter).

I spent 2 hours on this.
Please put this in the front page (Chrome extension) about pressing Tab to make it record.
Also, it doesn't work when you need to test Search boxes (pressing Enter).

Hi @ngduc sorry to hear that, but in the Readme, under usage it says literally how to use it. Bullet point 2.
Usage
Click the icon and hit Record.
Hit tab after you finish typing in an input element.

@tnolet a normal user like me reads Chrome Ext page first (screenshot), they will give up if they have to google to get to the readme file to troubleshoot it. Good extension anyway! (I think cypress recorder was built on this one)

I just want to add that this isn't really a debate. If every single user fails to record their very first test, then it doesn't matter what the instructions say.  On that note, I just want to list the small bugs/features that I've hit so far:

Not confirming after the user clicks the :repeat: restart button is devastating

UX fallacy: never assume that you know how much work it took for the user to arrive at present state
A better pattern is infinite undo or a history

Requiring tab keypress for text entry isn't going to fly

UX fallacy: never assume that the user has read the instructions
As the risk of forgetting to press tab grows with the size of the recording, so does the risk of ruining it

Here are some alternatives that I've tried and why they fail:

Cypress Recorder

UI is quite poor
Doesn't seem to really work on my Mac with Chrome 92
We want Puppeteer, Playwright or Selenium/Webdriverio, not Cypress

Testim Recorder

Requires sign-in to use (this is a nonstarter)
Likely spies on us due to their backend server tie-in
https://app.testim.io/#/signin doesn't work on my Mac in Safari 14 (this is just sloppy and doesn't bode well)
I spent 10 minutes trying to figure out how to save my test recording as Puppeteer format and finally figured out to click the <> button which shows an alert: "A dev kit connection agent is required in order to export tests into code. Please run the following command from your terminal:". Even though it looks like they put a lot of work into their app, this level of intrusion is a nonstarter for developers. much less the nontechnical users who might be recording tests. I went through the hassle and although the code was clean and recognized the q selector on the Google home page I was testing with, I couldn't find anywhere to export as Puppeteer. apparently they removed this feature and wasted an hour of my time, and now only offer to save as JavaScript or TypeScript in their own proprietary format. maybe they enable the Puppeteer and Playwright tabs for paying users.. who knows, who cares
for these reasons and more, the most important command for Testim appears to be:npm remove -g @testim/testim-cli

Chrome DevTools Recorder I had high hopes for this one since it's from Chrome, but unfortunately it has the worst GUI and UX decisions of anything that I've tried. The recorder is buried down inside DevTools and has no copy-paste functionality. It doesn't even show the actual JavaScript code, just the events. So the user has to save the script instead. The generated Puppeteer code is pretty ok, but wraps each event in its own scope so ends up being about 7 times more verbose than handwritten code

I would suggest that what you actually have here is the first viable web browser recording tool for nontechnical people. Something like this should have existed back in the mid-1990s but was blocked by various companies that didn't want things like WYSIWYG editors or people making their own websites. That unfortunate thinking led us to where we are today with online gated community echo chambers and DRM in our media codecs (instead of say, WebM and Ogg Theora/Vorbis) so even Wikipedia doesn't work in many browsers. I could talk about these various tragedies for, well, forever. If web developers aren't woke by this point, then they haven't been paying attention!
If anyone knows any other viable browser recording tools, please let us know. I hope you take these words to heart and fix Checkly's, because we all really want to use it.

Hi @zmorris thanks for your feedback.

restart confirmation: I think you have a point, in the other side we tried to make the recording flow as fast as possible and we found that people wanted that as well (record, copy and restart). We will bring the discussion up and evaluate if worth adding that new behaviour.
tab keypress: is something I have in the roadmap and I am experimenting with possible workarounds to remove that.

Hey thanks for your quick reply. It's funny, whenever I ask or or tell the internet something, the state of reality changes like that scene in The Matrix when the cat walks by again and they get deja vu and realize that "they changed something" in the simulation.
I just discovered that I can change the key from tab (9) to enter (13), which will probably work for most of our use cases:

Visit Headless Recorder's settings at chrome-extension://djeegiggegleadkkbgopoonhjimgehda/options.html
At the top in the Recorder section, click Record Key Stroke and press enter or return to change it from 9 to 13

As a quick-fix, I'd recommend changing that setting to an array to allow saving both tab (9) and enter (13). That way text inputs will "just work" for the vast majority of people, and if they need to record characters typed individually, they can press tab for now.


Install dependencies when running docker build

When I try to run the application with docker, only dependencies for the frontend are installed, and it fails to start on docker run. This PR makes it so the dependencies for the backend are also installed, which makes the application run as described in the README.

Thanks!


Using GatewayIntents::GUILD_PRESENCES causes connection failures

EDIT: If you're coming here in the future, this was a permissions issue. Read the discussion below.
I've been using the following intent configuration in my code, with no issues:
.intents(Some(GatewayIntents::GUILD_MESSAGES))

I just changed it to the following in order to be able to log when the bot connects to guilds (Event::GuildCreate):
.intents(Some(GatewayIntents::GUILD_MESSAGES | GatewayIntents::GUILD_PRESENCES))

Unfortunately that change caused the library to start failing to connect. Log output:
[04-23-2020][11:43:07 PM][twilight_http::client][DEBUG] URL: "https://discordapp.com/api/v6/gateway/bot"
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting][DEBUG] Getting bucket for path: GatewayBot
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting][DEBUG] Making new bucket for path: GatewayBot
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket GatewayBot] Starting background queue task
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket GatewayBot] Starting to get next in queue
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket GatewayBot] Starting to wait for headers from response
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket GatewayBot] Updating bucket
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket GatewayBot] Starting to get next in queue
[04-23-2020][11:43:07 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [ShardProcessor [0, 1]] Queueing
[04-23-2020][11:43:07 PM][twilight_gateway::queue][INFO] Waiting for allowance!
[04-23-2020][11:43:07 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [ShardProcessor [0, 1]] Finished queue
[04-23-2020][11:43:07 PM][twilight_http::client][DEBUG] URL: "https://discordapp.com/api/v6/gateway"
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting][DEBUG] Getting bucket for path: Gateway
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting][DEBUG] Making new bucket for path: Gateway
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket Gateway] Starting background queue task
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket Gateway] Starting to get next in queue
[04-23-2020][11:43:07 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket Gateway] Starting to wait for headers from response
[04-23-2020][11:43:08 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket Gateway] Starting to get next in queue
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::connect][DEBUG] Shook hands with remote
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::socket_forwarder][DEBUG] [SocketForwarder] Starting driving loop
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::inflater][TRACE] in:out: 111:118
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::inflater][TRACE] Data saved: 0KiB (94.07%)
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::inflater][TRACE] Capacity: 32768
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [EVENT] Hello(41250)
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::socket_forwarder][TRACE] [SocketForwarder] Sending msg: {"d":{"compression":false,"guild_subscriptions":true,"intents":768,"large_threshold":250,"presence":null,"properties":{"$browser":"twilight.rs","$device":"twilight.rs","$os":"linux","$referrer":"","$referring_domain":""},"shard":[0,1],"token":"Bot <removed>","v":6},"op":2}
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::socket_forwarder][WARN] [SocketForwarder] Got None, closing tx
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::socket_forwarder][WARN] [SocketForwarder] Leaving loop
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::r#impl][INFO] [resume] Resume started!
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::r#impl][WARN] Was not able to get the id, reconnecting.
[04-23-2020][11:43:08 PM][twilight_gateway::shard::processor::r#impl][INFO] [reconnect] Reconnection started!
[04-23-2020][11:43:08 PM][twilight_gateway::queue][INFO] Waiting for allowance!
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::connect][DEBUG] Shook hands with remote
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::socket_forwarder][DEBUG] [SocketForwarder] Starting driving loop
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::inflater][TRACE] in:out: 111:118
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::inflater][TRACE] Data saved: 0KiB (94.07%)
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::inflater][TRACE] Capacity: 32768
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [EVENT] Hello(41250)
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::socket_forwarder][TRACE] [SocketForwarder] Sending msg: {"d":{"compression":false,"guild_subscriptions":true,"intents":768,"large_threshold":250,"presence":null,"properties":{"$browser":"twilight.rs","$device":"twilight.rs","$os":"linux","$referrer":"","$referring_domain":""},"shard":[0,1],"token":"Bot <removed>","v":6},"op":2}
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::inflater][TRACE] in:out: 19:36
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::inflater][TRACE] Data saved: 0KiB (84.42%)
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::inflater][TRACE] Capacity: 32768
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [EVENT] InvalidateSession(false)
[04-23-2020][11:43:13 PM][twilight_gateway::shard::processor::r#impl][INFO] [reconnect] Reconnection started!
[04-23-2020][11:43:13 PM][twilight_gateway::queue][INFO] Waiting for allowance!
[04-23-2020][11:43:17 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket GatewayBot] Bucket appears finished, removing
[04-23-2020][11:43:18 PM][twilight_http::ratelimiting::bucket][DEBUG] [Bucket Gateway] Bucket appears finished, removing
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::connect][DEBUG] Shook hands with remote
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::socket_forwarder][DEBUG] [SocketForwarder] Starting driving loop
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::inflater][TRACE] in:out: 111:118
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::inflater][TRACE] Data saved: 0KiB (94.07%)
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::inflater][TRACE] Capacity: 32768
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [EVENT] Hello(41250)
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::socket_forwarder][WARN] [SocketForwarder] Got None, closing stream
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::socket_forwarder][WARN] [SocketForwarder] Leaving loop
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::socket_forwarder][TRACE] [SocketForwarder] Sending msg: {"d":{"compression":false,"guild_subscriptions":true,"intents":768,"large_threshold":250,"presence":null,"properties":{"$browser":"twilight.rs","$device":"twilight.rs","$os":"linux","$referrer":"","$referring_domain":""},"shard":[0,1],"token":"Bot <removed>","v":6},"op":2}
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::socket_forwarder][WARN] [SocketForwarder] Got None, closing tx
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::socket_forwarder][WARN] [SocketForwarder] Leaving loop
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::r#impl][INFO] [resume] Resume started!
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::r#impl][WARN] Was not able to get the id, reconnecting.
[04-23-2020][11:43:18 PM][twilight_gateway::shard::processor::r#impl][INFO] [reconnect] Reconnection started!
[04-23-2020][11:43:18 PM][twilight_gateway::queue][INFO] Waiting for allowance!
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::connect][DEBUG] Shook hands with remote
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::socket_forwarder][DEBUG] [SocketForwarder] Starting driving loop
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::inflater][TRACE] in:out: 110:118
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::inflater][TRACE] Data saved: 0KiB (93.22%)
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::inflater][TRACE] Capacity: 32768
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [EVENT] Hello(41250)
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::socket_forwarder][TRACE] [SocketForwarder] Sending msg: {"d":{"compression":false,"guild_subscriptions":true,"intents":768,"large_threshold":250,"presence":null,"properties":{"$browser":"twilight.rs","$device":"twilight.rs","$os":"linux","$referrer":"","$referring_domain":""},"shard":[0,1],"token":"Bot <removed>","v":6},"op":2}
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::inflater][TRACE] in:out: 19:36
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::inflater][TRACE] Data saved: 0KiB (83.77%)
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::inflater][TRACE] Capacity: 32768
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::r#impl][DEBUG] [EVENT] InvalidateSession(false)
[04-23-2020][11:43:23 PM][twilight_gateway::shard::processor::r#impl][INFO] [reconnect] Reconnection started!
[04-23-2020][11:43:23 PM][twilight_gateway::queue][INFO] Waiting for allowance!

Just to make sure, this is happening when you do it with the shard or the cluster construct?
And do you have access to the precense intent enabled for the bot?

https://discordapp.com/developers/docs/topics/gateway#gateway-intents
First, if I understand correctly, I think you need the GUILDS intent to get Event::GuildCreate. Second, GUILD_PRESENCES is a privileged intent.

Just to make sure, this is happening when you do it with the shard or the cluster construct?

This is on the cluster.

And do you have access to the precense intent enabled for the bot?

I do not! I didn't realize this intent required special permissions, my bad.

https://discordapp.com/developers/docs/topics/gateway#gateway-intents
First, if I understand correctly, I think you need the GUILDS intent to get Event::GuildCreate. Second, GUILD_PRESENCES is a privileged intent.

Yep, you're right. I misread the docs. Thanks!
It would be nice to handle permissions issues and hand some errors back to the library user in the future perhaps?

Yeah I need to handle unrecoverable error in another way. Also note that for now you just need to flip a switch on the application page. Also had a look at your profile and saw you are using it as a chat relay. Maybe a webhook will be better suited for that as you can change username in the request. At least that is how I have seen others do it.

Maybe a webhook will be better suited for that as you can change username in the request.

Ooo, I didn't know about that. That's cool!
In my case I'd rather stick to the bot approach for the flexibility down the road, but thanks for the heads-up :smile:


Does the app start on boot when set as default SMS app without explicit permission?

Didn't read internal docs in code if any, but does the app start up and can provide notifications without an explicit run at startup permission (since it is set as default SMS app)? Or do one have to open app manually upon each boot?

In my experience on Android 6.0 it was able to display notifications of coming SMS messages just after boot. No manual startup was needed. Of course if it is set as a default SMS app.


Add clippy to rust project

Especially issues like below should be fixed. e.g.
warning: casting a character literal to `u8` truncates
   --> contracts/utils/src/lib.rs:100:40
    |
100 |         || hex_string.as_bytes()[0] != ('0' as u8)
    |                                        ^^^^^^^^^^^ help: use a byte literal instead: `b'0'`
    |
    = note: `char` is four bytes wide, but `u8` is a single byte
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8
    = note: `#[warn(clippy::char_lit_as_u8)]` on by default

Hey @XuJiandong, thank you for publicly expressing your interest in iCKB by reviewing the L1 scripts source code, I personally appreciate a lot!! 🙏

Thanks for the heads-up!! I used clippy to fix automatically and then manually fixed few style warnings. I reviewed the changes and I'm running some tests, so far all good.
@XuJiandong are these changes enough? Do you have any other advice on this?


fix: Update architectural-diagram.png

This update makes the diagram more consistent with other JSS diagrams.
See relevant Google-internal chat thread here, where this update was requested.
Caveat: this does not follow the cloud.google.com diagram style guide (go/diagram-style) (e.g., no round edges for rectangles, blue font used extensively, etc.).
See the assets for this diagram and for other JSSes in this Google-internal Drive folder.
Googlers can also edit this diagram at go/jss-8.1-diagram-v2.

Warning: There is a glitch in the Architecture Diagram Tool (ADT) that changes the fill-style of the 4 numbered circles and turns the dashed line into a solid line.
Warning: You might need this Chrome extension for allowing CORS.

How to review

See the rendered diagram in README.md.
Make sure no info is lost — other than the "Virtual Private Cloud" text.
Watch out for typos.
Design feedback isn't necessary.

Nit, I preferred "cluster in US" than "US cluster" personally, but not picky. Do we have a standard / convention for that?

@bourgeoisor thank you for the quick review (as always)!
1. MCI Line

It looks from the diagram (both the old one and the new one) that the MCI cluster interacts with the user requests, but that's not the case right? Rather, the MCI interacts with the two other clusters directly (irregardless of user requests)

That's a good point.
I was hoping that the dashed line conveyed the following: "this client-to-frontend ingress arrow is only possible because of the Config cluster's resources." But I can see how it's confusing.
What should I change it do?
I believe Priyanka (DA) made another diagram for this JSS. In that diagram, the Config cluster points to the other 2 clusters.
2. Cluster in US
That sounds good to me.
I will:

update Europe cluster to Cluster in Europe
update US cluster to Cluster in US
keep Config cluster as Config cluster
Let me know if these 3 changes are okay, or if the starting cs should be lowercase.

Cluster pointing to other clusters make much more sense conceptually and is less ambiguous yes (but I can see that it can be tricky to design a diagram like that)
Your suggestions make sense to me! I think capital C makes more sense since it's the start of a "sentence" / set of words

Sounds goood!
Just updated:
1. the wording of the cluster titles
2. the dashed line(s)


Fix fiksferdig priceview

Why?
Updating Label's attributedText resulted some weird layout issues in the FINN app when we used FiksFerdigPriceView.
What?
The attributed string creation was moved to the view model.
Version Change
Minor: The view model was extended by a property.

Since HTML formatting in API strings is now normal we should probably find a way to do proper parsing of such strings, so that we can build attributed strings with dynamic UIColor values.

I agree 100% with you, but now we need to release the app 😉 That's why I cut corners.


[Sysrst_ctrl] Clarification regarding keyintr feature

Should we except interrupt if there is a edge change before the debounce and detect timer ends?

In this above waveform screenshot, the timer starts when the L2H edge is detected but before the timer ends there is edge change again(marker 1). The interrupt is still generated (Time A). Is this an acceptable scenario?
As far as I understand from https://github.com/lowRISC/opentitan/issues/10663, this edge change would be considered as a glitch but it would be great if you could confirm it. If not please correct me.

detect low-to-high / high-to-low transition, or a high / low level (depending on the configuration and signal that is being looked at)
back off for the amount of debounce cycles configured
once the debounce timer has expired, the input is sampled again to check whether it is still at the right level (e.g. high if we were looking for a low-to-high transition)

IIUC, from above description, the debounce logic only samples the pin when the timer expires, after detecting the event.
So the design won't see this glitch. It detects L->H, and after timer expires, sample the pin which is still high, hence, the interrupt occurs.

Thanks for filing the but @patel-madhuri.
@weicaiyang's understanding is correct.

Thank you @weicaiyang and @msfschaffner for clarifying this question. We have updated the testcase accordingly and merged to the master. I am closing this issue now.