menü

status

online seit 6832 tagen
letztes update am
28. November, 14:45

kalender

Februar 2007
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 8 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
24
25
26
27
28
 
 
 
 
 

aktuelles

Ich lebe noch!
nighthawk - 28.11. 14:45
Nach langer Zeit ...
nighthawk - 04.10. 23:09
Lösungen vom draufgucken
nighthawk - 27.02. 22:30
Mal 'was neues
nighthawk - 26.01. 22:29
Ganz Münster auf dem Aasee
nighthawk - 11.01. 20:17

historisches

suche

 

buttonmania

xml version of this page

paRSS - Feews! for the rest of us

startseite > Mittwoch, 07.02.2007


Mittwoch, 7. Februar 2007

Speicherleck


was so ein kleines nicht geschlossenes socket doch ausmachen kann...
zur vorgeschichte: ich habe vor ca. drei wochen dnswl.org entdeckt und war einige tage erfolglos auf der suche nach einer möglichkeit, diese liste sinnvoll und effizient in meinen postfix zu integrieren. unter effizient faellt dabei fuer mich nicht die vom listenbetreiber vorgeschlagene technik die komplette liste regelmaessig runterzuladen, mit shellscripten umzuwandeln und dann von postfix mit dem cidr maptype ueberpruefen zu lassen. da, denke ich, hat mein rechner doch noch deutlich sinnvolleres zu tun, als 500× am tag die selbe liste durchzuackern... also habe ich mir einen kleinen policy server geschrieben, der einfach nur die client ip mit dnswl.org abgleicht und im trefferfalle ein OK liefert. keine grosse sache.. knapp 600 zeilen.
nach zwei tagen dauerbetrieb fiel mir mehr zufaellig auf, dass der speicherbedarf des daemons immer mehr zunimmt. zunaechst hatte ich einen fehler im dns package von tcl vermutet und mich schon auf lange debuggingsessions gefreut (...). zum glueck liess sich der fehler aber doch noch deutlich einfacher lokalisieren.. ich hatte noch bei der voranalyse zum debuggen bemerkt, dass in netstat noch eine ganze menge verbindungen auf dem von mir ausgewaehlten port im status CLOSE_WAIT verharrten.. das konnte so ja nicht richtig sein. ich war mir eigentlich sicher das socket korrekt zu schliessen, wenn die verbindung beendet werden sollte.. aber aus irgendeinem grunde hatte ich if not statt if geschrieben und die sockets blieben bis zum beenden des daemons offen.
nach ausbesserung dieses kleinen faux pas laeuft der daemon nun seit ueber einer woche mit gleichbleibendem speicherverbrauch. :)
ältere beiträge