Soluciona el BUG por el que podía causar interbloqueos al incrementar/
grabar contadores.
El problema fue detectado con el SyONE.xtrace con el proceso test.ss/
sdp.ss/sdp_server.p estableciendo un
periodo de grabación de contadores de 2 segundos.
[0x7fbfffea90]: timex::TimeController | Callers:
timex::TimeController::activate [2],timex::TimeController::tick [69]
[0x79bf60, 2]: tools::CounterManager | Callers:
MyInterface::receive [4],nemesis::tools::CounterManager::record [2]
[0x7fbfffea90, 2]: timex::TimeController | Callers:
timex::TimeController::activate [2],timex::TimeController::tick [69]
------ Loop detected [ Level=2 | Loop: 3 ] -------
En el interbloqueo están implicados el ámbito del contador (AACC) a
incrementar y el control de temporización (TT).
El problema surgía porque cuando se incrementa un contador la
secuencia de bloqueo era AACC, y es posible que hubiera que activar el
contador de grabacion, por tanto, se podría dar la secuencia de
bloqueo (AACC, TT).
Por otro lado siempre que caduda un temporizador se bloquea TT antes
de invocar al 'expire', que en este caso bloqueará todos y cada uno de
los ámbitos y los trafiere al disco => se da la secuencia de bloqueo
(TT, AACC).
Bloquear los recursos en orden distinto nos asegura que en un tiempo
finito el proceso quedará bloqueado.
Para soluciona el problema se va a mejorar la implementación de
tools::ScopeCounter::Safe para que asegure el orde correcto (TT,
AACC).
./
tools.CounterScope.cc | Locally Modified | 1.8
./
tools.CounterManager.cc | Locally Modified | 1.9
./hdrs/nemesis.tools.CounterManager.h | Locally Modified | 1.11
./hdrs/nemesis.tools.CounterScope.h | Locally Modified | 1.9
./internal.db/
tools.sccs.cc | Locally Modified | 1.22
./what_news/1.11.3.version | Locally Added | New file!
--
Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
nemesi...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a
nemesisrd-1x...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/nemesisrd-1x?hl=es.