0

Tried with docker version (cygnus-ngsi:latest) and installed through RPM (version 1.9). In any case, and after evaluating different configurations (through different agent.conf files) all "options" crashed after a while of properly performance, raising:

time=2018-08-22T11:25:17.373Z | lvl=ERROR | corr=c0b83772-a5fc-11e8-8f42-00505689289a | trans=fd485c76-e376-4ae3-9733-5a60599ffbb6 | srv=SAN | subsrv=/ | comp=cygnus-ngsi | op=run | msg=org.apache.flume.SinkRunner$PollingRunner[160] : Unable to deliver event. Exception follows. java.lang.IllegalStateException: begin() called when transaction is OPEN! at com.google.common.base.Preconditions.checkState(Preconditions.java:145) at org.apache.flume.channel.BasicTransactionSemantics.begin(BasicTransactionSemantics.java:131) at com.telefonica.iot.cygnus.sinks.NGSISink.processNewBatches(NGSISink.java:482) at com.telefonica.iot.cygnus.sinks.NGSISink.process(NGSISink.java:370) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) at java.lang.Thread.run(Thread.java:748)

IEMaestro
  • 75
  • 6
  • Hi IEMaestro,the log of the error that you provide is very general, so is difficult to identify which could be causing it. However, as you mention that this happens after a long period of time, can you check if the problem is related to the container resources, Is your host VM enough memory for running the Cygnus operation for a long period of time? – anmunoz Aug 23 '18 at 12:25
  • Thanks, anmunoz. Seems a cygnus problem managing transactions. We've tried many confs (agent.conf, dockers, different versions of Cygnus, Mongo and Orion, etc.) and we conclude this exception (begin() called when transaction is OPEN!) raises when the Orion (v 1.15) receives a batch update of several entities and sends the "corresponding notifications" (we're currently trying to find out how this process is done) to the Cygnus. Cygnus seems to process them properly but something happens with the channel/sink and the transaction with the mongo isn't properly closed so the sink is blocked. – IEMaestro Aug 27 '18 at 08:45
  • Hi, IEMaestro I will try to check the code of NGSI events mapping in order to determine what happens when the batch includes multiple entities. As a temporary solution can you send a batch with only one entity included? – anmunoz Sep 03 '18 at 09:40
  • Thanks anmunoz for your support. If we do an update using a batch (to the Orion CB) with just one entity included, it works fine. – IEMaestro Sep 04 '18 at 10:37
  • Hello, annmunoz. After having tried different options and combinations on Orion CB and Cygnus versions, we've found that every time a notification is sent by Orion where a "null" value is included (one of the notified attributes has "null" as its value), Cygnus raises an exception and the sink collapses. Have you experimented this issue?? – IEMaestro Mar 11 '19 at 15:49

0 Answers0