Assertion i mono med Switchking 3.0.0.13
Posted: Tue 25 Sep 2012, 20:33
Hej,
Jag har uppdaterat till 3.0.0.13 av Linux-versionen av Switchking (och är grymt nöjd med tillägget av SystemMode för övrigt... ) men det har medfört att jag får en krasch med jämna mellanrum i mono. Har en Tellstick Duo och körde tidigare 2.0.2.10 med gott resultat. Allt snurrar på en installation med Debian 5 och med mono 2.10.7.
Jag har lyckats fånga stacktrace från mono när det smäller och det är en assertion i mono i threads.c på rad 391. Det är en assert där man verkar kontrollera ett id från en tråd som skapats mot ett max-värde:
* Assertion at threads.c:391, condition `id < HAZARD_TABLE_MAX_SIZE' not met
Bifogar komplett stacktrace för alla trådar i filen switchking.log.
Jag har monitorerat mono-processen som kör Switchking lite och ser att det skapas en hel del trådar (som i och för sig också försvinner så det känns inte som ett resursläckage) som verkar hänga samman med inkommande events från telldusd. Tittar jag i event-loggen i Switchking-klienten ser jag massa temperaturvärden som kommer titt som tätt (förmodligen en granne med trådlös termometer) och i samband med detta ser jag att tråd-id:n i processen ändras löpande.
Utan att ha gått på djupet i monos tråd-implementation misstänker jag att det finns ett problem med att skapa och döda ett stort antal trådar vilket gör att ovanstående assertion slår till efter ett tag. Är implementationen i Switchking gjord så att en tråd skapas för varje event där eventet processas och sedan dör tråden? Finns liknande problem rapporterat tidigare under Linux? Hittar inget i ert bugnet direkt som jag kan härleda till detta problem.
När jag körde 2.0.2.10 hade jag inkommande event från min Duo avstängt pga en bugg som orsakade en krasch i den versionen av Swtichking. Kan man stänga av inkommande events från Tellstick Duo även i Switchking 3? Hur i så fall? Skulle vilja testa att köra med det avslaget och se om jag kan reproducera felet då.
/Johan
Jag har uppdaterat till 3.0.0.13 av Linux-versionen av Switchking (och är grymt nöjd med tillägget av SystemMode för övrigt... ) men det har medfört att jag får en krasch med jämna mellanrum i mono. Har en Tellstick Duo och körde tidigare 2.0.2.10 med gott resultat. Allt snurrar på en installation med Debian 5 och med mono 2.10.7.
Jag har lyckats fånga stacktrace från mono när det smäller och det är en assertion i mono i threads.c på rad 391. Det är en assert där man verkar kontrollera ett id från en tråd som skapats mot ett max-värde:
* Assertion at threads.c:391, condition `id < HAZARD_TABLE_MAX_SIZE' not met
Bifogar komplett stacktrace för alla trådar i filen switchking.log.
Jag har monitorerat mono-processen som kör Switchking lite och ser att det skapas en hel del trådar (som i och för sig också försvinner så det känns inte som ett resursläckage) som verkar hänga samman med inkommande events från telldusd. Tittar jag i event-loggen i Switchking-klienten ser jag massa temperaturvärden som kommer titt som tätt (förmodligen en granne med trådlös termometer) och i samband med detta ser jag att tråd-id:n i processen ändras löpande.
Utan att ha gått på djupet i monos tråd-implementation misstänker jag att det finns ett problem med att skapa och döda ett stort antal trådar vilket gör att ovanstående assertion slår till efter ett tag. Är implementationen i Switchking gjord så att en tråd skapas för varje event där eventet processas och sedan dör tråden? Finns liknande problem rapporterat tidigare under Linux? Hittar inget i ert bugnet direkt som jag kan härleda till detta problem.
När jag körde 2.0.2.10 hade jag inkommande event från min Duo avstängt pga en bugg som orsakade en krasch i den versionen av Swtichking. Kan man stänga av inkommande events från Tellstick Duo även i Switchking 3? Hur i så fall? Skulle vilja testa att köra med det avslaget och se om jag kan reproducera felet då.
/Johan