Have deployed a ConsumeMQTT processor to a remote server using MiNiFi (Java 
agent)  and configured it to subscribe to a mosquitto broker. Problem I am 
seeing is that it is causing the OS to run out of resources. 
2018-09-27 09:06:37,060 WARN [Timer-Driven Process Thread-9] 
o.a.n.controller.tasks.ConnectableTask Administratively Yielding 
ConsumeMQTT[id=b3271a8d-cc15-3f10-0000-000000000000] due to uncaught Exception: 
java.lang.OutOfMemoryError: unable to create new native 
threadjava.lang.OutOfMemoryError: unable to create new native thread at 
java.lang.Thread.start0(Native Method) at 
java.lang.Thread.start(Thread.java:717) at 
java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957) 
at 
java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1603)
 at 
java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:334)
 at 
java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:533)
 at 
java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:622)
 at 
org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.start(ClientComms.java:675)
 at 
org.eclipse.paho.client.mqttv3.internal.ClientComms.connect(ClientComms.java:280)
 at 
org.eclipse.paho.client.mqttv3.internal.ConnectActionListener.connect(ConnectActionListener.java:185)
 at 
org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:774)
 at org.eclipse.paho.client.mqttv3.MqttClient.connect(MqttClient.java:333) at 
org.apache.nifi.processors.mqtt.common.AbstractMQTTProcessor.setAndConnectClient(AbstractMQTTProcessor.java:370)
 at org.apache.nifi.processors.mqtt.ConsumeMQTT.reconnect(ConsumeMQTT.java:347) 
at org.apache.nifi.processors.mqtt.ConsumeMQTT.onTrigger(ConsumeMQTT.java:256) 
at 
org.apache.nifi.processors.mqtt.common.AbstractMQTTProcessor.onTrigger(AbstractMQTTProcessor.java:355)
 at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1165)
 at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:203)
 at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at 
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
 at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
 at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
at java.lang.Thread.run(Thread.java:748)

I've tried it on a number of different OS types  - Ubuntu 14_04, Ubuntu 16_04 
and CentOS 7. I have tried tweaking the JVM properties but to no avail. Am 
using NiFi 1.7.0.The MiNiFi setup seems to be OK as I tried a test with the 
TailFile processor and had no issues.  The ConsumeMQTT processor works without 
any issues if it's deployed on the NiFi server. 
Has anyone else come across this or have any suggestions?

Reply via email to