Page 1 of 2

Tuhnuti AS

Posted: 04 May 2009, 20:05
by Raptor
Vsiml jsem si jednoho takoveho problemu, ktery nevim zda dokazu nasimulovat vzdy, ale nastava u mne docel casto kdyz pracuju s Excelem. Typicky mam v Excelu nejake makro, ktere generuje neco z listu do souboru. Tato cinnost jede treba radove minuty a dokud to nedojede, je AS mrtvy. Sice se do nej da prepnout, ale to je vse. Sviti hodiny, nerefreshuje se panel atd. Ve chvili kdy makro dojede, vse se refreshne a je to ok. Zaroven se treba nedostanu ani na prohlizeni souboru, ktery generuju. Nehodi to chybu, jen to vytuhne. Zkousel jsem si vedle toho pustit explorer a ten korektne v realtime zobrazuje vygenerovane soubory, dokaze je otevrit atd.

Re: Tuhnuti AS

Posted: 04 May 2009, 20:57
by Jan Rysavy
Zkuste prosím následující: ve chvíli, kdy k situaci dojde, se přepněte do okna Exploreru. Potom pravým tlačítkem klikněte do plochy aby se otevřelo context menu. Případně se pokuste o příkaz Paste (asi bude disabled). Druhý test: na nějakém souboru klikněte pravým tlačítkem a dejte příkaz Copy. Následně zase z kontextového menu Paste do adresáře.

Zajímá mě, zda problém nesouvisí s clipboardem (že by na něj Excel umístil objekt, který by obsluhoval z hlavního vlákna, které by však díky běžícímu makru bylo blokováno).

Re: Tuhnuti AS

Posted: 04 May 2009, 21:22
by Petr Solin
Dalsi test: nahodte dva Salamandery, v prvnim budete normalne pracovat a ve druhem jdete do menu Help / Task List, najdete instanci prvniho Salamandera (pres tlacitko Highlight) a nechte ho vybrany, okno Task List nechte otevrene. Pak vyvolejte tu akci v Excelu, pri ktere se kousne Salamander, mela by se kousnout jen prvni instance Salamandera (overte, ze je kousla) ... v tenhle okamzik jdete do okna Task List a kliknete na Break. Vygenerovany report nam poslete emailem, doufam, ze z nej pochopime, oc tu bezi. Diky!

Re: Tuhnuti AS

Posted: 05 May 2009, 04:35
by SelfMan
Pokial pracujete v prostredi windows domeny, vyskusajte:

Office 2003

Code: Select all

reg add "HKCU\Software\Microsoft\Office\11.0\Common\Open Find" /v EnableShellDataCaching /t REG_DWORD /d 00000001 /f
Ofice 2007

Code: Select all

reg add "HKCU\Software\Microsoft\Office\12.0\Common\Open Find" /v EnableShellDataCaching /t REG_DWORD /d 00000001 /f

Re: Tuhnuti AS

Posted: 05 May 2009, 10:13
by Raptor
Prima, kdyz se to snazim napodobit tak to najednou nedela. Zakon schvalnosti. V kazdem pripade jak na to zase narazim, udelam vsechny testy a uvidime.

A v domene nejsem.

Re: Tuhnuti AS

Posted: 05 May 2009, 10:20
by Jan Rysavy
Pokud by to souviselo se schránkou, mohlo by záležet na tom, zda jste před spuštěním makra v Excelu napřed nějaké buňky nakopíroval do schránky. Možná jsem úplně vedle, ale za pokus by to určitě stálo.

Re: Tuhnuti AS

Posted: 05 May 2009, 10:50
by Raptor
Konkretne tohle makro se schrankou nepracovalo, jine ano. Ale delam s tim cca denne, takze to zkusim pohlidat a najit nejakou souvislost.

Re: Tuhnuti AS

Posted: 05 May 2009, 16:55
by Ether
Možná jsem objevil související, snad i ten samý problém. Spustil jsem ze Salamandera Photoshop, a když v něm provádím náročné operace (Photoshop nereaguje), tak i AS zatuhne. Chtěl jsem tedy udělat Break, ale zjistil jsem, že se současně zasekne i druhá instance Salamandera, kterou jsem k tomu účelu spustil (z nezávislého zdroje). To mě docela udivilo, ale koukám, že vy s tím asi počítáte, protože podle návodu si mám Task List připravit předem, což druhou instanci nějakým způsobem chrání. Ostatní aplikace reagují bez problémů, takže jednoduchým vytížením procesoru to taky není.

Po několika pokusech jsem zjistil, že jde opravdu o schránku. Pokud mám ve schránce objekt z Photoshopu, pak Salamander tuhne; pokud mám cokoliv jiného (třeba text), pak nemá problém. Pravděpodobně se AS snaží schránku zkontrolovat (hádám, že aby věděl, jestli Paste == Change Directory) a kvůli tomu se dotazuje vlastníka objektu, tedy Photoshopu, ten je však zaneprázdněn -> zátuh.

Re: Tuhnuti AS

Posted: 05 May 2009, 19:08
by Jan Rysavy
ether wrote:hádám, že aby věděl, jestli Paste == Change Directory
Přesně to by mohl být zdroj problému. To rozběhnutí Salamandera po doběhnutí blokující operace by tomu napovídalo (PS i Excel).
Prozkoumám doma situaci s Photoshopem. Z přiloženého bug reportu nic moc nevidím, ale stejně díky moc za něj a za stopu!

EDIT: problém s Photoshop CS4 jsem schopnej reprodukovat. Díky za tip. Promyslíme jak věc řešit.

Re: Tuhnuti AS

Posted: 06 May 2009, 16:34
by Jan Rysavy
Raptor wrote:Konkretne tohle makro se schrankou nepracovalo, jine ano. Ale delam s tim cca denne, takze to zkusim pohlidat a najit nejakou souvislost.
Nevyjádřil jsem se přesně. Podle mé teorie by příčinou bylo prostě to, že před spuštěním makra v daném Excelu napřed nakopírujete na clipboard pár buňek.

Re: Tuhnuti AS

Posted: 15 May 2009, 10:49
by coltcha
Jan Rysavy wrote:
ether wrote:hádám, že aby věděl, jestli Paste == Change Directory
Přesně to by mohl být zdroj problému. To rozběhnutí Salamandera po doběhnutí blokující operace by tomu napovídalo (PS i Excel).
Prozkoumám doma situaci s Photoshopem. Z přiloženého bug reportu nic moc nevidím, ale stejně díky moc za něj a za stopu!

EDIT: problém s Photoshop CS4 jsem schopnej reprodukovat. Díky za tip. Promyslíme jak věc řešit.

potvrzuji problem tuhnuti AS pri ukladani na sit v Photoshopu CS4 (WinXp, SP3) v pripade, ze je neco ve schrance z Photoshopu (v pripade textu ve schrance ve jede jak ma)... Nekdy to je celkem deprimujici cekat az minutu nez se AS vzpamatuje :oops:

Re: Tuhnuti AS

Posted: 19 May 2009, 14:58
by Mem
Nesouvisí problém s podobným problémem se schránkou, který se týkal práce s remote desktop?
http://forum.altap.cz/viewtopic.php?f=6&t=2734

Re: Tuhnuti AS

Posted: 19 May 2009, 15:05
by Jan Rysavy
Ano, je to společný problém. Pokud navodíte situaci, kdy určitý program vloží do schránky OLE objekt a následně hlavní vlákno takového programu přestane odpovídat (protože něco na popředí řeší nebo prostě jen odpovídá pomalu), dojde k zamrznutí aplikace, která se pokouší dotázat na data uložená ve schránce. V případě Salamandera je to při aktivaci hlavního okna (řeší se enablery), v případě Explorera až po stisknutí Ctrl+V (zkoumá se obsah schránky, zda lze provést příkaz Paste).

Jakmile se aplikace poskytující objekt "probere", dodá požadované informace a rozmrzne i Salamander/Explorer/...

Takto je zkrátka OLE a práce se schránkou navrženo, nejde o chybu ale vlastnost, která je zrovna v případě Salamandera více viditelná (díky testu během aktivace okna), ale dotýkající se všech. Pokusíme se test přesunout do jiného vlákna s možností timeoutu. Funkčních enablerů se nám nechce vzdávat.

Re: Tuhnuti AS

Posted: 19 May 2009, 15:11
by Mem
Když pominu uživatelskou přívětivost pro zobrazení enablerů, technicky by to šlo obejít tak, že by dotaz na schránku spustil Salamander v dalším vlákně, které by po uplynutí timeout odstřelil a enablery zobrazil nepřístupné? (Teď nevím zda jsem špatně četl nebo jste stihl příspěvek aktualizovat, každopádně vidím, že na konci pišete přesně to samé :))

Re: Tuhnuti AS

Posted: 19 May 2009, 15:12
by Jan Rysavy
O to se pokusíme, otázkou je co na to COM model. Uvidíme.

Edit: chyba je samozřejme u Vás, nepozorně čtete! Ne, příspěvek jsem doplnil ;-)