Il problema
Sto cercando un bug in un'applicazione web relativa a multi-upload usando un filmato / applet Flash. A volte, la barra di avanzamento utilizzata nell'applet Flash per indicare lo stato di avanzamento del caricamento del file sarà superiore al 100% per un avanzamento e causerà l'arresto dell'intero sistema di caricamento.
A parte gli errori logici associati al resto di quel codice, tentare di riprodurre questo bug per tracciare l'esecuzione e il debug è un'impresa in sé. È un Heisenbug , e l'ho visto solo una volta in circa due giorni di tentativi. Le macchine di altri sviluppatori possono riprodurle con maggiore regolarità.
L'unica volta che l'ho riprodotto era il riavvio dopo aver modificato la chiave di registro per SystemResponsiveness
, poiché la mia macchina utilizza Windows Server 2008 R2. Quella chiave del Registro di sistema controlla la priorità della CPU per le applicazioni multimediali. Windows Server 2008 R2 imposta questa chiave su 100
(dando priorità alle applicazioni multimediali con bassa priorità), mentre imposto il mio su 20
in quanto è impostato su un'installazione desktop di Windows 7. Tutte le altre macchine sviluppatore in grado di riprodurre questo problema hanno SystemResponsiveness
impostato su 100 predefinito.
Quando ho impostato il mio SystemResponsiveness
su 100
, ho visto immediatamente questo problema. Tuttavia, la riproduzione del problema è ancora discutibile.
La mia teoria
Quindi sto partendo dal presupposto che questo bug, dato che coinvolge Flash, è correlato alla chiave di registro SystemResponsiveness
come descritto nella documentazione di Microsoft per Multimedia Scheduler Service , che è il sottosistema multimediale di Windows 7 e Windows 2008 R2.
Impostando la sensibilità su 100, i file multimediali come i "filmati" di Flash (che è questo uploader) possono incontrare problemi, e questo diventa un problema di temporizzazione / interruzione per l'uploader, che quindi si manifesta con altri bug.
Come testare?
Ora sto cercando di trovare un modo per testare questa teoria. Penso di aver bisogno di un processo in background per collegare l'utilizzo della CPU al 100% (su 4 core), quindi provare a utilizzare l'uploader. I servizi in background / non multimediali dovrebbero causare cose come Flash a peggiorare e dovrei incorrere in problemi.
modifica
Ho deciso di eseguire uno stress test della CPU per impilare l'utilizzo della CPU del mio sistema al 100% - a parte il rallentamento della mia macchina, il bug non si è manifestato. Questo Heisenbug è davvero una riproduzione elusiva.
La mia richiesta
Tuttavia, non sono sicuro che sia l'approccio corretto per testare la mia teoria, quindi mi chiedo se qualcuno abbia qualche idea su come rintracciare i problemi relativi a MMCSS?