Zamrznutí operace mazání

Hlášení chyb a problémů programu Altap Salamander. Buďte, prosím, ve svých popisech co nejpodrobnější a vytvořte pro každý incident nový příspěvek. Nevkládejte programem generovaná hlášení o pádu programu, pošlete je e-mailem.
User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Zamrznutí operace mazání

Post by tukanos » 28 May 2015, 12:58

Narazil jsem na tento zvláštní problém:

Snažil jsem se smazat adresář s mnoha soubory konkrétně se jedná o adresář rubynius (na stáhnutí http://rubini.us/downloads/). Mám AS x64 3.06 a SSD od samsungu.

Pokud archív rozbaluji není žádný problém. Ten nastane, až v okamžiku kdy se snažím smazat vzniklý adresář. Do 61% to maže v pořádku a pak se dialogové okno, kde se zobrazuje postup mazání zasekne. Ten adresář je nakonec smazán, ale dialogové okno tam visí a musí se "zabít" salamander, aby zmizelo.

Jindy sem zatím takovéto chování nepozoroval; nejspíše to bude způsobeno velkým množstvím souborů. Připadá mě, že přeteče nějaký buffer a nevyprázdní se, nemám to samozřejmě ničím podložené, ale nějaké zkušenosti už mám a tak se to podle mě chová.

Mazání z příkazové řádky

Code: Select all

rmdir /S /Q rubinius-2.5.4
proběhne bez problémů.

Zatuhnutí okna daného do pozadí:
zamrzani_pri_mazani1_2.jpg
Okno je vidět ale vůbec neraguje. Je dáno do pozadí při mazání a tudíž se daná instance salamandru dá používat.
zamrzani_pri_mazani1_2.jpg (196.96 KiB) Viewed 6257 times
Pokus o opuštění salamandra:
zamrzani_pri_mazani2_2.jpg
Hláška co je zobrazené při pokusu opustit salamander a z nabídky nezabere, kromě cancel
zamrzani_pri_mazani2_2.jpg (202.31 KiB) Viewed 6257 times

User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Re: Zamrznutí operace mazání

Post by tukanos » 03 Jun 2015, 11:35

Ještě malé zpřesnění. Část souborů se maže (přesouvá, kopíruje a pak maže) nevím jak přesně to AS uvnitř dělá do koše a zbytek se maže. Nemůže být zádrhel v tomhle?

User avatar
SelfMan
Posts: 947
Joined: 05 Apr 2006, 20:51
Contact:

Re: Zamrznutí operace mazání

Post by SelfMan » 03 Jun 2015, 12:11

Pokusil som sa problem zreprodukovat s AS3.06 x86, ale zmazanie prebehlo bez problemov.
Mozes to este odskusat s 32 bitovou verziou, ci je tam identicky problem?
Osobne si myslim, ze problem bude skor niekde v konfiguracii systemu, resp. niektora aplikacia interferuje s mazanim suborov.
Mozne priciny:
- konflikt s antivirusom (treba skusit vypnut)
- konflikt s antispyware riesenim (napr. Malwarebytes)
- konflikt s aplikaciou na obnovu suborov
- neaktualizovany firmWare SSD
- neaktualizovane ovladace radica pevnych diskov

Pokial je problem opakovane replikovatelny, tak by bolo fajn spravit s pomocou Process monitor-a zaznam toho co sa v danom case deje.

User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Re: Zamrznutí operace mazání

Post by tukanos » 04 Jun 2015, 09:52

SelfMan wrote:Pokusil som sa problem zreprodukovat s AS3.06 x86, ale zmazanie prebehlo bez problemov.
Mozes to este odskusat s 32 bitovou verziou, ci je tam identicky problem?
Osobne si myslim, ze problem bude skor niekde v konfiguracii systemu, resp. niektora aplikacia interferuje s mazanim suborov.
Mozne priciny:
- konflikt s antivirusom (treba skusit vypnut)
- konflikt s antispyware riesenim (napr. Malwarebytes)
- konflikt s aplikaciou na obnovu suborov
- neaktualizovany firmWare SSD
- neaktualizovane ovladace radica pevnych diskov

Pokial je problem opakovane replikovatelny, tak by bolo fajn spravit s pomocou Process monitor-a zaznam toho co sa v danom case deje.
Děkuji za podněty. Problém je opakovateně replikovatelný, stane se to vždy ve stejný okamžik.

K těm příčinám:

Code: Select all

- konflikt s antivirusom (treba skusit vypnut)
- antivir nemohu vypnout ani na chvilku nemám k tomu dostatečná oprávnění. Máme tu symantec endpoint protection

Code: Select all

- konflikt s antispyware riesenim (napr. Malwarebytes)
- takové vůbec nemám. Jediná systémová utilitka co běží je advanced system care a ten jsem vypnul a nic se nestalo
-

Code: Select all

konflikt s aplikaciou na obnovu suborov
- tady mám jedině záložní program trueimage, ale ten není aktivní pokud neběží záloha. Ostatní nejsou aktivní a služby jsou zakázány.

Code: Select all

- neaktualizovany firmWare SSD
- tady to je oříšek, protože je to notebook HP 840G1 a něm je rebrandovaný samsung, ale firmware nelze aktualizovat pomocí nástroje od Samsungu, a jak jsem tak kontroloval, tak firmware je tam poslední vydaný pro tento notebook.

Code: Select all

- neaktualizovane ovladace radica pevnych diskov
- aktualizoval jsem všechny ovladače co jsem našel na nejposlednější verzi, aby právě nedocházelo, k těmto záležitostem.

Je pravda, že bych to mohl zkusit z procmon, ale ono to generuje dost velké soubory tak to budu muset vymyslet, kam/jak to uložím. To je dobrý nápad.

S 32-bitovou verzí jsem to ještě nezkoušel, tak zkusím a uvidím, jestli to bude mít vliv. Taky se přikláním, že to bude někde zakopaný pes v systému, protože tohle je jedna ze základních operací a je důkladně otestována velkým množstvím uživatelů.

User avatar
Ether
Posts: 1459
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Zamrznutí operace mazání

Post by Ether » 05 Jun 2015, 09:29

Pokud se to zasekává vždy na stejném procentu, je pravděpodobné, že jde o problém s konkrétním souborem. Můžete zkusit pomocí programu Process Monitor identifikovat, o který soubor jde?
Ελληνικά rulez.

User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Re: Zamrznutí operace mazání

Post by tukanos » 17 Jun 2015, 08:25

Tak jsem udělal pár prvních testů:

K zasekávání dochází jak v x86, tak x64. Zvláštní je, že k zasekávání dochází hlavně v případech, kdy dám vlákno mazání do pozadí.

Bohužel se to nezasekává na stejném místě, takže to nelze jednoduše monitorovat s tím, že dostanu stejné výsledky vždy. S procmon(em) si budu hrát v další části.

User avatar
AD7
Posts: 485
Joined: 28 Jan 2006, 16:21

Re: Zamrznutí operace mazání

Post by AD7 » 18 Jun 2015, 11:08

Potvrdzujem, mazanie nabralo v posledných buildoch AS 3.06-3.05 (možná i skôr) značné spomalenie, občas "sa zajakáva" (čítaj: prekvapuje užívateľa AS, zvyknutého na bleskové reakcie). :?

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5196
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Zamrznutí operace mazání

Post by Jan Rysavy » 18 Jun 2015, 12:12

Otestoval jsem vybalení a následně mazání https://s3.amazonaws.com/releases.rubin ... .7.tar.bz2. Windows 7 x64, AS x86 a x64 3.06. Samsung 2.5'' SSD 850 Evo 500GB. Problém nedokážu reprodukovat a zasekávání mazání jsem nepozoroval ani při své práci.

Všem komu to zlobí: týká se to pouze SSD disků? Na jakých OS? Co staré verze Salamandera?

Jak máte nastavené mazání v Salamanderu: Options > Configuration > Recycle Bin?

Po zakousnutí by bylo ideální z druhé instance Salamandera negenerovat pro tu zamrzlou minidump pomocí Help > Task List a dát nám vědět, že jste poslali minidump. Podívali bychom se, kde ke kousání dochází.

User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Re: Zamrznutí operace mazání

Post by tukanos » 23 Jun 2015, 13:40

Všem komu to zlobí: týká se to pouze SSD disků? Na jakých OS? Co staré verze Salamandera?
Zatím jsem se s tím setkal pouze u SSD disků. Mám teď tady nainstalovaný SAMSUNG MZ7PD256HCGM-0000, což je SAMSUNG SSD strčený v originál HP notebooku. Windows jsou x64 a zkoušel jsem, jak x64 tak x86 verzi salamandra (dělá to u obou). Dump jsem udělal pouze pro x64 verzi, je docela nepříjemné čekat než se to zasekne, když to občas proběhne. Když bude zapotřebí prozkoušet x86, tak to samo udělám. Zkoušel jsem to na souboru ve verzi rubinius-2.5.4.tar.bz2.
Jak máte nastavené mazání v Salamanderu: Options > Configuration > Recycle Bin?
viz přiložený obr.
recycle_bin_configuration.png
The recycle bin configuration
recycle_bin_configuration.png (79.52 KiB) Viewed 5822 times
Po zakousnutí by bylo ideální z druhé instance Salamandera negenerovat pro tu zamrzlou minidump pomocí Help > Task List a dát nám vědět, že jste poslali minidump. Podívali bychom se, kde ke kousání dochází.
Dump jsem odeslal pomocí nástrojů v salamandrovi a také ho přikládám v přiloze.
AS_x64_306_dump_rubinius.rar
(895.27 KiB) Downloaded 85 times

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5196
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Zamrznutí operace mazání

Post by Jan Rysavy » 23 Jun 2015, 14:44

Díky. Podle přiloženého reportu běží v procesu Salamandera stovky vláken z C:\Windows\System32\SYSFER.DLL, což vypadá na Symantec CMC Firewall. Mohl byste ho zkusit dočasně zakázat a navodit problém? Počet vláken je podivný.

Zkusil jsem Vaše nastavení Recycle Bin v kombinaci se zmíněným rubinius-2.5.7 a mazání je zoufale pomalé díky obrovskému množství *.rb. Každý z nich se přesouvá do koše, což trvá. Problém lze obejít přímým mazáním přes Shift+Delete, které je prakticky instantní. To samozřejmě neřeší problém, pouze obchází.

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5196
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Zamrznutí operace mazání

Post by Jan Rysavy » 23 Jun 2015, 15:06

Tak ještě poznatek z testování: při mazání *.rb do koše spustí Windows 7 v procesu Salamandera asi 500 vláken:

Code: Select all

        ntdll.dll!_NtCreateFile@44?()        Unknown
        ntdll.dll!_NtCreateFile@44?()        Unknown
        kernel32.dll!_BaseIsThisAConsoleName@8?()        Unknown
        kernel32.dll!_CreateFileWImplementation@28?()        Unknown
        shell32.dll!CRecycleBinBase::_GetRecycleDataHandle(unsigned short const *,enum RecycleDataOpenFlags,void * *)        Unknown
        shell32.dll!CRecycleBinBase::_ReadCompactData(struct _WIN32_FIND_DATAW const *,struct CompactData *)        Unknown
        shell32.dll!CRecycleBinBaseEnum::NextCompactData(struct CompactData *,struct _WIN32_FIND_DATAW *)        Unknown
        shell32.dll!CRecycleBinBase::Compact(void)        Unknown
        shell32.dll!CRecycleBinManager::_CompactInternal(void)        Unknown
        shell32.dll!CRecycleBinManager::_CompactAndPurgeThread(void *)        Unknown
        ntdll.dll!_RtlpTpWorkCallback@8?()        Unknown
        ntdll.dll!_TppWorkerThread@4?()        Unknown
        kernel32.dll!@BaseThreadInitThunk@12?()        Unknown
        ntdll.dll!___RtlUserThreadStart@8?()        Unknown
        ntdll.dll!__RtlUserThreadStart@8?()        Unknown
Maže to ukrutně pomalu a po několik minutách začne procesu Salamandera docházet paměť. Nepadá, protože máme ošetřeny alokace speciálním handlerem, ale to okno jsem viděl prvně v životě v ostrém provozu:

Code: Select all

---------------------------
Altap Salamander 3.06 (x86)
---------------------------
Insufficient memory to allocate 3600000 bytes. Try to release some memory (e.g. close some running application) and click Retry. If it does not help, you can click Ignore to pass memory allocation error to this application or click Abort to terminate this application.
---------------------------
Přerušit   Opakovat   Ignorovat  
---------------------------
Docela tipuji, že situace u Vás je jen nějaký další stav po tomto. Zatím nás napadá jen možnost doplnit varování (pokud takovou situaci rozpoznáme), že mazání do koše může způsobit tyto problémy.

User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Re: Zamrznutí operace mazání

Post by tukanos » 24 Jun 2015, 09:53

Jan Rysavy wrote:Díky. Podle přiloženého reportu běží v procesu Salamandera stovky vláken z C:\Windows\System32\SYSFER.DLL, což vypadá na Symantec CMC Firewall. Mohl byste ho zkusit dočasně zakázat a navodit problém? Počet vláken je podivný.

Zkusil jsem Vaše nastavení Recycle Bin v kombinaci se zmíněným rubinius-2.5.7 a mazání je zoufale pomalé díky obrovskému množství *.rb. Každý z nich se přesouvá do koše, což trvá. Problém lze obejít přímým mazáním přes Shift+Delete, které je prakticky instantní. To samozřejmě neřeší problém, pouze obchází.
Pomalé mazání to je, protože ty .rb .rbw tam mám schválně, abych si omylem nesmazal nějaké své skripty, když bych nebyl úplně jsoucí. Samozřejmě, že mazání Shift + Del, t.j. obejití koše musí fungovat, ale mě to zajímalo v tomto případě, protože když mažu projekty s hodně soubory co mám masky, aby se to přesouvalo do koše bude se to objevovat takto. Bohužel jediné co na tomto počítači nemám práva (šlo by to obejít, ale při monitoringu počítačů bych si koledoval o problémy)je právě vypnutí Symatecu.
Docela tipuji, že situace u Vás je jen nějaký další stav po tomto. Zatím nás napadá jen možnost doplnit varování (pokud takovou situaci rozpoznáme), že mazání do koše může způsobit tyto problémy.
Je to dosti pravděpodobné. Jestliže při tom mazání/přesunu dochází paměť nepomohlo by jí v průběhu uvolňovat? Pravděpodobně by to chtělo "lepší" chování threadů, například právě to osamostatnění těchto operací do vlastní fronty požadavků. Šlo by třeba udělat mazání takovéhoto množství souborů v několika threadech, v případě, že by se zaplnil jeden, tak by se nastartoval další a paměť původního by se uvolnila? Takové přemýšlení nahlas .).

User avatar
SelfMan
Posts: 947
Joined: 05 Apr 2006, 20:51
Contact:

Re: Zamrznutí operace mazání

Post by SelfMan » 24 Jun 2015, 10:01

Salamander si svoje veci robi tak ako ma. To, ze sa do procesu mazania "montuje" Symantec a to nekorektne, je vec druha. Toto nie je problem Salamandra ako takeho. Je to skor otazka na technicku podporu Symantec-u. (osobne vsak s touto firmou nemam velmi dobre skusenosti)
EDIT:
Este ma napadla jedna vec, pouzitie zoznamu vylucenych aplikacii. Vid: Creating Application Control Exclusions in Symantec Endpoint Protection 12.1

Petr Solin
ALTAP Staff
ALTAP Staff
Posts: 1110
Joined: 08 Dec 2005, 09:13
Location: Novy Bor, Czech Republic
Contact:

Re: Zamrznutí operace mazání

Post by Petr Solin » 24 Jun 2015, 10:40

I bez Symantecu se to zahlcuje. Windows zkrátka neustojí mazaní do koše přes SHFileOperation volané jednotlivě pro každý soubor, který se má poslat do koše. Dá se to považovat za chybu MS (nelze zavolat 2000x po sobě SHFileOperation, o tom se v MSDN nic nepíše), ale pochybuji, že by to kdy opravili. Tedy zkusíme najít jiné řešení posílání do koše (mazat po skupinách souborů nebo všechny najednou, jestli to z toho neklekne, navíc je nutné dořešit chybová hlášení pro víc souborů posílaných do koše zároveň), které by tento kolaps nezpůsobovalo nebo aspoň vypíšemě varování, že ke kolapsu nejspíš dojde.

Více threadů: spíš by to chtělo nějakou brzdu, která by čekala, až si MS udělá tu údržbu koše (kterou si startují v nových threadech, které se v současné verzi bez brzdy brzy přemnoží, čímž zaberou všechnu dostupnou pamět) a půjde dál posílat do koše.

User avatar
tukanos
Posts: 311
Joined: 21 Dec 2005, 19:14

Re: Zamrznutí operace mazání

Post by tukanos » 26 Jun 2015, 07:18

Petr Solin wrote:I bez Symantecu se to zahlcuje. Windows zkrátka neustojí mazaní do koše přes SHFileOperation volané jednotlivě pro každý soubor, který se má poslat do koše. Dá se to považovat za chybu MS (nelze zavolat 2000x po sobě SHFileOperation, o tom se v MSDN nic nepíše), ale pochybuji, že by to kdy opravili. Tedy zkusíme najít jiné řešení posílání do koše (mazat po skupinách souborů nebo všechny najednou, jestli to z toho neklekne, navíc je nutné dořešit chybová hlášení pro víc souborů posílaných do koše zároveň), které by tento kolaps nezpůsobovalo nebo aspoň vypíšemě varování, že ke kolapsu nejspíš dojde.

Více threadů: spíš by to chtělo nějakou brzdu, která by čekala, až si MS udělá tu údržbu koše (kterou si startují v nových threadech, které se v současné verzi bez brzdy brzy přemnoží, čímž zaberou všechnu dostupnou pamět) a půjde dál posílat do koše.
Aha, pokud by bylo zapotřebí zpomalení, co to udělat takhle? Při přesunu do koše vždy po nějakém počtu souborů např. 5000 zkontrolovat počet vláken údržby koše a pokud by přesáhl nějakou rozumnou hranici, což je zapotřebí nějak experimentálně určit, tak by se Salamander počkal, než by počet vláken klesl pod tuto hranici a až poté pokračoval.

Post Reply