Applicazioni sospese su file casuali


1

Ho riscontrato il blocco delle applicazioni ogni giorno, più volte al giorno, per qualche giorno, sul mio sistema Windows 7. Questo sistema è stabile da 4 anni, quindi sta accadendo qualcosa di nuovo.

Il sintomo principale era che Thunderbird si bloccava all'avvio e diventava inutilizzabile. Ho pensato che fosse un problema con Thunderbird e alla fine ho creato un nuovo profilo perché il mio profilo ha più di 10 anni.

Perché ho pensato al profilo? Perché ho scoperto che non potevo eliminare alcuni .msffile senza riavviare. Cercando di farlo, congelò Explorer che doveva essere riavviato.
Con un nuovo profilo, Thunderbird ha continuato a bloccarsi, ma meno frequentemente, quindi sono stato in grado di leggere la posta e comporre una risposta rapida.

Ieri stavo modificando un .hmtlfile con gvim e, allo stesso tempo, lo stavo caricando su Firefox per vedere il risultato.
Dopo un'ora di lavoro, si bloccò di nuovo. Qualsiasi processo che tenta di manipolare il .hmtlfile è stato bloccato. Uccidere sia Firefox che gvim non ha aiutato.

Utilizzando Process Explorer (NON avviato come amministratore) non è stato possibile visualizzare il .hmtlfile con la sua funzione di ricerca handle. Nemmeno Handle.exe è riuscito. Il riavvio sblocca il file che non è danneggiato. Ho i chkdsk /Bmiei due dispositivi ( C:è un SSD, D:è un HDD), dato che il .msffile era attivo D:e .hmtlattivo C:.

Ho sospettato la ricerca di Windows e cancellato il suo database.
Ho provato a disattivare la ricerca di Windows, il mio antivirus (Avast) e due strumenti di sincronizzazione / backup funzionanti come servizio.

Non ha rilasciato alcun blocco.

Ho trovato questo interessante uso di windbg: Processo bloccato in Windows: c'è un modo per capire perché?

Ho collegato il processo Thunderbird, attualmente in fase di blocco, e ora vedo questo:

FAULTING_IP: 
ntdll!DbgBreakPoint+0
00000000`7772cc90 cc              int     3

EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 000000007772cc90 (ntdll!DbgBreakPoint)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 0000000000000000

FAULTING_THREAD:  0000000000000000

BUGCHECK_STR:  HANG

PROCESS_NAME:  thunderbird.exe

ERROR_CODE: (NTSTATUS) 0xcfffffff - <Unable to get error code text>

EXCEPTION_CODE: (NTSTATUS) 0xcfffffff - <Unable to get error code text>

EXCEPTION_PARAMETER1:  0000000000000000

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

DERIVED_WAIT_CHAIN:  

Dl Eid Cid     WaitType
-- --- ------- --------------------------
   56  74c.1a04 Speculated (Triage)    -->
   0   74c.12b4 File IO                

WAIT_CHAIN_COMMAND:  ~56s;k;;~0s;k;;

BLOCKING_THREAD:  00000000000012b4

DEFAULT_BUCKET_ID:  APPLICATION_HANG_BlockedOn_FileIO

PRIMARY_PROBLEM_CLASS:  APPLICATION_HANG_BlockedOn_FileIO

LAST_CONTROL_TRANSFER:  from 00000000751dc1ff to 000000007772df0a

STACK_TEXT:  
00000000`0024ddd8 00000000`751dc1ff : 00000000`003becdc 00000000`003becf4 00000000`005847e0 

000000ba`00340201 : ntdll!ZwCreateFile+0xa
00000000`0024dde0 00000000`751cd18f : 00000000`003becdc 00000000`00000000 00000000`00000000 

00000000`00000060 : wow64!whNtCreateFile+0x10f
00000000`0024deb0 00000000`75152776 : 00000000`77360745 00000000`751c0023 00000000`00000246 

00000000`003bf2f8 : wow64!Wow64SystemServiceEx+0xd7
00000000`0024e770 00000000`751cd286 : 00000000`00000000 00000000`75151920 ffffffff`fc5f0000 

00000000`7770dfc1 : wow64cpu!TurboDispatchJumpAddressEnd+0x2d
00000000`0024e830 00000000`751cc69e : 00000000`00000000 00000000`00000000 00000000`751c4b10 

00000000`7ffe0030 : wow64!RunCpuSimulation+0xa
00000000`0024e880 00000000`777216a6 : 00000000`00584330 00000000`00000000 00000000`7780e670 

00000000`777e1950 : wow64!Wow64LdrpInitialize+0x42a
00000000`0024edd0 00000000`7777d150 : 00000000`00000000 00000000`77720db1 00000000`0024f380 

00000000`00000000 : ntdll!LdrpInitializeProcess+0x17e3
00000000`0024f2c0 00000000`7770b63e : 00000000`0024f380 00000000`00000000 00000000`fffdf000 

00000000`00000000 : ntdll! ?? ::FNODOBFM::`string'+0x25b20
00000000`0024f330 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 

00000000`00000000 : ntdll!LdrInitializeThunk+0xe


FOLLOWUP_IP: 
wow64!whNtCreateFile+10f
00000000`751dc1ff 448bd8          mov     r11d,eax

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  wow64!whNtCreateFile+10f

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: wow64

IMAGE_NAME:  wow64.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  562593aa

STACK_COMMAND:  ~0s ; kb

BUCKET_ID:  X64_HANG_wow64!whNtCreateFile+10f

FAILURE_BUCKET_ID:  APPLICATION_HANG_BlockedOn_FileIO_cfffffff_wow64.dll!whNtCreateFile

WATSON_STAGEONE_URL:  http://watson.microsoft.com/0004cc90.htm?Retriage=1

Followup: MachineOwner
---------

Quindi, OK, ero abbastanza convinto che Thunderbird stesse bloccando un IO, e ora è confermato. Secondo la documentazione dell'API, questa chiamata può essere l'apertura di un file esistente. Ho provato a scaricare l'argomento dando il nome del file (per quanto ho capito) giocando casualmente con questo comando: "dt ntdll! _OBJECT_ATTRIBUTES 00000000`005847e0", ma non ho familiarità con windbg e chiamando convenzioni, quindi non sono riuscito finora a scavare nella struttura.

Quindi cosa posso fare dopo?

EDIT:
Dopo aver cambiato il mio WinDbg alla versione x86 come suggerito, i miei dump sono diventati analizzabili.
I blocchi si sono interrotti, come sempre accade quando ti concentri su un problema: scompare brevemente per evitare di essere risolto, fino a questa notte, quando Canon DPP si è bloccato durante l'elaborazione batch di file RAW.
Ecco la traccia:

FAULTING_IP: 
ntdll!DbgBreakPoint+0
7736000c cc              int     3

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 7736000c (ntdll!DbgBreakPoint)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00000000

FAULTING_THREAD:  00000000

BUGCHECK_STR:  HANG

PROCESS_NAME:  DPPBatch.exe

ERROR_CODE: (NTSTATUS) 0xcfffffff - <Unable to get error code text>

EXCEPTION_CODE: (NTSTATUS) 0xcfffffff - <Unable to get error code text>

EXCEPTION_PARAMETER1:  00000000

MOD_LIST: <ANALYSIS/>

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

DERIVED_WAIT_CHAIN:  

Dl Eid Cid     WaitType
-- --- ------- --------------------------
   1   1b88.1ff4 Speculated (Triage)    -->
   0   1b88.1948 File IO                

WAIT_CHAIN_COMMAND:  ~1s;k;;~0s;k;;

BLOCKING_THREAD:  00001948

DEFAULT_BUCKET_ID:  APPLICATION_HANG_BlockedOn_FileIO

PRIMARY_PROBLEM_CLASS:  APPLICATION_HANG_BlockedOn_FileIO

LAST_CONTROL_TRANSFER:  from 74e8c5fd to 77370106

STACK_TEXT:  
0018ed8c 74e8c5fd 0018ee28 80100080 0018edcc ntdll!ZwCreateFile+0x12
0018ee30 76e53f56 00000060 80100080 00000001 KERNELBASE!CreateFileW+0x35e
0018ee5c 76e553b4 0058e300 80000000 00000001 kernel32!CreateFileWImplementation+0x69
0018ee8c 100dbf8e 01f4ed98 80000000 00000001 kernel32!CreateFileA+0x37
WARNING: Stack unwind information not available. Following frames may be wrong.
0018eeb8 10002275 01f40000 00000000 10002294 DPPDLL!GNZ_getFilenameFromScriptFile+0x3e
0018eef8 0018ef7c 01f4ed98 00000000 0018ef7c DPPDLL!UCSCloseProfile+0xea5
0018eefc 01f4ed98 00000000 0018ef7c 01f4fc20 0x18ef7c
0018ef7c 00000000 00000000 00000000 00000000 0x1f4ed98
FOLLOWUP_IP: 
DPPDLL!GNZ_getFilenameFromScriptFile+3e
100dbf8e 8bf8            mov     edi,eax

SYMBOL_STACK_INDEX:  4

SYMBOL_NAME:  dppdll!GNZ_getFilenameFromScriptFile+3e

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: DPPDLL

IMAGE_NAME:  DPPDLL.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  52251a6c

STACK_COMMAND:  ~0s ; kb

BUCKET_ID:  HANG_dppdll!GNZ_getFilenameFromScriptFile+3e

FAILURE_BUCKET_ID:  APPLICATION_HANG_BlockedOn_FileIO_cfffffff_DPPDLL.dll!GNZ_getFilenameFromScriptFile

WATSON_STAGEONE_URL:  http://watson.microsoft.com/0001000c.htm?Retriage=1

Followup: MachineOwner
---------

Ho facilmente rintracciato il file corrispondente per essere sul mio disco D:: D:\Sauvegarde\Tirages\photos\20151214 - totale D70\\GNZC0E116282C365.vbf. Appende il processo dopo 2 ore di lavoro. Stavo usando il PC in questo momento. Sembra sicuramente un danneggiamento del file system o un bug del driver del dispositivo, quindi eseguirò di nuovo chkdsk.
Nel frattempo, ho provato ad avviare ProcessExplorer per cercare i processi IO in attesa sul file, ha funzionato. Ma mi sono ricordato che doveva essere lanciato come admin, quindi l'ho chiuso e ho fatto clic con il tasto destro sull'icona e ... ci sono voluti circa 5 minuti per aprirlo (non mi aspettavo che comparisse, mi ha sorpreso). Ancora una volta, secondo Process Explorer, nessun handle è associato al file di blocco (ho cercato "vbf").

Bene, penso che la mia domanda sul debugger abbia una risposta (esistenza di 2 versioni di WinDbg) e il mio problema deve ancora essere risolto, ma non sono sicuro che sia il posto giusto per ottenere aiuto su di esso.


Sembra un problema di malware. Hai cercato malware?
LPChip,

@LPChip cosa ti fa pensare così? Di solito non eseguo scanner di terze parti perché non mi fido di loro e potrebbe danneggiare il mio PC. Ma proviamo: ho eseguito HijackThis solo ora e il rapporto non mi aiuta. Avast non trova nulla. sfc / scannow non è felice, ma non lo era anche prima.
SR_11

wow64 mostra che si tratta di un dump a 64 bit di un processo a 32 bit. Utilizzare ProcessExplorer o il taskmgr a 32 bit per creare un dump. punta al server dei simboli di thunderbird (srv * D: \ bols * bols.mozilla.org / thunderbird ) ed esegui ! analizza -v -hang in windbg (versione x86)
magicandre1981

@ magicandre1981 Grazie mille! Ora posso scavare nello stack e trovare i miei pezzi ... sì! Questa volta, il file è uno dei miei INBOX.msf. Hum, un clic destro su di esso in Explorer. Boom, si blocca Explorer.
Eseguo

esegui chkdsk / f forse hai problemi con il file system NTFS
magicandre1981,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.