java.nio.* Bug
Seit vielen Jahren gibt es bei Webchats die java.nio verwenden einen seltenen Bug der dazu führt, dass Sockets irgendwie hängen bleiben und die User dazu dann im Chat stecken. Das tritt bei club3k.at bei ca 1 bis 2 Usern pro Woche auf. Vom Code her bemerkt man den Fehler nicht denn schreiben in den Socket geht immer gut und man bekommt keine Exception die einen auf einen Fehler aufmerksam macht. Natürlich funktioniert auch ein schließen des Sockets nicht sauber und so hängen die User dann da und beschweren sich, dass sie nicht mehr reinkommen weil ihr Nick im Chat festhängt. Also alle paar Wochen den Chat neu starten dann geht es wieder weiter.
Das Problem ist altbekannt und bisher sind wir davon ausgegangen, dass es ein Java Bug ist den wir zumindest seit JDK 1.3 kennen. Vor ein paar Wochen haben wir aber den Chat auf einen FreeBSD 6.2 Server in eine Jail migriert und siehe da - es hängen keine User mehr im Chat! Hm woran liegts nun? Ist der TCP/IP Stack vom Linux 2.4 und 2.6er Kernel der Schuldige oder muss man auf die Java Implementierung von java.nio.* schimpfen?
Update Den Fehler gibt es auch unter Windows also deutet das eher auf ein Problem in der JDK hin. Schön wäre jetzt noch wenn ich einen Bugeintrag dazu finde oder jemanden der das Problem bestätigen kann.
2. Update Kaum schreibt man darüber schon tritt er auch unter FreeBSD auf. Es hat jetzt 16 Tage gedauert bis wieder einer hängt und nachweislich gibt es auf OS Ebene keinen passenden Socket mehr. Klingt wie der Startschuss zum debuggen.
Programming : Read more : comments (0) : 19.12.2007 16:30
Comments
no comments