PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überlauf von m_queue



Gira
06.10.2013, 00:37
Moin, moin.

Ich habe monitord auf einem raspberry pi installiert und kann monitord nun mit einem simplen POCSAG Diagramm in eine Endlosschleife treiben.

Ist das so gewollt? ;-)

Das Diagramm wird erkannt und korrekt ausgewertet. Nach einer kurzen Verzögerung, wird die Meldung

00:02:31.718 ERROR: monitord/PluginThread.cpp(132) max plugin queue size exceeded. moduleresult not queued
ins Log geschrieben und im Abstand von ca. 0,2sek ein Eintrag in die mySQL DB geschrieben.
Unterbindet man das Schreiben auf den MySQL-Server (Plugin rausnehmen oder falsche Zugangsdaten), tritt der Fehler nicht auf.

Folgende Eckdaten:

Diagramm hat 1200 Baud und wird vom BOS-Tool [Alarmgeber] generiert.

monitord.xml (Zugangsdaten entfernt):


<?xml version="1.0" encoding="ISO-8859-1"?>
<monitordconfig version="1.0">
<name> Monitord </name>
<logfile> monitord.log </logfile> <!-- monitord.log = normal, screen = Bildschirm -->
<loglevel> DEBUG </loglevel> <!-- DEBUG, ERROR und INFO -->
<SocketFilterScript> socketfilter.lua </SocketFilterScript>
<PluginFilterScript> pluginfilter.lua </PluginFilterScript>
<auth>
<login>
<name>test</name>
<password>test</password>
</login>


<ip action="allow">127.0.0.1</ip> <!-- Diese IPs muessen sich nicht einloggen -->
<ip action="login"> any </ip> <!-- Diese IPs muessen sich einloggen -->
<ip action="deny">any</ip> <!-- Diese IPs koennen sich nicht einloggen -->
</auth>

<!-- -->
<tcpsocket>
<bind> * </bind>
<port mode="monitord"> 9333 </port>
<port mode="fms32pro"> 9300 </port>
<port mode="crusader"> 7778 </port>
</tcpsocket>

<soundcard num="0">
<!--<device>/dev/dsp0</device>--> <!-- OSS: die erste Soundkarte -->
<device>plughw:1,0</device> <!-- ALSA: die erste Soundkarte -->
<status>1</status> <!-- 1=aktiv, 0=deaktivert -->
<baud>22050</baud>
<name> Erste Soundkarte </name>
<!-- Linker Kanal -->
<channel part="left">

<name>Kanal 1</name>
<module type="fms">
<syncbits> 12 </syncbits>
<crc-check> 1 </crc-check>
<algorithmus> 0 </algorithmus>
<maxerrors> 3 </maxerrors>
</module>
<module type="poc512">
<algorithm> 1 </algorithm>
<crc-check> 1 </crc-check>
<ecc> 0 </ecc>
<maxerrors> 3 </maxerrors>
</module>
<module type="poc1200">
<algorithm> 1 </algorithm>
<crc-check> 1 </crc-check>
<ecc> 0 </ecc>
<maxerrors> 3 </maxerrors>
</module>
</channel>

<!-- Rechter Kanal -->
<channel part="right">
<!-- Audio Plugin -->
<name>Kanal 2</name>

</channel>
</soundcard>



<dataplugins>
<!-- Daten Plugin -->
<plugin name="mysql">
<!--<file> plugins/libmplugin_mysql-0.dll</file>-->
<file> plugins/.libs/libmplugin_mysql.so.0.0.0 </file>
<parameters>
<logfile> mysql.log </logfile>
<loglevel> DEBUG </loglevel>
<hostname> server.de</hostname>
<port> 3306 </port>
<username> user</username>
<password> pw</password>
<database> db</database>

<ssl>0</ssl> <!-- 0: ssl disabled - 1: ssl enabled -->
<ssl-cacert>/etc/mysql/ssl/ca-cert.pem</ssl-cacert>
<ssl-cert>/etc/mysql/ssl/client-cert.pem</ssl-cert>
<ssl-key>/etc/mysql/ssl/client-key.pem</ssl-key>


<mapping typ="fms">
<table> monitord_fms </table>
<field name="uhrzeit" source="mysql"> now() </field>
<field name="status"> statusdezimal </field>
<field name="kennung"> fmskennung </field>
<field name="richtung"> richtung </field>
<field name="text"> textuebertragung </field>
<field name="tki"> tki </field>
<field name="quelle"> channelnum </field>
</mapping>

<mapping typ="pocsag">
<table> monitord_pocsag </table>
<field name="uhrzeit" source="mysql"> now() </field>
<field name="kennung"> ric </field>
<field name="sub"> sub </field>
<field name="text"> text </field>
<field name="quelle"> channelnum </field>
</mapping>

<mapping typ="zvei">
<table> monitord_zvei </table>
<field name="uhrzeit" source="mysql"> now() </field>
<field name="typ"> weckton </field>
<field name="kennung"> zvei </field>
<field name="text"> text </field>
<field name="quelle"> channelnum </field>
</mapping>
</parameters>

</plugin>
</dataplugins>

</monitordconfig>



monitord.log:




00:22:01.951 INFO: monitord/Monitor.cpp(68) monitord restarted - logging with loglevel DEBUG
00:22:01.952 DEBUG: monitord/MonitorModulesResults.cpp(51) Dispatcher startet
00:22:01.954 INFO: monitord/Monitor.cpp(113) monitord 2.0svn READY
00:22:01.969 INFO: monitord/Monitor.cpp(217) starting soundcard #0
00:22:01.969 INFO: monitord/SndPipe.cpp(152) creating decoders for soundcard #0
00:22:01.970 INFO: monitord/SndPipe.cpp(156) creating decoder for soundcard #0L:FMS
00:22:01.970 DEBUG: monitord/MonitorModuleFMS.cpp(100) FMS Parameter
00:22:01.970 DEBUG: monitord/MonitorModuleFMS.cpp(101) sample : 22050
00:22:01.971 DEBUG: monitord/MonitorModuleFMS.cpp(102) syncbits: 12
00:22:01.971 DEBUG: monitord/MonitorModuleFMS.cpp(103) crc : 1
00:22:01.971 DEBUG: monitord/MonitorModuleFMS.cpp(104) level : 0.15259
00:22:01.972 DEBUG: monitord/MonitorModuleFMS.cpp(105) Algo : 0
00:22:01.972 DEBUG: monitord/MonitorModuleFMS.cpp(106) ignW : 0
00:22:01.972 DEBUG: monitord/MonitorModuleFMS.cpp(107) ignQ : 0
00:22:01.973 DEBUG: monitord/MonitorModuleFMS.cpp(108) ErrC : 0
00:22:01.973 DEBUG: monitord/MonitorModuleFMS.cpp(109) force : 0
00:22:01.973 INFO: monitord/SndPipe.cpp(201) creating decoder for soundcard #0L:POC512
00:22:01.974 INFO: monitord/MonitorModulePocsag512.cpp(66) (2) sample - crc - ecc - minpreambel - maxerrors - algo:22050 - 1 - 0 - 300 - 10 - 1
00:22:01.974 INFO: monitord/MonitorModulePocsag512.cpp(79) Algorithmus:1
00:22:01.974 INFO: monitord/MonitorModulePocsag512.cpp(86) SPHASE_INC is:1521
00:22:01.975 INFO: monitord/SndPipe.cpp(228) creating decoder for soundcard #0L:POC1200
00:22:01.975 INFO: monitord/SndPipe.cpp(263) loading audioplugins for left channel
00:22:01.975 INFO: monitord/SndPipe.cpp(265) loading audioplugins for right channel
00:22:01.997 INFO: monitord/posix/MonitorAudioALSA.cpp(107) [ALSA] Using pcm_buffer_size=16384 periods=2
00:22:02.004 INFO: monitord/Monitor.cpp(225) Soundcard #0 started - complete
00:22:02.006 INFO: monitord/Monitor.cpp(147) monitord socketserver started
00:22:02.008 DEBUG: monitord/SocketServer.cpp(851) SocketManager erstellt
00:22:02.011 INFO: monitord/Monitor.cpp(153) fms32pro socketserver started
00:22:02.015 INFO: monitord/Monitor.cpp(158) crusader socketserver started
00:22:02.015 INFO: monitord/PluginThread.cpp(390) reading plugin configuration
00:22:02.016 INFO: monitord/PluginThread.cpp(401) Plugin found: mysql
00:22:02.016 DEBUG: monitord/PluginThread.cpp(402) File:plugins/.libs/libmplugin_mysql.so.0.0.0
00:22:02.016 DEBUG: monitord/PluginThread.cpp(405) found parameters
00:22:02.017 DEBUG: monitord/PluginThread.cpp(16) Erstellt PT:
00:22:02.017 DEBUG: monitord/PluginThread.cpp(30) DLL Name:plugins/.libs/libmplugin_mysql.so.0.0.0
00:22:02.039 DEBUG: monitord/PluginThread.cpp(34) done

....


00:22:02.196 INFO: monitord/plugins/libmplugin_mysql.cpp(191) successfully connected to mysql database USERNAME on host SERVER.de with username="USERNAME"
00:22:02.196 DEBUG: monitord/PluginThread.cpp(368) startet plugin plugins/.libs/libmplugin_mysql.so.0.0.0
00:22:02.198 INFO: monitord/PluginThread.cpp(79) PluginThread starting
00:22:02.198 DEBUG: monitord/Monitor.cpp(167) PluginManager started
00:22:16.972 DEBUG: monitord/MonitorModulePocsag.cpp(165) Sync gefunden

00:22:17.721 DEBUG: monitord/MonitorModulePocsag.cpp(402) Debug(POCSAG):
channelnamehex = "4b616e616c2031"
channelnum = "0"
datum = "06.10.13"
ric = "1111111"
servernamehex = "geändert"
sub = "0"
subhex = ""
text = ""
timestamp = "1381011737"
typ = "pocsag"
uhrzeit = "00:22:17"

00:22:17.722 DEBUG: monitord/PluginThread.cpp(90) plugin processing - size=1
00:22:17.723 DEBUG: monitord/plugins/libmplugin_mysql.cpp(82) mysql: processing Result...
00:22:17.849 DEBUG: monitord/plugins/libmplugin_mysql.cpp(279) field:kennung | value=ric
00:22:17.850 DEBUG: monitord/plugins/libmplugin_mysql.cpp(279) field:quelle | value=channelnum
00:22:17.850 DEBUG: monitord/plugins/libmplugin_mysql.cpp(279) field:sub | value=sub
00:22:17.851 DEBUG: monitord/plugins/libmplugin_mysql.cpp(279) field:text | value=text
00:22:17.851 DEBUG: monitord/plugins/libmplugin_mysql.cpp(279) field:uhrzeit | value=now()
00:22:17.851 DEBUG: monitord/plugins/libmplugin_mysql.cpp(298) Insertstring: insert into monitord_pocsag (kennung,quelle,sub,text,uhrzeit) values ("1111111","0","0","",now())
00:22:58.711 DEBUG: monitord/MonitorModulePocsag.cpp(165) Sync gefunden

00:22:59.458 DEBUG: monitord/MonitorModulePocsag.cpp(402) Debug(POCSAG):
channelnamehex = "4b616e616c2031"
channelnum = "0"
datum = "06.10.13"
ric = "1111111"
servernamehex = "geändert"
sub = "0"
subhex = ""
text = ""
timestamp = "1381011779"
typ = "pocsag"
uhrzeit = "00:22:59"

00:22:59.459 DEBUG: monitord/PluginThread.cpp(90) plugin processing - size=1
00:22:59.460 DEBUG: monitord/plugins/libmplugin_mysql.cpp(82) mysql: processing Result...
00:22:59.463 DEBUG: monitord/MonitorModulePocsag.cpp(402) Debug(POCSAG):
channelnamehex = "4b616e616c2031"
channelnum = "0"
datum = "06.10.13"
ric = "0000001"
servernamehex = "geändert"
sub = "0"
subhex = ""
text = ""
timestamp = "1381011779"
typ = "pocsag"
uhrzeit = "00:22:59"





Kurze Interpretation der Symptome:
"void PluginThread::addResult" wird zu häufig aufgerufen. ;-)