Megesett, hogy WCF hívás a tervezett 30sec helyett DoS támadást indított a szerver ellen, ami fogadta a hívást.
A hívásban az üzleti logika lelkét adó dictionary volt lockolva, hogy összeszámolja a benne lévő adatokat különböző nézet szerint, majd visszaadja a hívásnak.
A fenti hiba eredménye az lett, hogy a WCF sorba állította a hívásokat és engedte szépen rá a szerverre, ami egyéb fontos dolgokat is csinált VOLNA.
A hiba úgy csapódott le, hogy ThreadAbortExceptiont kaptunk a futó (egyébként nem kevés) többi szálunkon.
Ami azért keletkezett, mert a szálak, amikor lock-olni próbálták ez a dictionary-t, akkor a framework dobott egy hátast 20-30sec után és a lock sorra ThreadAbortException-t írt.
Érdekes működés és jó tudni, hogy deadlock helyett ThreadAbortException is jöhet.
2013. november 21., csütörtök
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése