Zhrouceni pri otevreni souboru s dlouhym nazvem

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.
CityShark
Posts: 5
Joined: 02 Nov 2006, 22:50
Contact:

Zhrouceni pri otevreni souboru s dlouhym nazvem

Post by CityShark »

Dela to uz od verze beta 10.
Setkal jsem se s tim tedy jen pod XPcky (Win2K zda se OK).

Pri snaze spustit soubor s nejakym dlouhym nazvem (nemam presne otestovano, ale rekneme vic jak 64 znaku) vcetne cesty, program se zhrouti. Windowsovska hlaska "program vygeneroval chyby, blablabla" - zadny Salamander crash report.

Dela to pri vsech extenzich souboru (avi, exe, doc... ).

Zkousel jsem to i na systemu s cistymi XPcky SP2 (ceska mutace). To same.
CityShark
Posts: 5
Joined: 02 Nov 2006, 22:50
Contact:

Post by CityShark »

Jeste me napadlo - nazvy souboru jsou ciste ASCII; zadna diakritika nebo cinstina :)
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Post by zarevak »

Potvrzuji, že při přesažení délky cesty se jménem souboru hodnoty MAX_PATH = 260 znaků Servant Salamander nefunguje (v mém případě se nesane vůbec nic viditelného).

Vytvoření takové cesty se mi však podařilo až s využitím problematických rekurzivních Reparse pointů. Servant Salamander i Windowsí Příkazová řádka se vytvoření takovýchto souborů brání. Později jsem objevil možnost vytvořit takovýto soubor legálně: přejmenováním nadřazeného adresáře prodloužit cestu k souboru.

Poznámky:
- Příkazy F3 - View i F4 - Edit fungují u takovýchto souborů normálně....
- Příkaz Shift+F4 - Editace souboru podle jména/Vytvoření nového souboru omezuje vstup na (odhaduji) 260 znaků, ale ve skutenosti nelze soubor s tak dlouhým názvem vytvořit. Při odklepnutí dialogu se okamžite objeví hláška (asi od Windows), že je název moc dlouhý. Je možné omezit délku vstupu podle toho, jak dlouhá je cesta aktuálního adresáře? Případně oznámit o kolik znaků název souboru přesahuje maximalní délku?
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Zhrouceni pri otevreni souboru s dlouhym nazvem

Post by Jan Rysavy »

CityShark wrote:Zkousel jsem to i na systemu s cistymi XPcky SP2 (ceska mutace). To same.
Šlo určitě u čistě nainstalovaný operační systém (žádné aplikace)? Podle toho co popisujete mám dojem, že k pádu dochází v některé z Shell Extensions, viz tato vlákna:
http://forum.altap.cz/viewtopic.php?t=497
http://forum.altap.cz/viewtopic.php?t=500
http://forum.altap.cz/viewtopic.php?t=1474

Je to nejpravděpodobnější vysvětlení, protože takovou chybu by uživatelé dávno odhalili.

Zkuste prosím zapnout volbu Options > General > Open files through salopen.exe. Má to nějaký efekt?
CityShark
Posts: 5
Joined: 02 Nov 2006, 22:50
Contact:

Re: Zhrouceni pri otevreni souboru s dlouhym nazvem

Post by CityShark »

Jan Rysavy wrote: Zkuste prosím zapnout volbu Options > General > Open files through salopen.exe. Má to nějaký efekt?
No kdyz to zapnu, tak se salopen.exe zhrouti stejnym zpusobem. Salamander jako takovy zustane.

Vlakna se shell extension problemy jsem procetl jeste nez jsem daval prispevek sem, ale jestli jsem to spravne pochopil, je to zpusobeno externimi programy (ktere jsou asociovane ke klikanemu souboru). Me se to deje napr. i u EXEcek...

OS byl skutecne cisty. Ted to uz neodsimuluju, protoze cistym PC nedisponuju... nicmene na WIN2K se mi to nikdy nestalo. S XP ano. (na stejnem zeleze)...
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Takže k pádům docházi vždy, není to nahodilá věc?

Ohledně Shell Extensions: jde o DLL knihovny, které se mohou načítat během spouštění (otevírání) jakékoliv aplikace nebo dokumentu.
CityShark
Posts: 5
Joined: 02 Nov 2006, 22:50
Contact:

Post by CityShark »

Ano, deje se to vzdy. Neni problem to kdykoliv odsimulovat.
Napadlo me, nezkousel jsem to nikdy v nouzovem rezimu atp... mam to vyzkouset?

Zkousel jsem prejmenovat na extremne dlouhy nazev i treba takovou windowsi kalkulacku umre to taky...
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Nouzový režim asi není třeba testovat, pokusíme se najít příčinu padání.

Mám silné podezření, že se skutečně jedná o Shell Extension problém, pravděpodobně některé taková knihovna ukládá cestu do lokálního bufferu, který má nedostatečnou velikost (například poloviční díky opomenutí Unicode kódování). Docházelo by tak k přepsání zásobníku, takže k porušení našeho mechanismu pro hlášení chyb (Bug Report), který je založen na výjimkách. No uvidíme, moc rád bych knihovnu identifikoval pro další uživatele.

1. Zkuste prosím postupně prodlužovat cestu (přejmenováním adresáře spouštěného souboru) a určit při kolika znacích začne Salamander padat. Není to kolem 128 znaků? Možná se na hranici nepadání/padání Salamander zachová lépe (zásobník nebude tak zničený) a vygeneruje Bug Report, což by nám velice pomohlo.

2. Zkuste, zda Salamander padá také v případě kliknutí na soubor pravým tlačítkem a zvolením položky Otevřít.

3. Zkuste otevřít okno Průzkumníka (Shift+F3 ze Salamandera), kliknout tam na soubor pravým tlačítkem a zvolit příkaz Otevřít. Padá Průzkumník?
CityShark
Posts: 5
Joined: 02 Nov 2006, 22:50
Contact:

Post by CityShark »

Na Vase dotaze 2 a 3 rovnou odpovim, protoze jsem je zkousel:
2 - ano
3 - ne

Bod c. jedna vyzkousim, jen jak se vecer dostanu domu :-)

Zatim diky za ochotu.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

CityShark wrote: 2 - ano
3 - ne
Hmm, to je bohužel klasika. Záleží na struktuře zásobníku před vyvoláním příkazu Open. Windows Explorer, Total Commander, Servant Salamander -- každý se může zachovat se stejnou Shell Extension jinak. Někdy padají všichni, někdy jen jeden z nich. Je to věc náhody.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Ještě prosím doma zkuste jeden test: ve stavu kdy Salamander nepadá (krátká cesta) provést test podle tohoto postupu:

http://www.altap.cz/salam_en/faulty_she ... sions.html
( podle sekce 1.2 Servant Salamander malfunction )

Potřeboval bych vědět, které Shell Extensions se nahrají do našeho procesu po otevření dokumentu. Pokud Vám postup není v něčem jasný, napište mi prosím (lze si ho otestovat i kdekoliv, kde je Salamander, vždy se nějaké Shell Extensions najdou).
User avatar
SelfMan
Posts: 1151
Joined: 05 Apr 2006, 20:51
Contact:

Post by SelfMan »

Pri debugovani odporucam pouzit nastroj ShellExView od Nira Sofera:
http://www.nirsoft.net/utils/shexview.html

Je tam aj zopar inych VELMI praktickych nastrojov.
Post Reply