Skip to content

Commit 2562f7d

Browse files
authored
Fix/mqtt disconnects docker linux (#286)
* Removed Awaiter from Mqtt PublishAsync to avaoid deadlocks. * Extended Logging. Used synchronizationHelper. --------- Signed-off-by: Matthias Dornaus <91789872+mdornaus@users.noreply.github.com>
1 parent 4c39239 commit 2562f7d

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

umatiGateway/Core/External/Opc.Ua.PubSub/Transport/MqttPubSubConnection.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
using System.Security.Authentication;
4242
using System.Security.Cryptography.X509Certificates;
4343
using System.Threading.Tasks;
44+
using umatiGateway.Core.Util;
4445
using DataSet = Opc.Ua.PubSub.PublishedData.DataSet;
4546
using JsonDataSetMessage = Opc.Ua.PubSub.Encoding.JsonDataSetMessage;
4647
using JsonNetworkMessage = Opc.Ua.PubSub.Encoding.JsonNetworkMessage;
@@ -335,17 +336,16 @@ public void StartWorker()
335336
{
336337
foreach (MqttApplicationMessage message in this.messageQueue.GetConsumingEnumerable())
337338
{
338-
if (m_publisherMqttClient != null && m_publisherMqttClient.IsConnected)
339+
Utils.LogInfo("Messages in Queue" + this.messageQueue.Count);
340+
try
339341
{
340-
try
341-
{
342-
_ = this.m_publisherMqttClient.PublishAsync(message);
343-
}
344-
catch (Exception ex)
345-
{
346-
Utils.Trace(ex, "Exception on Sending Mqtt Message");
347-
}
342+
AsyncHelper.RunSync(() => m_publisherMqttClient!.PublishAsync(message));
348343
}
344+
catch (Exception ex)
345+
{
346+
Utils.Trace(ex, "Exception on Sending Mqtt Message");
347+
}
348+
349349
}
350350
});
351351
}

umatiGateway/Core/Util/AsyncHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public static class AsyncHelper
1313
{
1414
private static readonly TaskFactory _taskFactory = new
1515
TaskFactory(CancellationToken.None,
16-
TaskCreationOptions.None,
16+
TaskCreationOptions.DenyChildAttach,
1717
TaskContinuationOptions.None,
1818
TaskScheduler.Default);
1919

0 commit comments

Comments
 (0)