Fix Firebase version to avoid compilation freeze on iOS

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation  changes
[ ] Other... Please describe:

PR Checklist
For bug fixes / features, please check if your PR fulfills the following requirements:

[x] Testing has been carried out for the changes have been added
[ ] Regression testing has been carried out for existing functionality
[ ] Docs have been added / updated

What is the purpose of this PR?

Fix Firebase version to avoid compilation freeze on iOS
Does this PR introduce a breaking change?

[ ] Yes
[x] No

What testing has been done on the changes in the PR?

resolve freeze issue on ios compilation
What testing has been done on existing functionality?

Other information

Fixed in 10.1.2-cli


[BUG] Prevent "The MessageProducer was closed due to an unrecoverable error"

Hi everyone,
I've this problem with Azure Jms Spring Library. After few times of innactivity, when I try to send a message to a topic, the library throw me this exception: "The MessageProducer was closed due to an unrecoverable error; nested exception is javax.jms.IllegalStateException: The MessageProducer was closed due to an unrecoverable error".
How can I prevent this problem? Is a configuration problem? I know that azure close connection after ten minutes of inactivity, but how can I resolve the MessageProducer error in my project?
Thanx
Project azure-servicebus-jms-spring-boot-starter
Version 2.1.7

@carcaryn you can use this property to set the idle timeout
spring.jms.servicebus.idle-timeout=[idle-timeout]

@neuqlz @saragluna
It's not that idle-timeout is not doing what it's supposed to - the connection should be dropped if the inactivity exceeds a certain threshold. (AFAIR there's the hard limit of 10min on ASB side I belive)
The BIG problem here is that jmsTemplate can no longer be used, which kind of breaks the idea of autoconfiguration - minimal setup that just works.
Let's put it like this - if it falls on me to implement reconnect logic, I'll have to override the beans created by this jms starter - then it turns out I don't need said starter at all...
So in fact, in my project, instead of using those neat @JmsListener and jmsTemplate features (all done with Apache Qpid), we had to revert to using com.microsoft.azure.servicebus.QueueClient - which for the very same scenario, handles idle disconnect/reconnect under the hood.

@zoladkow, your proposal is very reasonable, now the ability of JMS starter is very single, just support set fixed idle-timeout for the connection. And don't support the other fancy features, like reconnect after revoke, never-expired and so on. It's indeed a problem that decreases the usability of the JMS starter. We will discuss it and consider adding these related features to the starter. Now you can set the idle-timeout very long to workaround. And also PR is very welcome. Please stay tuned.

@neuqlz
Is there any update on this issue. I have tried to setup idle timeout very high but still facing same issue. Could you please provide some inputs to handle this issue.

@neuqlz
Hi, we faced with the same issue. Any updates regarding JMS starter?

Sorry, currently we don't have a concrete plan about this feature mentioned above.

Is there a workaround for this issue?

I disabled cache producers like this
CachingConnectionFactory connectionFactory = (CachingConnectionFactory) jmsTemplate.getConnectionFactory();
connectionFactory.setCacheProducers(false);
Work for me.
In future i plan to implement reconect functionality.

I tried disabling the JMS Cache Producer. It is also not working for me. In my work scenario I have 50 messages to send, but when I disable this cache producer only 2 messages sent and job remaining idle without any error or anything. I would need some one step up and check this ASAP.

I am facing the same issue. After timeout I am getting the same exception and can't reuse the JmsTemplate.

I am facing the same issue. After timeout I am getting the same exception and can't reuse the JmsTemplate.

Hi @Arnab09 , sorry for the late response. Due to that we don't have plans to enhance the reconnect function recently, so the current workaround for this issue is to disable cache of MessageProducer like @DzianisShaplyka1984 said.

Hi @Arnab09 , sorry for the late response. Due to that we don't have plans to enhance the reconnect function recently, so the current workaround for this issue is to disable cache of MessageProducer like @DzianisShaplyka1984 said.

Also want to mention that this can also occur when you modify a setting within Azure Service Bus.
For example, I can reproduce it by doing the following scenarios for Topics:
Scenario 1

Start App
Send Message
Change Topic Setting Max Size from 1GB to 2GB
Send Message
Receive Error

Scenario 2

Start App
Send Message
Change a one Subscription setting (E.g. TTL 14 -> 15 Days)
Send Message
Receive Error

So while it isn't even the timeout but rather changes on the Azure side that can also cause the problem.

@welsh thanks for your reporting, we will look into this.

Hi @welsh , I ran our sample project using version 3.1.0 and also followed your steps, but received different results: when I change the subscription or topic settings as you mentioned, the AMQP link is force detached, and session and MessageConsumer are created and registered with current connection. When I send a message, I can see MessageProducer is created and registered as well. Then messages can be sent and received successfully.
Here is the related log:
15:27:33.560 [QpidJMS Connection Executor: ID:18120a79-61a7-4575-a6e6-4b6485ccb0cf:1] INFO  org.apache.qpid.jms.JmsSession - A JMS MessageConsumer has been closed: JmsConsumerInfo: { ID:18120a79-61a7-4575-a6e6-4b6485ccb0cf:1:1:1, destination = tpc001 }
15:27:33.562 [QpidJMS Connection Executor: ID:18120a79-61a7-4575-a6e6-4b6485ccb0cf:1] INFO  org.apache.qpid.jms.JmsSession - A JMS MessageProducer has been closed: JmsProducerInfo { ID:18120a79-61a7-4575-a6e6-4b6485ccb0cf:1:2:1, destination = tpc001 }
15:27:33.562 [DefaultMessageListenerContainer-1] DEBUG o.s.j.c.CachingConnectionFactory - Closing cached Session: org.apache.qpid.jms.JmsSession@50744545
15:27:33.832 [DefaultMessageListenerContainer-1] WARN  o.s.j.l.DefaultMessageListenerContainer - Setup of JMS message listener invoker failed for destination 'tpc001' - trying to recover. Cause: The link 'G11:76383183:sub001' is force detached. Code: consumer(link96902105). Details: InnerMessageReceiver was closed. TrackingId:dfe34e1a0002e9b005c69bd960408b96_G11_B31, SystemTracker:yistand:Topic:tpc001|sub001, Timestamp:2021-03-04T07:27:33 [condition = amqp:link:detach-forced]
javax.jms.JMSException: The link 'G11:76383183:sub001' is force detached. Code: consumer(link96902105). Details: InnerMessageReceiver was closed. TrackingId:dfe34e1a0002e9b005c69bd960408b96_G11_B31, SystemTracker:yistand:Topic:tpc001|sub001, Timestamp:2021-03-04T07:27:33 [condition = amqp:link:detach-forced]
	at org.apache.qpid.jms.provider.ProviderException.toJMSException(ProviderException.java:34)
	at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:80)
	at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:112)
	at org.apache.qpid.jms.JmsMessageConsumer.dequeue(JmsMessageConsumer.java:317)
	at org.apache.qpid.jms.JmsMessageConsumer.receive(JmsMessageConsumer.java:213)
	at org.springframework.jms.connection.CachedMessageConsumer.receive(CachedMessageConsumer.java:86)
	at org.springframework.jms.support.destination.JmsDestinationAccessor.receiveFromConsumer(JmsDestinationAccessor.java:132)
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:418)
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:303)
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1189)
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1179)
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1076)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.qpid.jms.provider.ProviderException: The link 'G11:76383183:sub001' is force detached. Code: consumer(link96902105). Details: InnerMessageReceiver was closed. TrackingId:dfe34e1a0002e9b005c69bd960408b96_G11_B31, SystemTracker:yistand:Topic:tpc001|sub001, Timestamp:2021-03-04T07:27:33 [condition = amqp:link:detach-forced]
	at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToNonFatalException(AmqpSupport.java:181)
	at org.apache.qpid.jms.provider.amqp.AmqpAbstractResource.processRemoteClose(AmqpAbstractResource.java:269)
	at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:985)
	at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData(AmqpProvider.java:871)
	at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:563)
	at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:556)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1533)
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1282)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1329)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:508)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:447)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	... 1 common frames omitted
15:27:33.835 [DefaultMessageListenerContainer-1] DEBUG o.s.j.l.DefaultMessageListenerContainer - Successfully refreshed JMS Connection
15:27:34.096 [DefaultMessageListenerContainer-2] DEBUG o.s.j.c.CachingConnectionFactory - Registering cached JMS MessageConsumer for destination [tpc001]: org.apache.qpid.jms.JmsDurableTopicSubscriber@19874e5e
15:28:01.767 [http-nio-8080-exec-2] INFO  c.a.s.s.j.topic.TopicSendController - Sending message
15:28:02.025 [http-nio-8080-exec-2] DEBUG o.s.j.c.CachingConnectionFactory - Registering cached JMS Session for mode 1: org.apache.qpid.jms.JmsSession@10f5c41d
15:28:02.025 [http-nio-8080-exec-2] DEBUG o.s.jms.core.JmsTemplate - Executing callback on JMS Session: Cached JMS Session: org.apache.qpid.jms.JmsSession@10f5c41d
15:28:02.286 [http-nio-8080-exec-2] DEBUG o.s.j.c.CachingConnectionFactory - Registering cached JMS MessageProducer for destination [tpc001]: org.apache.qpid.jms.JmsMessageProducer@64680dc3
15:28:02.287 [http-nio-8080-exec-2] DEBUG o.s.jms.core.JmsTemplate - Sending created message: JmsObjectMessageFacade { org.apache.qpid.jms.provider.amqp.message.AmqpJmsObjectMessageFacade@20a0a78b }
15:28:02.568 [DefaultMessageListenerContainer-2] DEBUG o.s.j.l.DefaultMessageListenerContainer - Received message of type [class org.apache.qpid.jms.message.JmsObjectMessage] from consumer [Cached JMS MessageConsumer: org.apache.qpid.jms.JmsDurableTopicSubscriber@19874e5e] of session [Cached JMS Session: org.apache.qpid.jms.JmsSession@5934a459]
15:28:02.568 [DefaultMessageListenerContainer-2] DEBUG o.s.j.l.a.MessagingMessageListenerAdapter - Processing [org.springframework.jms.listener.adapter.AbstractAdaptableMessageListener$MessagingMessageConverterAdapter$LazyResolutionMessage@74805bc8]
15:28:02.568 [DefaultMessageListenerContainer-2] INFO  c.a.s.s.j.t.TopicReceiveController - Received message from topic: hello11

And could you show the error you received after modifying settings? Besides, to help us recurrent your issue, could you share a sample project or critical code snippet, also the pom.xml? Thanks~

Given that CachingConnectionFactory of Spring Jms doesn't expose the cached session, producer and consumer for us to remove when items are closed, thus we cancelled the usage of cache.
Also we could choose to transfer the selection of cache to customers by providing configurable properties, however, we think it could make the problem more confusing. Therefore we currently choose to remove usage of cache directly.
cc @stliu

This is Conclusion
The user is using the old lib(3.x) which does not provide cache feature by default. And the user then created the CachedConnectionFactory and JmsTemplate in their application code, then raise the issue.
The key consideration is:

Cache the connection for sending messages.
Solve the problem of  “ link detached issue “ when using JmsTemplate for sending messages.

We give two solutions for the following two cases

The user like still use the 3.x lib and define the CachedConnectionFactory and JmsTemplate by their own.
The user can consider upgrade to our new 4.0 lib and enable the pool feature. (Recommend)

Solutions:
For case 1:
As the CacheConnectionFactory not work normally we can do the following in the code to leverage this issue by resetting the connection on condition.
try {
    jmsTemplate.convertAndSend(QUEUE_NAME, new User(message));
} catch (Exception exception) {
    if(exception instanceof IllegalStateException && exception.getMessage().contains("MessageProducer was closed")) {
        ((CachingConnectionFactory) jmsTemplate.getConnectionFactory()).resetConnection();
        jmsTemplate.convertAndSend(QUEUE_NAME, new User(message));
    }
}

For case 2:

Include the dependency:  spring-cloud-azure-starter-servicebus-jms:4.0.0. See maven repo
Config the yaml file with the right option. The pool option should be enabled.
Only this pool enabled can avoid the issue encountered while sending messages. This is important.
No custom-defined bean of “JmsTemplate” and “ConnectionFactory” is needed. All of these are autoconfigured as the lib is in the classpath.

Additonal Reference

new dependency setup using bom:

<dependency>
  <groupId>com.azure.spring</groupId>
  <artifactId>spring-cloud-azure-dependencies</artifactId>
  <version>${version.spring.cloud.azure}</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>

<dependency>
  <groupId>com.azure.spring</groupId>
  <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>

configurations for yml which will enable the pooling feature for the jms connection factory.

spring:
  jms:
    servicebus:
      connection-string: ${SERVICEBUS_NAMESPACE_CONNECTION_STRING}
      idle-timeout: 1800000
      pricing-tier: ${PRICING_TIER}
      pool:
        enabled: true
        max-connections: ${MAX_CONNECTIONS}

Hi,
This is a conclusion for this issue, we will:

Give a short description of the issue background.
Give a short cause analysis.
Show related artifact versions and its problems users may encounter.
Give a workaround of recommendation for new 4.x.x version starter and describe how it mitigates the issue.
Give a workaround if using old artifacts.

About issue background
When using the Jms starter for service bus, we want to use the cached feature of the JmsProducer in JmsTemplate which is provided by Spring-Jms framework. But when a CachingConnectionFactory is used, no matter via the auto-configuration the starter provides or created by users directly, applications will run into the issue that JmsTemplate fails to send messages after ten minutes of inactivity, which is because that Azure Service Bus closes connection from the server side.
Cause analysis
When using CachingConnectionFactory for the JmsTemplate(user defined or auto-configured from the starter), the internal link is force detached after 10 minutes inactivity while the upper lever producer is cached. See AMQP errors: Link is closed for more details.
For CachingConnectionFactory is a container and management utility for JMS sessions, producers, consumers and is not aware of the internal Service Bus connection status, when the underlying link is closed, the JMS session is dead but is not handled automatically.
So the JmsTemplate will not be available using the cached JmsProducer, which is working using the underlying link within the dead session.
Related artifact versions

artifact maven url

Starter & Version
What does the auto-configuration provide
Problems users may encounter

2.1.7 ~ 3.2.0
CachingConnectionFactory
JmsTemplate will be not available when JmsProducer is closed.

3.3.0 ~ 3.14.0
raw JmsConnectionFactory
Low efficiency for creating JmsProducer each time sending messages.

4.x.x
CachingConnectionFactory, PooledConnectionFactory
For default config, CachingConnectionFactory is used, JmsTemplate will be not available when JmsProducer is closed.

Workarounds
Workaround-1: Upgrade to new 4.x.x starter(This is the Recommended)
Version 4.x.x provides pooled feature for ConnectionFactory. Enabling the pooled connection factory will mitigate this issue while we can take advantage of the caching resource feature which can be used for boosting the operation efficiency. This can work because that the PooledConnectionFactory will clear the underlying connection before the session is dead for inactivity.

Dependency: include  spring-cloud-azure-starter-servicebus-jms:4.x.x. See maven repo

Use the following snippet:
<dependency>
  <groupId>com.azure.spring</groupId>
  <artifactId>spring-cloud-azure-dependencies</artifactId>
  <version>${version.spring.cloud.azure}</version><!-- replace it with 4.x.x version above mentioned -->
  <type>pom</type>
  <scope>import</scope>
</dependency>

<dependency>
  <groupId>com.azure.spring</groupId>
  <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>

Configuration. Enable the pool option.

Only this pool enabled can avoid the issue encountered while sending messages. This is important.

Use the following snippet:
spring:
  jms:
    servicebus:
      connection-string: ${SERVICEBUS_NAMESPACE_CONNECTION_STRING}
      idle-timeout: 1800000
      pricing-tier: ${PRICING_TIER}
      pool:
        enabled: true
        max-connections: ${MAX_CONNECTIONS}

Workaround-2: Use the old artifact
As the CacheConnectionFactory does not work normally we can do the following work around in the code to mitigate this issue by resetting the connection on condition. This will clear the JMS sessions in the context and JmsTemplate will create new session and producer for the next sending operation.
Use the following snippet:
try {
    jmsTemplate.convertAndSend("QUEUE_NAME", "messagexxx");
} catch (Exception exception) {
    if(exception instanceof IllegalStateException && exception.getMessage().contains("MessageProducer was closed")) {
        ((CachingConnectionFactory) jmsTemplate.getConnectionFactory()).resetConnection();
        jmsTemplate.convertAndSend("QUEUE_NAME", "messagexxx");
    }
}

close the summary presented. If more question, reopen this issue then.

Hi, using spring-cloud-azure-starter-servicebus-jms:4.0.0 or a later version 4.3.0 with the pool:enabled: true setting makes the factory class org.messaginghub.pooled.jms.JmsPoolConnectionFactory. Can you confirm if the solution above is referring to the activemq version of PooledConnectionFactory?
According to this issue getting the JmsPoolConnectionFactory is the expected behaviour.
Using JmsPoolConnectionFactory we still appear to get the issue of closed sessions. With settings spring.jms.servicebus.pool.idle-timeout=30000 and spring.jms.servicebus.pool.time-between-expiration-check=60000 in a debug session I can see that a connection is eligible to be marked expired except there is still a reference count of 1. This is with our app just started and no JMS message activity. So I don't think the connections are getting removed before we hit the issue above.
What I am seeing looks similar to this bug  that was raised (albeit a long time ago) onPooledConnectionFactory where decrementReferenceCount was not being called. So I would like to clarify if there is some specific config to get the eviction behaviour working with JmsPoolConnectionFactory or if it does have an issue where the connection created on startup needs closing to get the reference count to 0?
Alternatively it it applies, could you provide an example of the specific dependency and bean configuration required to get PooledConnectionFactory working on the latest version of spring-cloud-azure-starter-servicebus-jms for use with JmsListenerContainerFactory and JmsTemplate? thanks

So far trying to get PooledConnectionFactory working I have added the following dependencies to the project: com.azure.spring:spring-cloud-azure-autoconfigure to get the AzureServiceBusJmsProperties and
org.apache.activemq:activemq-pool to get PooledConnectionFactory.
The bean declaration is:

    @Bean
    public ConnectionFactory jmsConnectionFactory(AzureServiceBusJmsProperties serviceBusJmsProperties) {
        final String connectionString = serviceBusJmsProperties.getConnectionString();
        final String clientId = serviceBusJmsProperties.getTopicClientId();
        final Duration idleTimeout = serviceBusJmsProperties.getIdleTimeout();

        final ServiceBusKey serviceBusKey = ConnectionStringResolver.getServiceBusKey(connectionString);

        final String remoteUri = String.format("amqps://%s?amqp.idleTimeout=%d&amqp.traceFrames=true",
                serviceBusKey.getHost(), idleTimeout.get(ChronoUnit.MILLIS));

        final JmsConnectionFactory jmsConnectionFactory =
                new JmsConnectionFactory(
                        serviceBusKey.getSharedAccessKeyName(),
                        serviceBusKey.getSharedAccessKey(),
                        remoteUri
                );
        jmsConnectionFactory.setClientID(clientId);

        PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();
        pooledConnectionFactory.setConnectionFactory(jmsConnectionFactory);
        return pooledConnectionFactory;
    }

However I cannot seem to find the correct jar to import ServiceBusKey and ConnectionStringResolver - package com.azure.spring.autoconfigure.jms it looks like these classes weren't migrated to com.azure.spring.cloud.autoconfigure.jms in the 4.x.x versions?
If you can point me to the correct dependency to get these classes or another way to get the service bus key from the connection string, that would be much appreciated. Thanks.

@craigblackman2 You can add the following dependencies as needed:
 <dependency>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>spring-cloud-azure-autoconfigure</artifactId>
      <version>1.2.6</version>
    </dependency>

or
   <dependency>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>spring-jms-starter-azure-servicebus</artifactId>
      <version>1.2.0</version>
    </dependency>

So far trying to get PooledConnectionFactory working I have added the following dependencies to the project: com.azure.spring:spring-cloud-azure-autoconfigure to get the AzureServiceBusJmsProperties and org.apache.activemq:activemq-pool to get PooledConnectionFactory.
The bean declaration is:
    @Bean
    public ConnectionFactory jmsConnectionFactory(AzureServiceBusJmsProperties serviceBusJmsProperties) {
        final String connectionString = serviceBusJmsProperties.getConnectionString();
        final String clientId = serviceBusJmsProperties.getTopicClientId();
        final Duration idleTimeout = serviceBusJmsProperties.getIdleTimeout();

        final ServiceBusKey serviceBusKey = ConnectionStringResolver.getServiceBusKey(connectionString);

        final String remoteUri = String.format("amqps://%s?amqp.idleTimeout=%d&amqp.traceFrames=true",
                serviceBusKey.getHost(), idleTimeout.get(ChronoUnit.MILLIS));

        final JmsConnectionFactory jmsConnectionFactory =
                new JmsConnectionFactory(
                        serviceBusKey.getSharedAccessKeyName(),
                        serviceBusKey.getSharedAccessKey(),
                        remoteUri
                );
        jmsConnectionFactory.setClientID(clientId);

        PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();
        pooledConnectionFactory.setConnectionFactory(jmsConnectionFactory);
        return pooledConnectionFactory;
    }

However I cannot seem to find the correct jar to import ServiceBusKey and ConnectionStringResolver - package com.azure.spring.autoconfigure.jms it looks like these classes weren't migrated to com.azure.spring.cloud.autoconfigure.jms in the 4.x.x versions? If you can point me to the correct dependency to get these classes or another way to get the service bus key from the connection string, that would be much appreciated. Thanks.

@craigblackman2 ServiceBusKey and ConnectionStringResolver no longer exist in 4.x.x.

Hi, using spring-cloud-azure-starter-servicebus-jms:4.0.0 or a later version 4.3.0 with the pool:enabled: true setting makes the factory class org.messaginghub.pooled.jms.JmsPoolConnectionFactory. Can you confirm if the solution above is referring to the activemq version of PooledConnectionFactory? According to this issue getting the JmsPoolConnectionFactory is the expected behaviour.
Using JmsPoolConnectionFactory we still appear to get the issue of closed sessions. With settings spring.jms.servicebus.pool.idle-timeout=30000 and spring.jms.servicebus.pool.time-between-expiration-check=60000 in a debug session I can see that a connection is eligible to be marked expired except there is still a reference count of 1. This is with our app just started and no JMS message activity. So I don't think the connections are getting removed before we hit the issue above.
What I am seeing looks similar to this bug that was raised (albeit a long time ago) onPooledConnectionFactory where decrementReferenceCount was not being called. So I would like to clarify if there is some specific config to get the eviction behaviour working with JmsPoolConnectionFactory or if it does have an issue where the connection created on startup needs closing to get the reference count to 0?
Alternatively if it applies, could you provide an example of the specific dependency and bean configuration required to get PooledConnectionFactory working on the latest version of spring-cloud-azure-starter-servicebus-jms for use with JmsListenerContainerFactory and JmsTemplate? thanks

I will investigate this.

So far trying to get PooledConnectionFactory working I have added the following dependencies to the project: com.azure.spring:spring-cloud-azure-autoconfigure to get the AzureServiceBusJmsProperties and org.apache.activemq:activemq-pool to get PooledConnectionFactory.
The bean declaration is:
    @Bean
    public ConnectionFactory jmsConnectionFactory(AzureServiceBusJmsProperties serviceBusJmsProperties) {
        final String connectionString = serviceBusJmsProperties.getConnectionString();
        final String clientId = serviceBusJmsProperties.getTopicClientId();
        final Duration idleTimeout = serviceBusJmsProperties.getIdleTimeout();

        final ServiceBusKey serviceBusKey = ConnectionStringResolver.getServiceBusKey(connectionString);

        final String remoteUri = String.format("amqps://%s?amqp.idleTimeout=%d&amqp.traceFrames=true",
                serviceBusKey.getHost(), idleTimeout.get(ChronoUnit.MILLIS));

        final JmsConnectionFactory jmsConnectionFactory =
                new JmsConnectionFactory(
                        serviceBusKey.getSharedAccessKeyName(),
                        serviceBusKey.getSharedAccessKey(),
                        remoteUri
                );
        jmsConnectionFactory.setClientID(clientId);

        PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();
        pooledConnectionFactory.setConnectionFactory(jmsConnectionFactory);
        return pooledConnectionFactory;
    }

However I cannot seem to find the correct jar to import ServiceBusKey and ConnectionStringResolver - package com.azure.spring.autoconfigure.jms it looks like these classes weren't migrated to com.azure.spring.cloud.autoconfigure.jms in the 4.x.x versions? If you can point me to the correct dependency to get these classes or another way to get the service bus key from the connection string, that would be much appreciated. Thanks.

@craigblackman2 ServiceBusKey and ConnectionStringResolver no longer exist in 4.x.x.

Thanks, I did see a reply about using an older version but assume that was not really viable. What is the latest way of obtaining the service bus key then?

@craigblackman2 Can you tell us about your usage scenarios, or have error logs?
In this PR we have provided serviceBusJmsConnectionFactoryFactory. You can refer to ConnectionStringResolver and ServiceBusKey to try.

@hui1110 Our usage scenario is receiving a JMS message via a method annotated with @JmsListenerto trigger a Spring Batch Job, once that Job has finished, another job will be started automatically by the app sending a message via JmsTemplate. We have seen lots of errors stating closed JMS session and MessageProducer is closed so the jobs are not executed. This is mostly where the jobs run longer than 10 minutes.
We originally tried the approach or re-sending a message when IllegalStateException occurs as suggested above but this did not reliably solve. So we have tried the solution above using pool enabled but we are not seeing connections being evicted.
I expect to see o.m.pooled.jms.JmsPoolConnectionFactory: Connection has expired or was closed: ConnectionPool[null] and will be destroyed in the logs every time a connection is evicted. As mentioned, once the app starts up we do not see these logs. In a debug session I can see that the eviction check is running but there is still one reference count so it does not get evicted.  We are not explicitly opening and closing connections ourselves and are relying upon the behaviour of the connection factory as is.
As an aside I attempted to get PooledConnectionFactory working but received class cast exceptions when a connection was trying to be initiated:   Error while attempting to add new Connection to the pool; nested exception is java.lang.ClassCastException: class org.apache.qpid.jms.JmsConnection cannot be cast to class org.apache.activemq.ActiveMQConnection (org.apache.qpid.jms.JmsConnection

@hui1110 Yonghui Ye (CSI Interfusion Inc) Vendor Our usage scenario is receiving a JMS message via a method annotated with @JmsListenerto trigger a Spring Batch Job, once that Job has finished, another job will be started automatically by the app sending a message via JmsTemplate. We have seen lots of errors stating closed JMS session and MessageProducer is closed so the jobs are not executed. This is mostly where the jobs run longer than 10 minutes.
We originally tried the approach of re-sending a message when IllegalStateException occurs as suggested above but this did not reliably solve. So we have tried the solution above using pool enabled but we are not seeing connections being evicted.
I expect to see o.m.pooled.jms.JmsPoolConnectionFactory: Connection has expired or was closed: ConnectionPool[null] and will be destroyed in the logs every time a connection is evicted. As mentioned, once the app starts up we do not see these logs. In a debug session I can see that the eviction check is running but there is still one reference count so it does not get evicted. We are not explicitly opening and closing connections ourselves and are relying upon the behaviour of the connection factory as is.
As an aside I attempted to get PooledConnectionFactory working but received class cast exceptions when a connection was trying to be initiated:  Error while attempting to add new Connection to the pool; nested exception is java.lang.ClassCastException: class org.apache.qpid.jms.JmsConnection cannot be cast to class org.apache.activemq.ActiveMQConnection (org.apache.qpid.jms.JmsConnection

I'll start investigating this tomorrow and will reply asap.

@hui1110 Best I don't share full logs here but do have some further that could be useful, is it possible via a direct message or azure support ticket? Anyway a cut down version of events:
15:49:56.113 Started Application in 42.669 seconds (JVM running for 43.438)
15:51:35.774 o.s.j.connection.JmsTransactionManager   : Participating in existing transaction (JMS message received)
Job still running - loading csv files into DB but no other JMS related activity/Various job processing logs...
We then saw a link tracker error, but connection recovery was not attempted:
16:06:35.795  INFO 63476 --- [-a689e84fbba2:2] o.a.qpid.jms.JmsLocalTransactionContext  : Rollback failed for transaction: TX:ID:8d12d1b0-a6b8-4d2e-b2b9-a689e84fbba2:2:86
16:06:35.799  WARN 63476 --- [-a689e84fbba2:2] org.apache.qpid.jms.JmsSession           : Rollback of active transaction failed due to error:
org.apache.qpid.jms.exceptions.JmsConnectionFailedException: The JMS connection has failed: The Provider has failed
at org.apache.qpid.jms.provider.exceptions.ProviderFailedException.toJMSException(ProviderFailedException.java:35)
at org.apache.qpid.jms.provider.exceptions.ProviderFailedException.toJMSException(ProviderFailedException.java:21)
at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:80)
at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:112)
at org.apache.qpid.jms.JmsConnection.rollback(JmsConnection.java:873)
at org.apache.qpid.jms.JmsLocalTransactionContext.doRollback(JmsLocalTransactionContext.java:268)
at org.apache.qpid.jms.JmsLocalTransactionContext.shutdown(JmsLocalTransactionContext.java:331)
at org.apache.qpid.jms.JmsSession.shutdown(JmsSession.java:353)
at org.apache.qpid.jms.JmsSession.sessionClosed(JmsSession.java:406)
at org.apache.qpid.jms.JmsConnection$6.run(JmsConnection.java:1475)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.qpid.jms.provider.exceptions.ProviderFailedException: The Provider has failed
at org.apache.qpid.jms.provider.amqp.AmqpProvider.checkClosedOrFailed(AmqpProvider.java:1557)
at org.apache.qpid.jms.provider.amqp.AmqpProvider.rollback(AmqpProvider.java:744)
at org.apache.qpid.jms.JmsConnection.rollback(JmsConnection.java:867)
... 8 common frames omitted
Caused by: org.apache.qpid.jms.provider.exceptions.ProviderConnectionRemotelyClosedException: The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'. TrackingId:fa20cd9feb2340de981a72bbb0143606_G73, SystemTracker:gateway7, Timestamp:2022-09-27T15:06:38 [condition = amqp:connection:forced]
at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToConnectionClosedException(AmqpSupport.java:128)
at org.apache.qpid.jms.provider.amqp.AmqpConnection.processRemoteClose(AmqpConnection.java:148)
at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:961)
at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData(AmqpProvider.java:871)
at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:563)
at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:556)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373)
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:449)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
... 1 common frames omitted
16:06:51.271 TRACE 63476 --- [ns-pool-evictor] o.m.pooled.jms.JmsPoolConnectionFactory  : Connection has expired or was closed: ConnectionPool[null] and will be destroyed
16:06:51.271 TRACE 63476 --- [ns-pool-evictor] o.m.pooled.jms.JmsPoolConnectionFactory  : Destroying connection: ConnectionPool[null]
More job related logs / job completes but we are not able to send the next JMS message:
16:24:41.863 ERROR Encountered an error sending JMS message org.springframework.jms.IllegalStateException: The Session was closed due to an unrecoverable error.; nested exception is javax.jms.IllegalStateException: The Session was closed due to an unrecoverable error. 	at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:274) 	at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:185) 	at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:507) 	at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:584) 	at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:661) 	Caused by: javax.jms.IllegalStateException: The Session was closed due to an unrecoverable error. 	at org.apache.qpid.jms.JmsSession.checkClosed(JmsSession.java:1103) 	at org.apache.qpid.jms.JmsSession.createQueue(JmsSession.java:751) 	at org.messaginghub.pooled.jms.JmsPoolSession.createQueue(JmsPoolSession.java:192)
So we don't see the connection being evicted/renewed before and I think it should be run every 60 secs with our config.

@craigblackman2 Can you provide a sample that reproduces the problem, I run it locally for about 50 minutes and send and receive messages normally. Here is the log:
2022-09-28 17:52:37.431  INFO 16892 --- [nio-8090-exec-1] com.hui.jms.TopicSendController          : Sending message
2022-09-28 17:52:37.918  INFO 16892 --- [ntContainer#0-1] com.hui.jms.TopicReceiveService          : Received message from topic: hello
2022-09-28 18:08:34.836  INFO 16892 --- [nio-8090-exec-2] com.hui.jms.TopicSendController          : Sending message
2022-09-28 18:08:35.169  INFO 16892 --- [ntContainer#0-1] com.hui.jms.TopicReceiveService          : Received message from topic: hello
2022-09-28 18:37:48.096  INFO 16892 --- [nio-8090-exec-4] com.hui.jms.TopicSendController          : Sending message
2022-09-28 18:37:48.414  INFO 16892 --- [ntContainer#0-1] com.hui.jms.TopicReceiveService          : Received message from topic: hello
2022-09-28 18:46:59.209  INFO 16892 --- [nio-8090-exec-6] com.hui.jms.TopicSendController          : Sending message
2022-09-28 18:46:59.541  INFO 16892 --- [ntContainer#0-1] com.hui.jms.TopicReceiveService          : Received message from topic: hello

I use the code from this sample: servicebus-jms-topic
application.yaml
spring:
  jms:
    servicebus:
      connection-string: <connection-string>;EntityPath=tpc001
      idle-timeout: 20000
      pricing-tier: Standard
      topic-client-id:
      pool:
        enabled: true
        max-connections: 1

@hui1110 thanks, I will look at that example although the queue version - we are using a queue not a topic on the service bus. Can I ask the significance of using spring.jms.servicebus.idle-timeout: 20000 as that is different to the value of spring.jms.servicebus.idle-timeout:1800000 provided in the solution/workaround above on 17th May?
1800000 is the default value so we removed that config from our properties completely.
I will amend our config and carry out some further tests. If the value should be 20000 or as long as it's less than 300000  for that error The connection was inactive for more than the allowed 300000 milliseconds and is closed by container 'LinkTracker'? I think the solution post needs amending to be specific about that.

@craigblackman2  Referring to this sample,  when the property spring.jms.servicebus.idle-timeout is removed, my application works fine. If you could provide a sample that reproduces the problem, it might speed me up to reproduce the problem and solve it.

@craigblackman2 I am not from Azure but we had a lot of issues with Azure Service Bus JMS (from my point of view it is only for really simple use cases). From my observation your problem is that the job is running too long and during this time its session for the received message is closed (message lock duration).  Maximum time which can be used for processing a message is 5 minutes. JMS does not support renew messages. So for long running jobs is Azure Service Bus JMS useless and you have to implement some custom mechanism how to do it.

@hui1110
Put a thread.sleep for 20 mins in your receiver ( In the sample code) . See if you can reproduce the issue

I have long running job once i receive the message.

Thanks for the input @Saljack, that is very helpful - have been looking into this for a long time. @hui1110 if I put a Thread.sleep(330000)  in the sample code I see the following in the logs - we have seen many of these errors in our logs over the last few months so it's definitely part of our issue. If we cannot have a message processing time of longer than five minutes that's quite a limitation for us.
2022-09-30 17:01:31.231  WARN 24868 --- [ntContainer#0-1] o.s.j.l.DefaultMessageListenerContainer  : Execution of JMS message listener failed, and no ErrorHandler has been set.

javax.jms.TransactionRolledBackException: Transaction is not declared Reference:307364a2-2dd3-4e19-a305-9ced2b040edd, TrackingId:cbbe89b1-d1fa-4000-b34b-462e0c137419_G73, SystemTracker:gtm, Timestamp:2022-09-30T16:01:31 [condition = amqp:transaction:unknown-id]
	at org.apache.qpid.jms.provider.exceptions.ProviderTransactionRolledBackException.toJMSException(ProviderTransactionRolledBackException.java:40) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.provider.exceptions.ProviderTransactionRolledBackException.toJMSException(ProviderTransactionRolledBackException.java:26) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:80) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:112) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.JmsConnection.commit(JmsConnection.java:852) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.JmsLocalTransactionContext.commit(JmsLocalTransactionContext.java:186) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.JmsSession.commit(JmsSession.java:258) ~[qpid-jms-client-0.53.0.jar:na]
	at org.messaginghub.pooled.jms.JmsPoolSession.commit(JmsPoolSession.java:266) ~[pooled-jms-1.2.4.jar:na]
	at org.springframework.jms.support.JmsUtils.commitIfNecessary(JmsUtils.java:218) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:776) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:680) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:331) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:270) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227) ~[spring-jms-5.3.21.jar:5.3.21]
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120) ~[spring-jms-5.3.21.jar:5.3.21]
	at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Caused by: org.apache.qpid.jms.provider.exceptions.ProviderTransactionRolledBackException: Transaction is not declared Reference:307364a2-2dd3-4e19-a305-9ced2b040edd, TrackingId:cbbe89b1-d1fa-4000-b34b-462e0c137419_G73, SystemTracker:gtm, Timestamp:2022-09-30T16:01:31 [condition = amqp:transaction:unknown-id]
	at org.apache.qpid.jms.provider.amqp.AmqpTransactionCoordinator.processDeliveryUpdates(AmqpTransactionCoordinator.java:91) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:1009) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData(AmqpProvider.java:871) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:563) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:556) ~[qpid-jms-client-0.53.0.jar:na]
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373) ~[netty-handler-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236) ~[netty-handler-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285) ~[netty-handler-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510) ~[netty-codec-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:449) ~[netty-codec-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279) ~[netty-codec-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[netty-transport-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.78.Final.jar:4.1.78.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.78.Final.jar:4.1.78.Final]
	... 1 common frames omitted
Caused by: org.apache.qpid.jms.provider.ProviderException: Transaction is not declared Reference:307364a2-2dd3-4e19-a305-9ced2b040edd, TrackingId:cbbe89b1-d1fa-4000-b34b-462e0c137419_G73, SystemTracker:gtm, Timestamp:2022-09-30T16:01:31 [condition = amqp:transaction:unknown-id]
	at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToNonFatalException(AmqpSupport.java:181) ~[qpid-jms-client-0.53.0.jar:na]
	at org.apache.qpid.jms.provider.amqp.AmqpTransactionCoordinator.processDeliveryUpdates(AmqpTransactionCoordinator.java:89) ~[qpid-jms-client-0.53.0.jar:na]
	... 29 common frames omitted

@craigblackman2 Perhaps it's a misunderstanding.
The "message processing" should not be understood as the job that is started as a result of receiving a message.
Any time you see that a documentation makes a distinction between these tree steps: a.client receives a message, b.client processes the message, c.client acks/rejects the message, it's in fact still a single logical action that should be executed and finished ASAP. Even if you set the session or receive mode to CLIENT_ACKNOWLEDGE or PEEKLOCK or some such this needs to happen fast.
If your solution expects to start a job, then any result (or error) of this job should be communicated as a separate message.
If your solution expects to start and finish a job within the same transaction, then you need to find other ways to accomplish this. Also it might not be the best idea to have transactions hanging for so long.

@superrdean It's not a "fancy feature" just a valid expectation that a starter package should not contain such a trivial and unreasonable limitation like a timeout exception that is not being handled.
I mean there are workarounds, true, but those should not be required on the client code, which just has JmsTemplate instance provided by injection.
@jialigit Which brings me to your problem summary.
As you clearly stated this, those are all workarounds - even the pool property in recent version. Why not fix this instead? Permanently, for all use cases?
I mean, my biggest problem is that it is a STARTER and starters are meant to be just plug&play with bare minimum config required. And having some background job sending messages with undetermined intervals is a VERY COMMON use case. Heck, pooling should not be even needed for that.

@zoladkow thanks for the post, yes I take your point. Long running transactions are not ideal and we will likely have to look at an alternative approach.
@hui1110 I am coming to the conclusion that the connection eviction will not happen in an app where a JmsListener and JmsTemplate instance are used as the JmsListener will always have a reference to the connection so even if the connection is eligible for eviction by the idle time out thread it will not happen as referenceCount is 1.

@craigblackman2 Can you help confirm the above two points?

@hui1110 sorry for the delay. Point 1 - yes this is the case.
Point 2 - yes to an extent -  it does not have MessageProducer errors if a job is around 5 minutes but we still see other session closed errors as in the logs shared above if a job is 10 minutes or more. We will then see the Transaction is not declared Reference error.
If a job lasts between 5 and 10 minutes, the sending succeeds but the JMS listener fails so the message for the second job is lost.

@hui1110
Could you please update the status of this issue?

which has been fixed.

Can we close it now?

Currently investigating the referencecount refresh issue.

How about creating a new issue?

Sorry, I do not want to be a prude but how is this issue fixed? By this: https://github.com/microsoft/azure-spring-boot/issues/817#issuecomment-1128550965 ?
Because there is no fix for this issue, there are just workarounds. There is still no fix for it. Why do you want to close it if it is not fixed yet? If you think it is enough for closing this issue then it is pretty sad.

This issue is for tracking the exception: The MessageProducer was closed due to an unrecoverable error, which has been fixed. Currently investigating the referencecount refresh issue.

@hui1110 what's the fix when you say 'has been fixed'?

This issue is for tracking the exception: The MessageProducer was closed due to an unrecoverable error, which has been fixed. Currently investigating the referencecount refresh issue.

@hui1110 what's the fix when you say 'has been fixed'?

Enable pools to avoid exceptions thrown when sending messages: The MessageProducer was closed due to an unrecoverable error

Enable pools to avoid exceptions thrown when sending messages: The MessageProducer was closed due to an unrecoverable error

Really? Where is it enabled? It is starting ridiculous. This is just a workaround (which all users of this library have to use). It is not described anywhere (only in one comment in this issue). If you think it is enough then it is really sad. If you think it is the solution then you should enable it by default. You should definitely write it to reference documentation. It is completely missing there. It is really funny that someone have time to advocate this solution as fix (pretend it is no problem) but he/they do not have time to write it to reference documentation or enable it in autoconfiguration (I can understand that it is not backward compatible). Do you really want to solve this issue again and again?

@Saljack  we agree that using pool connection facotry for such case should not be announced as a fix, a fix should be able to enable send/receive messages normally and smoothly without exceptions or without extra configuration. Our current plan for this issue that:

we will validate the usage of pool connection factory and give clear introducation and instruction for it in our reference doc/quickstart/samples.
we will investigate to solve this issue instead of providing a workaround only. And the process will be tracked in https://github.com/Azure/azure-sdk-for-java/issues/31966

I had the same issue and I fixed it by enabling pool in spring boot
spring:
  jms:
    servicebus:
      connection-string: Endpoint=sb://*******w=
      pricing-tier: standard
      pool:
        enabled: true

More information
https://learn.microsoft.com/en-us/azure/developer/java/spring-framework/spring-jms-troubleshooting-guide#the-messageproducer-was-closed-due-to-an-unrecoverable-error

This issue has been inactive for a while. We‘re going to close it. If you have any questions, please open an issue on https://github.com/Azure/azure-sdk-for-java


Highlighting macros inside the preamble part of the main file.

Currently, we only highlight macros in the main file after the preamble.
#define ABC 1
// preamble ends here, and we don't highlight the macro ABC.

void f() {
}

Fixed in upstream rL372725.


add the source books covers for current Delphi-Books.com website

done 20230702
available in /database/datas


[bug] Unable to install modules

Describe the bug
On a comfyUI portable install. I get this issue after installing with comfyUI manager.
I've tried manually installing tensorflow and it bugs comfyUI to the point I had to set up a fresh install. could use a hand.
Reproduction
No response
Expected behavior
Load all nodes. when installed using comfyUI manager.
Platform and versions
Windows, ComfyUI Portable.

Console output
[comfy_mtb] | STATUS -> Some nodes failed to load:
        Failed to import module faceswap because ModuleNotFoundError: No module named 'onnx.onnx_cpp2py_export.defs'; 'onnx.onnx_cpp2py_export' is not a package
        Failed to import module image_interpolation because ModuleNotFoundError: No module named 'tensorflow'

Additional context
Been having major issues with mtb installs, some of the features would be very useful for things im doing with tutorials and animation.

Hi,
On windows in order to have GPU support I use an older version of tensorflow since they dropped GPU support on native windows.
This leads to quite a few issues that I try to patch in the install but it's obviously not enough (a lot of issues are about this)
In your case though (the onnx error) I think it might be the python version (for now mtb is only working with 3.10.X and I'm working on 3.11 support).
If you can confirm your python version it would be useful

Python 3.10.9

If it helps, I get this error when installing (same python version as @Ferniclestix)
ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'C:\\Users\\xxx\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\onnxruntime\\capi\\onnxruntime_providers_shared.dll'
 Consider using the `--user` option or check the permissions.

Also a duplicate of #83 I guess

same trouble...

Some clue as commented here on this related issue https://github.com/melMass/comfy_mtb/issues/83

Thanks, interesting.
I think there are two distinct issues here. The one @roop03988 linked to seems to indeed be related to the OPs issue, but @rcoedo your case is a bit different, it took me time to understand but my install script is trying to be smarter than needed and spawn threads... windows and pip don't like that and the file lock result in the issue you are seeing, I will have a fix for that this week

Hi,
The problematic nodes are removed in the next version, more precisely they are optional, you can learn more about it in the readme where I link to alternatives: https://github.com/melMass/comfy_mtb#optional-nodes


Store accountID as contact upon lightning payment

[ ] Identify db & table
[ ] Any changes to query logic?

This may be better off using the nostr directory to save the nostr user (kind-0) to store recent contacts.
Wallets doing this currently:

Mutiny
Primal
Zeus


Prepare 0.37.0 release

@benogle Can you bump the version on this theme as well so it makes it into 0.170.0?

We publish via apm which bumps the version automatically. I just ran apm publish minor and upgraded it in Atom's package.json file, thanks for the reminder.


Shared Server Redirect Problem

Issue Type: Bug
When i use the shared server (extension feature) for acess my project from my another machine in anhother local i'm having some problems because in my project i use redirect of localhost to my machine IP adress (eg.: <IP_ADDRESS>) and when i acess from my another machine using the shared server i've seeing broken links
Obs.: I use redirect from local host to my machine IP adress because others developers are testing the aplication with me
Extension version: 1.0.2274
VS Code version: Code 1.45.1 (5763d909d5f12fe19f215cbfdd29a91c0fa9208a, 2020-05-14T08:27:35.169Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (4 x 2712)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
7.89GB (2.61GB free)

Process Argv

Screen Reader
no

VM
0%

@IlyaBiryukov Thanks for the attention, now I understand my "mistake", and @setaskin  if you want this it's some parts of my yesterday log

Logs
[20200604_212216_15913057363620_VSCode.log](https://github.com/MicrosoftDocs/live-share/files/4739047/20200604_212216_15913057363620_VSCode.log)
[20200604_212548_15913059486890_VSCode.log](https://github.com/MicrosoftDocs/live-share/files/4739048/20200604_212548_15913059486890_VSCode.log)
[20200604_212652_15913060123490_VSCode.log](https://github.com/MicrosoftDocs/live-share/files/4739049/20200604_212652_15913060123490_VSCode.log)
[20200604_212705_15913060254350_VSCode.log](https://github.com/MicrosoftDocs/live-share/files/4739050/20200604_212705_15913060254350_VSCode.log)
[20200604_212839_15913061197200_VSCode.log](https://github.com/MicrosoftDocs/live-share/files/4739051/20200604_212839_15913061197200_VSCode.log)


BREAKING CHANGE: Switch Link, Heading and Text to v3 design tokens #DS-1451

Description

Additional context

Issue reference

coverage: 79.421%. remained the same
when pulling 9db83f90cab6d2e67d19f967890894b21cbcb317 on bc/v3-link-heading-text
into b27d18a6eec87ea39b67ccc2eceba6658be7b9dc on integration/BC-v3-design-tokens.


added feature to ignore checks fixed #38

This PR will add the feature requested for  #38

@matiasalbarello can chance to review this and getting merged ?

thanks for the PR! I think that overall it looks ok. I left a few of comments :)

@omkarkhatavkar, it seems that a test got broken. Could you fix it?

@omkarkhatavkar, it seems that a test got broken. Could you fix it?

@matiasalbarello  it's hard for me to debug the ruby code, not know much about the stuff, I did not fix the issue can you please cross-check?


ArgumentType?

Similar to how TS has ReturnType, is it possible to have ArgumentType? Or an example of how to extract a function's arguments and specify a different return type?
Example, due to redux-pack changing this action to a promise
export function createMyPackActionWithArgs(arg1: string, arg2?: string) {
  return { type: MY_PACK_ACTION, promise: fetchMyData() };
}

This technically returns a Promise when in component but an Object when reducer.

Just look at how ReturnType is defined or at conditional types in general.
type FirstArgument<T extends Function> = T extends (arg: infer R) => any ? R : never;
function foo(n: number) { }
type FirstArgOfFoo = FirstArgument<typeof foo>;

@MartinJohns what if you want to infer all the args?

Looks like this does what is needed, but is only supported in 3.0:
type ArgumentTypes<T> = T extends (...args: infer U) => infer R ? U : never;
type ReplaceReturnType<T, TNewReturn> = (...a: ArgumentTypes<T>) => TNewReturn;

@rsolomon, that's a bummer :( can't jump to 3.0 yet :(


fix(prefer-immutable-types): support private identifier

Proposed Changes
The ignoreNamePattern in prefer-immutable-types does not work with private class variables, but it should.

Thank you for this plugin! Btw I think this repo is a bit hard to contribute, I found myself facing two weird issues:

The types have to be correct/valid when executing tests, otherwise Error [ERR_WORKER_OUT_OF_MEMORY]: Worker terminated due to reaching memory limit: JS heap out of memory. I used this command to execute test:  npx ava tests/rules/prefer-immutable-types/index.test.ts
Unable to run eslint in lint-staged during git commit, I don't have time to look into it, so please let me know if there is any eslint issue in my code

Oops! Something went wrong! :(

ESLint: 8.38.0

ESLint couldn't find the plugin "eslint-plugin-functional".

(The package "eslint-plugin-functional" was not found when loaded as a Node module from the directory "/Users/alexyeung/workspaces/foray1010/eslint-plugin-functional".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

    npm install eslint-plugin-functional@latest --save-dev

The plugin "eslint-plugin-functional" was referenced from the config file in ".eslintrc.json » @rebeccastevens/eslint-config/modern".

If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.

husky - pre-commit hook exited with code 1 (error)

Thanks for the PR.

The types have to be correct/valid when executing tests
I'm not sure why this one is happening.

Unable to run eslint in lint-staged during git commit
Which version of node are you running?

Which version of node are you running?

I am using v18.15.0 with corepack enabled. Although I don't see corepack in the doc, I guess it is the right practice because I see "packageManager"<EMAIL_ADDRESS>in the package.json. I then install the dependencies via pnpm install


Agent unable to save code files to local environment

I created an agency with coding/developer capabilities. I asked it to write code for a web portal to upload files. Agency CEO finally confirms that the task is successful and the web portal development is complete, but I don't see any files nor a localhost URL to test.  Can the agents via agency be able to create/save code files? like html, css and js locally to my machine?

Yes, but you have to create a tool for this. Here is an example:
import os

from agency_swarm.tools import BaseTool
from pydantic import Field

class FileWriter(BaseTool):
    """Allows you to write new files or modify existing files."""
    chain_of_thought: str = Field(
        ..., description="Please think step-by-step about what needs to be written to the file in order for the program to match the requirements.",
        exclude=True,
    )
    file_path: str = Field(
        ..., description="The path of the file to write or modify. Will create directories if they don't exist."
    )
    content: str = Field(
        ..., description="The full content of the file to write. Content must not be truncated and must represent a correct "
                         "functioning program with all the imports defined."
    )

    def run(self):
        if not self.shared_state.get('app_directory'):
            return "You must create an app first to use this tool."

        if self.shared_state.get('app_directory') not in os.getcwd():
            return "You must be in the root directory of the app to use this tool."
        try:
            # create directories if they don't exist
            dir_path = os.path.dirname(self.file_path)
            os.makedirs(dir_path, exist_ok=True)

            with open(self.file_path, 'w') as file:
                file.write(self.content)
            return f'Successfully wrote to file: {self.file_path}.'
        except Exception as e:
            return f'Error writing to file: {e}'

thanks @VRSEN
I copied the CodingAgent.py to the newly created agency codeAgent.py and it solved the issue of writing files.
Learning the framework bit by bit now and understanding the importance of tools that are written and given access to each agent.

Closing this


Add DataFrame.equals method

I was reaching for this today, but then saw it hasn't been implemented yet

I now see we implement DataFrame.eq -- we can probably just make use of that somehow for DataFrame.equals

These have different implementations in pandas, equals is significantly faster as soon as non-numeric dtypes are involved


Split single package into separate cli/ and stubs/ packages

This PR splits up command line UI layer and the core stubs/radio implementation into their own separate packages.  This achieves a couple main things:

Abstracts stubs from UI to enable the modularize UI layer.  This makes way for the chrome implementation.
Removed yargs dependency from stub package.

The CLI package imports the stub package and implements a UI layer on top of it.
Core changes:

Added stubs/ and cli directories with new node packages.
Added RadioController interface. (to allow abstract radio controller implementations - namely the chrome version)
Renamed RadioController class to NodeRadioController.
Remove yargs dependency from core stub package.
Moved UDPScanConfig, RemoteInfo and UDPScanResults to dataflow.ts.
Removed redundant dependencies from package.jsons

Minor tweaks:

Minor README.md updates.
Remove some unneeded console.log calls.

Issues:

Progresses #11

Removed unrelated changes.  Leaving a few comments unresolved until I open new PRs for the unrelated changed.  All other comments should be addressed.

@cdaly333 got some merge conflicts on here and on #56  and #59 as well - let me know the order in which you want to handle getting those merged.

Resolved merge conflicts here.  We should merge this one first, followed by #59, and finally #56.  Will need to rebase after each merge from here on.


fixFix some issues with incorrect permission verification (#3…

…9726)
pick: https://github.com/apache/doris/pull/39726

run buildall


MRG, API: Add on_split_missing to read_raw_fif

As discussed in #8340
@eort WDYT?

Looks good to me!

@hoechenberger feel free to look at this one, too

Tanks @larsoner!


Use autodiff_deferred for the inner gradient in Enzyme hessian

I think this might reduce the number of failure cases of second-order with Enzyme. Looking at the code this change didn't seem straightforward, hence just opening an issue and not a PR :)

Thanks! Do you have examples of second order Enzyme use? The only one I know is in the JuMP documentation

https://github.com/SciML/OptimizationBase.jl/blob/main/ext/OptimizationEnzymeExt.jl#L38-L145 and https://enzyme.mit.edu/julia/dev/generated/autodiff/#Forward-over-reverse should hopefully help?

Thanks, working on it. I think I'll have to define a custom hvp function for Enzyme over Enzyme.
I would love to get your input on https://discourse.julialang.org/t/second-order-autodiff-which-combinations-should-work/114892

Other link for Enzyme: https://jump.dev/JuMP.jl/stable/tutorials/nonlinear/operator_ad/#Hessian-3


Enables apm agent to set an alternate destination for the internal profiler

What does this PR do?
Allow the trace-agent's internal profiling to submit traces via a unix socket similar to how the system-probe and core-agent's internal profiling works.
Motivation
Add support for internal profiling when there is no network connectivity for the trace-agent.
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

👋 This looks good / simple to me. Were you able to test / verify this change? If so can you add some QA details on what you did and then add the qa/done label?


Bug: test-derive_var_obs_number.R contains tests for filter_extreme()

What happened?
I noticed that the test-derive_var_obs_number.R contains unit tests for filter_extreme(), not derive_var_obs_number(). It appears as though test-derive_var_obs_number.R is a copy of test-filter_extreme.R. I see that we get 100% test coverage for derive_var_obs_number(), as derive_var_obs_number() is called within filter_extreme(), but should we be directly calling derive_var_obs_number() within the unit tests instead?
Session Information
No response
Reproducible Example
See test-derive_var_obs_number.R

Decision made that this isn't an issue (see discussion in (test)[/pharmaverse/admiral/pull/1771]).


Add an aggregation example to the Getting Started wiki page

The example should demonstrate the use of the 'groupBy' field and the difference between ingest and query time aggregation.

Merged into develop.


java.util.LinkedHashMap cannot be cast to org.apache.shardingsphere.orchestration.yaml.config.YamlDataSourceConfiguration

帮忙看看是什么问题，类型转换异常

Can you show these messages with text format, thx.
I can't fetch the github images today, perhaps it's a network issue.

Your version is 4.0.1?
And can you submit your config file here ?

version is 4.0.0
配置应该没有问题把，我看数据都已经显示了

Your version is 4.0.1?
And can you submit your config file here ?

4.0.1 没有发布

I need your config file to reproduce this bug.
Submit your config file to be useful for me to resolve it.
Thx.

@joinhappy81 you can use:
m1: !!org.apache.shardingsphere.orchestration.yaml.config.YamlDataSourceConfiguration

m2: !!org.apache.shardingsphere.orchestration.yaml.config.YamlDataSourceConfiguration

to explicitly specify YamlDataSourceConfiguration type.
We will add a default converter in next release version.

And I find one thing:
If we start proxy with a yaml configuring datasources, proxy server will transform datasources with YamlDatasourceConfiguration object and marshal it to string with type, then send to zk.
Proxy server then use the config parameters from zk, so YamlDatasourceConfiguration type always here in datasource config string.
If you modify datasource config via zk-cli or ShardingSphere-UI, the type info must be preserved.


 Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
liblua5.1-0 libluajit-5.1-2 libluajit-5.1-common pandoc-data
Suggested packages:
texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf
The following NEW packages will be installed:
liblua5.1-0 libluajit-5.1-2 libluajit-5.1-common pandoc pandoc-data
0 upgraded, 5 newly installed, 0 to remove and 111 not upgraded.
Need to get 7,028 kB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 liblua5.1-0 amd64 5.1.5-8ubuntu1 [102 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 libluajit-5.1-common all 2.0.4+dfsg-1 [35.3 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 libluajit-5.1-2 amd64 2.0.4+dfsg-1 [205 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 pandoc-data all <IP_ADDRESS>~dfsg-1 [84.0 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 pandoc amd64 <IP_ADDRESS>~dfsg-1 [6,601 kB]
Fetched 7,028 kB in 1s (4,431 kB/s)
Selecting previously unselected package liblua5.1-0:amd64.
(Reading database ... 179049 files and directories currently installed.)
Preparing to unpack .../liblua5.1-0_5.1.5-8ubuntu1_amd64.deb ...
Unpacking liblua5.1-0:amd64 (5.1.5-8ubuntu1) ...
Selecting previously unselected package libluajit-5.1-common.
Preparing to unpack .../libluajit-5.1-common_2.0.4+dfsg-1_all.deb ...
Unpacking libluajit-5.1-common (2.0.4+dfsg-1) ...
Selecting previously unselected package libluajit-5.1-2:amd64.
Preparing to unpack .../libluajit-5.1-2_2.0.4+dfsg-1_amd64.deb ...
Unpacking libluajit-5.1-2:amd64 (2.0.4+dfsg-1) ...
Selecting previously unselected package pandoc-data.
Preparing to unpack .../pandoc-data_<IP_ADDRESS>~dfsg-1_all.deb ...
Unpacking pandoc-data (<IP_ADDRESS>~dfsg-1) ...
Selecting previously unselected package pandoc.
Preparing to unpack .../pandoc_<IP_ADDRESS>~dfsg-1_amd64.deb ...
Unpacking pandoc (<IP_ADDRESS>~dfsg-1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up liblua5.1-0:amd64 (5.1.5-8ubuntu1) ...
Setting up libluajit-5.1-common (2.0.4+dfsg-1) ...
Setting up libluajit-5.1-2:amd64 (2.0.4+dfsg-1) ...
Setting up pandoc-data (<IP_ADDRESS>~dfsg-1) ...
Setting up pandoc (<IP_ADDRESS>~dfsg-1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
vivek@ubuntu:~$ pip install --upgrade enigma-catalyst  --user
Requirement already up-to-date: enigma-catalyst in ./.local/lib/python2.7/site-packages
Requirement already up-to-date: tables>=3.3.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: python-dateutil>=2.4.2 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: statsmodels>=0.6.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Collecting ccxt>=1.10.1049 (from enigma-catalyst)
Using cached ccxt-1.10.1185-py2.py3-none-any.whl
Requirement already up-to-date: redo>=1.6 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: patsy>=0.4.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Collecting web3>=4.0.0b7 (from enigma-catalyst)
Using cached web3-4.0.0b10.tar.gz
Requirement already up-to-date: setuptools>36.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: contextlib2>=0.4.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Collecting sqlalchemy>=1.0.8 (from enigma-catalyst)
Using cached SQLAlchemy-1.2.4.tar.gz
Requirement already up-to-date: scipy>=0.17.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: numexpr>=2.6.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: six>=1.10.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: empyrical<0.2.2,>=0.2.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: MarkupSafe>=0.23 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: bcolz<1,>=0.12.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Collecting boto3>=1.4.8 (from enigma-catalyst)
Using cached boto3-1.5.35-py2.py3-none-any.whl
Requirement already up-to-date: lru-dict>=1.1.4 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: bottleneck>=1.0.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: pandas<0.20,>=0.19.2 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: Cython>=0.25.2 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: decorator>=4.0.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Collecting numpy>=1.13.1 (from enigma-catalyst)
Using cached numpy-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl
Requirement already up-to-date: cyordereddict>=0.2.2 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: requests-file>=1.4.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: Mako>=1.0.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: click>=4.0.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: requests>=2.9.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: toolz>=0.8.2 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: requests-toolbelt>=0.8.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: sortedcontainers>=1.4.4 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: multipledispatch>=0.4.8 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: pip>=7.1.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: alembic>=0.7.7 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: intervaltree>=2.1.0 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: networkx>=1.9.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: Logbook>=0.12.5 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: pandas-datareader>=0.2.1 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: pytz>=2016.4 in ./.local/lib/python2.7/site-packages (from enigma-catalyst)
Requirement already up-to-date: certifi==2018.1.18 in ./.local/lib/python2.7/site-packages (from ccxt>=1.10.1049->enigma-catalyst)
Requirement already up-to-date: cytoolz<1.0.0,>=0.9.0 in ./.local/lib/python2.7/site-packages (from web3>=4.0.0b7->enigma-catalyst)
Collecting eth-abi<2,>=1.0.0-beta.1 (from web3>=4.0.0b7->enigma-catalyst)
Using cached eth-abi-1.0.0b1.tar.gz
Requirement already up-to-date: eth-account<1.0.0,>=0.1.0a2 in ./.local/lib/python2.7/site-packages (from web3>=4.0.0b7->enigma-catalyst)
Collecting eth-utils<2.0.0,>=1.0.0b1 (from web3>=4.0.0b7->enigma-catalyst)
Using cached eth-utils-1.0.0b2.tar.gz
Collecting hexbytes<1.0.0,>=0.1.0b1 (from web3>=4.0.0b7->enigma-catalyst)
Using cached hexbytes-0.1.0b1.tar.gz
Complete output from command python setup.py egg_info:
zip_safe flag not set; analyzing archive contents...
pypandoc.init: module references file
Installed /tmp/pip-build-hPqhxe/hexbytes/.eggs/pypandoc-1.4-py2.7.egg
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-hPqhxe/hexbytes/setup.py", line 67, in <module>
    'Programming Language :: Python :: Implementation :: PyPy',
  File "/home/vivek/.local/lib/python2.7/site-packages/setuptools/__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
    _setup_distribution = dist = klass(attrs)
  File "/home/vivek/.local/lib/python2.7/site-packages/setuptools/dist.py", line 333, in __init__
    _Distribution.__init__(self, attrs)
  File "/usr/lib/python2.7/distutils/dist.py", line 287, in __init__
    self.finalize_options()
  File "/home/vivek/.local/lib/python2.7/site-packages/setuptools/dist.py", line 476, in finalize_options
    ep.load()(self, ep.name, value)
  File "/tmp/pip-build-hPqhxe/hexbytes/.eggs/setuptools_markdown-0.2-py2.7.egg/setuptools_markdown.py", line 22, in long_description_markdown_filename
    output = pypandoc.convert(markdown_filename, 'rst')
  File "/tmp/pip-build-hPqhxe/hexbytes/.eggs/pypandoc-1.4-py2.7.egg/pypandoc/__init__.py", line 66, in convert
    raise RuntimeError("Format missing, but need one (identified source as text as no "
RuntimeError: Format missing, but need one (identified source as text as no file with that name was found).

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-hPqhxe/hexbytes/
{code}

What did you expect to happen?
upgrade should be successful
What happened instead?
failed with error
Here is how you can reproduce this issue on your machine:

Reproduction Steps

pip install --upgrade enigma-catalyst

...
What steps have you taken to resolve this already?
nothing has been done , waiting for your response
...
Anything else?
...
Sincerely,
Vivek

Duplicate of #245. Closing this one in favor of the former.


chore(Combinatorics/Hall): remove porting note, others will be fixed by lean#6123

Thanks!
bors merge


z/OSMF - SSO participation

Gain agreement on design, staff implementation effort, set schedule and deliver for JWT/OAuth Single Sign On

Closed as duplicate of duplicate of item 31


Update UserGuide.md

Codecov Report

Merging #289 (de7f8e0) into master (693d92a) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #289   +/-   ##
=========================================
  Coverage     70.42%   70.42%
  Complexity      819      819
=========================================
  Files           111      111
  Lines          2752     2752
  Branches        356      356
=========================================
  Hits           1938     1938
  Misses          703      703
  Partials        111      111

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Transcript reactome xref groups

Type

[ ] Bug fix
[ ] New feature
[x] Improvement to existing feature

Related JIRA Issue(s)
https://www.ebi.ac.uk/panda/jira/browse/ENSWBSITES-830
Description

Descriptions are now displayed under the transcript level Reactome xrefs

Deployment URL
https://transcript-reactome.review.ensembl.org
Views affected
Entity Viewer -> Sidebar -> External References -> Transcripts -> Reactome
Other effects

[ ] I have checked any requirements for Google Analytics
[ ] I have created any required tests
[ ] The PR has as its final commit a WASM/JS update commit if any Rust files were updated.

Descriptions are now displayed under the transcript level Reactome xrefs
Xrefs from the same group are displayed within an accordion


Update documentation for hooks.

Update hooks documentation with samples and details.
Mention how azd env is injected into hooks, and how hooks can mutate the environment for azd.
@vhvb1989 - Please document this feature. It doesn't seem to be mentioned in https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/manage-environment-variables or https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/azd-extensibility
Originally posted by @rajyraman in https://github.com/Azure/azure-dev/discussions/1613#discussioncomment-6661906

Marking this as a duplicate of #2224


Add debug operation to clear a message locally

While working on #1386 I needed a way to clear messages easily. This adds a menu item to the messagelist context menu which does just that, and which is only shown if K9.DEBUG.
I'm not sure if we merge that sort of thing, but thought I'd put it here anyways. Having those options available makes it more easy to test corner cases, increasing the probability that people test them.

I think we might add want it more formally once we support (re)downloading a message / message body. Occasionally people encounter scenarios where the message was downloaded in a corrupt fashion.
We already support wiping the entire message store or a single folder.

This only clears the message body, not the message itself, to get to a state where it has to be downloaded for view. I don't think that is a valid use case outside of debugging, .

The option needs a name that is more descriptive. Otherwise I like the idea.
In the future I want to get rid of the other developer options ("Clear messages", "Recreate data", "clear pending actions") in release builds, too.

More descriptive name, like what?

"Clear message body"?

You got it


If you click on stop after you click start it return to 00:00.00 not stop on the Number

This is the expected behavior, if you want to stop the stopwatch temporarily, you can press the pause button, which will appear in the place of the start button when it is running, thanks for your note 💙


S_Spell_Cast weirdness

@dolio @Sagenlicht @doug1234
I noticed a bug with the S_Spell_Cast signal for touch spells - it triggers spell removal when you are the target of a spell too. E.g. Produce Flame will go away if someone casts a spell on you.
I vaguely recall we ran into a situation where we relied on S_Spell_Cast signal for something (probably for ending spell / concentration). And possibly this very same bug, perhaps it was corrected in the python in one of the new spells? Not sure.
Either way I'm changing the behavior of remove_spell and remove_spell_mod to check that the dispatch caller is the same as the spell caster in case of DK_SIG_Spell_Cast. As far as I can tell this event is only used for touch spells anyway (for cancelling the charge if you cast another spell). I'm not sure why it also dispatches the event for spell targets, but I'll leave that be.
If anyone thinks of situations where this could screw things up, let me know.

If I remember correctly, @dolio had this issue while doing the touch spell handler in the spell_utils

Yes, unfortunately it looks like you can't distinguish it at the level of remove_spell / remove_spell_mod. Unfortunately they directly use these callbacks for most of S_Spell_Cast, and only wrap it with some logic for Spike Stones. I guess I'll have to batch replace the hooks with a wrapper rather than rewrite the function itself.

Fixed by b1e668d37edae733ddef3b54351359f56669eb9b


.tmpl.ts does not reload included parts from import

Version

<EMAIL_ADDRESS><EMAIL_ADDRESS>
Platform
Windows
What steps will reproduce the bug?
When using plain ES modules (.tmpl.ts) as templates, reloading in the browser does not work for imported sub-templates.
e.g.
// default.tmpl.ts

import { PageData } from "lume/core.ts";
import headTmpl from "../_components/head.tmpl.ts";
import bodyTmpl from "../_components/body.tmpl.ts";

export default (data: PageData) => {
  return /*html*/ `<html>
  ${headTmpl(data)}
  <body>
    ${bodyTmpl(data)}
  </body>
</html>`;
};

May related to: https://github.com/lumeland/lume/issues/178
How often does it reproduce? Is there a required condition?
No response
What is the expected behavior?
No response
What do you see instead?
No changes will be shown if anything is changed in a subtemplate.
Additional information
A current workaround might be to define all subtemplates in the same file. However, this prevents reuse in some situations.
e.g.
// default.tmpl.ts
import { PageData } from "lume/core.ts";

const bodyTmpl = (data: PageData) => {
  return /*html*/ `<div>
    ${data.content}
   </div>`;
};

const headTmpl = (data: PageData) => {
  return /*html*/ `<head>
  <title>${data.title}</title>
  ...
</head>`;
};

export default (data: PageData) => {
  return /*html*/ `<html>
  ${headTmpl(data)}
  <body>
    ${bodyTmpl(data)}
  </body>
</html>`;
};

This is not a bug, but is how Deno works.
Any module loaded with import ... is cached by Deno and there's no way to refresh the module after any change.
This is why Lume exposes the comp variable:
// default.tmpl.ts

import { PageData } from "lume/core.ts";

export default (data: PageData) => {
  const { comp } = data;

  return /*html*/ `<html>
  ${comp.head(data)}
  <body>
    ${comp.body(data)}
  </body>
</html>`;
};

More info: https://lume.land/docs/core/components/

Thanks for the information, at first it did not work because I used the same extension for the components as for the templates.

_components/head.tmpl.ts";
_components/body.tmpl.ts";

now using

_components/head.ts";
_components/body.ts";

It works like a charm.


Notification update for clearer messages.

Added exchange name to get clearer image of your trades and balances when trading on several exchanges via zenbot.

Nice 👍


feat: add unit tests for project and repository getters

This PR adds unit tests for the project and repository models.

Codecov Report

Merging #2 into master will increase coverage by 0.33%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
+ Coverage   68.47%   68.81%   +0.33%
==========================================
  Files          12       13       +1
  Lines          92       93       +1
==========================================
+ Hits           63       64       +1
  Misses         29       29

Impacted Files
Coverage Δ

src/models/repository.js
100% <0%> (ø)

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 ebbe65e...9ee7e64. Read the comment docs.


Test execution does not start when selecting RPR-encoding test IP-EN-00002

I run the following compositions:

ivct_pitch (https://github.com/IVCTool/IVCT_Compositions/tree/master/ivct-pitch)
sut-shipsim-pitch (https://github.com/IVCTool/IVCT_Compositions/tree/master/sut-shipsim-pitch)

Once the IVCT is up I login and navigate to SUT vrf > RPR-Encoding-2.0  and select test case IP-EN-00002.
However nothing happens.  Also the console does not show anything.

When using the command line interface, there is no problem with running RPR-Encoding-2.0. One suggestion is to check if the settingsDesignator value is correct. If the settingsDesignator value is wrong, the symptoms appear to match those described in this issue. There have been changes to the setting of common parameters of an SUT lately: the correct usage depends on the IVCT version - where there are some subtile changes between versions.

The more important it is to include the execution of the docker compose files in the build and test process! :-). I believe the issue is a missing settings file, but Reinhard can confirm this.

I can now replicate this issue and I can confirm that the
/root/conf/IVCTsut/vrf/RPR-Encoding-2.0/TcParam.json

is missing. But there must be something else wrong in this composition, because I'm not able to create a new SuT. I will sync with John to have a closer look into this.

the original problem was, that the TestSuite folders have been empty. I fixed the problem by adding the test suite volumes to the gui service (like the it is done for the tc-runner).
However, I my HelloWorld compositions this has never been necessary, so I'm a bit confused here. So I'm not sure if this is the appropriate solution!?! Maybe I should have fixed the problem with some docker prune commands?
After adding the test suites, I was able to add and adjust the TC.params and also the extra files (BasicSimpleTypes.xml and RPR_FOM_2.0_1516-2010.xml from github/IVCT_Framework/RunTime/IVCTSut/vrf). With that, the test case worked:
Verdict Summary:
CORRECT: 256 INCORRECT: 0
[TRACE]: resignFederationExecution resignAction=DELETE_OBJECTS_THEN_DIVEST
[TRACE]: destroyFederationExecution federationExecutionName=TheWorld
[TRACE]: getParameterName return RequestStatus
[TRACE]: getParameterName whichClass=Interaction class<127>, theHandle=parameter<378>
[WARN]: terminateRti: FederatesCurrentlyJoined (ignored)
[INFO]: TC INCONCLUSIVE Have not seen all required attributes and parameters

Ok, the TS datavolumes need to be mounted at both the GUI and the Runner containers. I'll update the docker compositions and close this issue.


Resolve ${importee}/index${extension} as well

Some module is in a sub directory, and use index.(js,ts...) as entry point.
This PR adds the ability to always lookup this kind of module.
Use a simple and quick fix by adding more extensions after receive it.

Any news on merging this PR?

Closing due to age.


grace ("it's strace, with colours")

Project description
"A lightweight strace, in Go, with colours and pretty output."

Metadata

homepage URL: https://github.com/liamg/grace
source URL: https://github.com/liamg/grace
license: Unlicense
platforms: linux

PR open at https://github.com/NixOS/nixpkgs/pull/200624


training time

Thanks  a lot for your work! I wanna ask about the total training time on 8 3090s?

It will take about 2.5 days, which is similar to BEVFormer's training time.