menü

status

online seit 2693 tagen
letztes update am
28. November, 15: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. 15:45
weiter so!
asco - 14.11. 14:09
Nach langer Zeit ...
nighthawk - 05.10. 01:09
Lösungen vom draufgucken
nighthawk - 27.02. 23:30
Mal 'was neues
nighthawk - 26.01. 23:29

historisches

suche

 

buttonmania

xml version of this page

paRSS - Feews! for the rest of us

SORUA enabled

startseite > einträge > Speicherleck

Donnerstag, 8. 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. :)

kommentare

Download und DNS-Abfragen

Hallo nighthawk,

Der Download der kompletten Liste hat den Vorteil, dass Verbindungen auch bei allfälligen DNS-Timeouts korrekt gewhitelistet werden.

Aber natürlich würde ich deinen policy server gerne via dnswl.org verlinken und/oder in unserem Repository (https://sourceforge.net/projects/dnswl) zur Verfügung stellen falls du den veröffentlichen möchtest.

-- Matthias (matthias /at/ leisi.net)
matthias leisi - 24. Februar, 11:47

Re: Download und DNS-Abfragen

das script ist derzeit ziemlich starr an meine umgebung angepasst. ich werde mal ein paar konfigurationsoptionen einbauen und es irgendwo zum download hinstellen. ich sag dann bescheid per mail oder so..
nighthawk - 24. Februar, 13:10

backlinks


um missbrauch zu vermeiden werden die backlinks mit einem clientseitig laufenden javascript dargestellt. falls javascript abgeschaltet ist sieht man diesen text.