Chyba při zakládání directory /temp po upgrade na tracy/tracy 2.9.0

m.brecher
Generous Backer | 864
+
0
-

Ahoj,

narazil jsem po upgrade tracy/tracy na verzi 2.9.0 na tuto chybu:

na lokálním serveru na windows OK, po uploadu na webhosting (Blueboard) řádek v Bootstrapu, který zodpovídá za vytvoření složky /temp selhal:

class Bootstrap
{
	public static function boot(): Configurator
	{
        $appDir = dirname(__DIR__);
		$configurator = new Configurator;
		$configurator->setDebugMode('secret@111.222.333');
		$configurator->enableTracy($appDir . '/log');
	}
}

Konfigurátor se pokusil vytvořit složku /temp mimo root projektu a porušil open_basedir serveru, následné chybové hlášení PHP odeslalo http hlavičky a Tracy vyhodilo výjimku.

Po vypnutí Tracy jsem získal tato chybová hlášení PHP vypsaná do stránky:

Warning: is_dir(): open_basedir restriction in effect.
  File(/data/www/20862/tmp) is not within the allowed path(s): (/data/www/20862/btd_cz)
  in /data/www/20862/btd_cz/karban/vendor/tracy/tracy/src/Tracy/Debugger/Debugger.php on line 489

Notice: Possible problem: you are sending a HTTP header while already having some data in output buffer. Try Tracy\OutputDebugger or send cookies/start session earlier. in /data/www/20862/btd_cz/karban/vendor/nette/http/src/Http/Response.php on line 314

Downgradoval jsem tedy zpět na tracy/tracy 2.8.9 a nahrál na server. Chyba zmizel.

Otázkou je, jestli byla chyba v tracy/tracy 2.9.0, jestli nedošlo při ftp přenosu k nějaké chybě a nechyběl tam nějaký soubor. Zkoušel jsem ale celé tracy v chybové verzi nahrát úplně znovu – smazal celý adresář /tracy a nahrál tracy znova, takže spíš ne.

Editoval m.brecher (14. 2. 2022 17:05)

Marek Bartoš
Nette Blogger | 1263
+
+1
-

Je to opravené v 2.9-dev
https://github.com/…def92e36d138

m.brecher
Generous Backer | 864
+
0
-

@MarekBartoš Ahoj, díky za radu, stáhnul jsem si tracy/tracy v2.9.x-dev #ceaf a zkusil to na jednom projektu na webhostingu Blueboard – tam už popsaná chyba s cestou k/temp není a aplikace funguje bez chyby. Zkusil jsem to pro jistotu ještě na jiném hostingu TELE3 a tam to kompletně vytuhne a nedostanu ani žádnou PHP chybovou hlášku. Tak to zatím nechám být a kdyžtak downgraduji na starší tracy/tracy.

Editoval m.brecher (15. 2. 2022 14:40)

David Grudl
Nette Core | 8218
+
0
-

Pokud to vytuhne, tak zkusím prosím zjistit proč. Ať to můžu opravit a vydat novou verzi.

m.brecher
Generous Backer | 864
+
0
-

@DavidGrudl
Ahoj,
provedu pečlivé testování, abych zjistil, co tam je za chybu.

Objevilo jsem další nesrovnalost – verze „Composer Packages“ v panelu Tracy nesouhlasí:

Když upgraduji balíčky nette/tracy, … tak v Tracy panelu SystemInfo je správná verze Tracy např. 2.9.0, ale v rozklikávací části níže „Composer Packages“ jsou staré údaje, které nesouhlasí s tím, co jsem na server nahrál (doma na localhostu to souhlasí, na webhostingu to nesouhlasí). I když na webhosting nahraju celý obsah /vendor/composer/ včetně souborů installed.json, installed.php a InstalledVersions.php, tak hodnoty, které na webhostingu ukazuje seznam „Composer Packages“ se nemění – jako kdyby tam zamrzly ty první nahrané verze.

Více info k chybě s vytuhnutím kvůli Tracy pošlu za chvíli.

m.brecher
Generous Backer | 864
+
0
-

@DavidGrudl

Ahoj, tak jsem na webhosting TELE3 nahrál poslední balíček Nette a dvě dev verze:

nette/application v3.1.x-dev #a844
tracy/tracy v2.9.x-dev #ceaf

a chyba – vytuhnutí serveru už je pryč. Funkce OK. To vytuhnutí bylo asi způsobeno tím, že jsem asi měl poslední verzi tracy/tracy a neměl upgradovaný ten zbytek nette. Když jsem to celé pořádně upgradoval, tak už to funguje.

Jednom malá drobnost – na tomto webhostingu nezobrazuje panel Tracy subpanel „Composer Packages“, ten tam vůbec není, ani ten subpanel „Dev packages“.

David Grudl
Nette Core | 8218
+
0
-

Ty data se ziskavají z composer.lock.