Panel administracyjny Magento 2 zawiesza się na zawsze, aż do odświeżenia strony

13

Od czasu pracy z Magento 2 wielokrotnie mam ten irytujący problem:

  1. Loguję się do panelu administracyjnego lub przełączam się na inną stronę w panelu administracyjnym
  2. Strona zaczyna się ładować, czasami wyświetla się częściowo, ale potem zawiesza się na zawsze (przynajmniej przez kilka minut), czasami wyświetla się całkowicie, ale przeglądarka nadal wskazuje „ładowanie”, a nawigacja nie działa, ale nie widzę awarii lub działania żądania w konsoli przeglądarki.
  3. Jeśli naciśniesz, F5gdy jest zawieszony, strona ładuje się niemal natychmiast (przynajmniej przez większość czasu)

Wydaje się, że nie ma to związku z żadnymi zdarzeniami, ponieważ takie zachowanie występuje nawet bez wprowadzania zmian w panelu administracyjnym ani w kodzie, tylko nawigacja. Zauważyłem jednak możliwą korelację z unieważnionymi pamięciami podręcznymi .

Masz pojęcie, co może powodować ten problem? Nie wierzę, że są to typowe problemy z uprawnieniami lub plikami cookie, ponieważ ogólnie mówiąc panel administracyjny działa.

Magento działa w trybie programisty w systemie Linux.

Fabian Schmengler
źródło
1
Mam dokładnie ten sam problem, nigdy nie miałem czasu zapytać, cieszę się, że tak. Którą wersję PHP prowadzisz? Używam czegoś 5.6. I jestem pewien, że jest to powiązane. Słyszałem, że wiele osób powiedziało mi, że M2 był niesamowicie wolny, gdy nie uruchomił PHP 7
Raphael w Digital Pianism
1
PHP 5.5, ciekawie byłoby wiedzieć, czy ktoś miałby ten problem z PHP 7
Fabian Schmengler
1
Korzystam z PHP 7 i mam ten sam problem
Reena Parekh
1
Alan Storm zasugerował to, być może powiązane, a może nie: magento.stackexchange.com/questions/3720/...
Raphael w Digital Pianism
1
Mam problem z Magento 2.0.4 działającym na Vagrant (Ubuntu 14.04 / PHP 5.5.9 / MySQL 5.6.28) :(
Siarhey Uchukhlebau 18.04.2016

Odpowiedzi:

3

AKTUALIZACJA

Wygląda na to, że aktualizacja Firefoksa do 46 rozwiązuje problem!

Oryginalne dochodzenia

Ponieważ mam również do czynienia z tym irytującym problemem, postanowiłem spróbować.

Konfiguracja

  • Ubuntu Server 12.4
  • PHP 5.5.30
  • MySQL 5.6.27
  • Świeża instalacja Magento 2.0.4 bez próbki
  • Tryb programisty z wyłączoną pamięcią podręczną

Replikowanie problemu

Na pierwszy rzut oka problem ten wydawał mi się zupełnie przypadkowy. Jednak po kilku testach udało mi się dowiedzieć dokładnie, jak odtworzyć problem.

Przeglądarka

Po pierwsze, nie byłem w stanie odtworzyć problemu w Google Chrome, Internet Explorer 11 ani w starym Windows Safari 5.2.17. Używam głównie FireFox (45.0.2) i rzadko używam Google Chrome. Nawet po tym, jak dokładnie znalazłem sposób na odtworzenie problemu, nie byłem w stanie powielić się w Chrome.

Zakładki

Musisz mieć kilka kart otwartych w FireFox, aby móc replikować problem.

Kroki

  1. Otwórz panel administracyjny i zaloguj się
  2. Po przejściu do pulpitu nawigacyjnego możesz kliknąć dowolny element menu. Zazwyczaj ponownie klikam ikonę deski rozdzielczej
  3. Jak tylko klikniesz element menu, kliknij jedną z otwartych kart i kontynuuj przeglądanie Internetu, czekając na zakończenie ładowania panelu administracyjnego (na podstawie obracającej się ikony obok tytułu karty)
  4. Niestety, nigdy nie załadujesz tej strony.

Dochodzenie

Wygląda więc na to, że gdy klient nie jest skoncentrowany na karcie panelu administracyjnego, Magento 2 wydaje się nie ładować wszystkich zasobów, aby witryna mogła się całkowicie załadować .

Zauważyłem, kiedy wróciłem do nieskończonej strony ładowania panelu administracyjnego, że udało się załadować wiele zasobów.

Jak powiedział Fabian, brak błędów w konsoli, brak ładowania zasobów i brak ładowania zasobów. Wszystko wyglądało tak, jakby strona została załadowana.

Jednak po kliknięciu przycisku zatrzymania ładowania przeglądarki Firefox (X na pasku adresu URL) zauważyłem, że na karcie sieci dodano kilka zasobów, których nie było, gdy strona była w stanie nieskończonego ładowania

UWAGA: zrzut ekranu poniżej dotyczy tylko deski rozdzielczej. Zauważyłem, że więcej zasobów zostało załadowanych po kliknięciu na przykład przycisku zatrzymania ładowania na stronach konfiguracji.

wprowadź opis zdjęcia tutaj

Tak więc dla strony Dashboard zasoby te zostały dodane po kliknięciu przycisku zatrzymaj ładowanie.

Gdy strona jest ładowana normalnie, nie przełączając się na inną kartę, po wczytaniu DOM ładowane są następujące zasoby (zakładam przez AJAX), możesz zauważyć grubszą szarą linię między nimi a zasobami powyżej:

wprowadź opis zdjęcia tutaj

Z jakiegoś powodu następujące zasoby są ładowane automatycznie, gdy strona znajduje się w nieskończonym stanie ładowania, ale są ładowane po załadowaniu DOM, gdy strona ładuje się dobrze:

  • /static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-popup.html
  • /static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-slide.html
  • /static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-custom.html
  • /static/adminhtml/Magento/backend/en_US/mage/apply/scripts.js

Tak daleko sięgnąłem do zadania debugowania. Myślę, że jest jeszcze wiele do zrobienia, aby przetestować i zawęzić problem, ale nie miałem czasu na więcej testów, wrócę do niego, gdy będę miał czas.

Dalsze dochodzenia

Skończyłem instalowanie wtyczki HTTPFox na moim FireFoxie.

Oto, co dostałem, kiedy kliknąłem przycisk zatrzymania ładowania po 1min ładowania (widać, że jquery.storageapi.min.jsw kolumnie czasu jest 59 sekund). Podświetlone wiersze to zasoby, które zostały załadowane po zatrzymaniu ładowania:

wprowadź opis zdjęcia tutaj

Próbowałem zaktualizować bibliotekę jquery.storageapi do najnowszej wersji dostępnej na GitHub, ale niestety nie wydaje się to rozwiązać problemu.

Ponieważ ładowanie favikonu było następne na liście, skomentowałem kod dodając favicon do głowy, ale nie rozwiązało to również problemu.

Próbowałem debugować domReady.jsplik, ponieważ jego nazwa brzmi, jakby to mogła być wina, ale nie ma szans.

Również tutaj są dwa access.logpliki:

Nadal nie mogę zrozumieć, co się tutaj dzieje.

Aktualizacja

Niedawno wprowadziłem dwie zmiany w mojej instalacji:

  • uaktualnij FireFox do 46.0
  • aktualizacja z 2.0.4 do 2.0.5

Teraz nie mogę już powtórzyć problemu.

Raphael at Digital Pianism
źródło
1
Czy próbowałeś sprawdzić, czy istnieje blokowanie współbieżności plików sesji z powodu wywołań ajax w tle? Niektóre pliki js używają danych z wywołań ajax i przechowują informacje o nich w plikach cookie i odwrotnie. codingexplained.com/coding/php/… Mam Redis i Memcache w dev env i wygląda na to, że problem zniknął.
niejasne
@obscure dziękuję za twój wkład, sprawdzę to jutro, ale bardzo w to wątpię, ponieważ działa, gdy pozostaję na karcie administratora, a nie działa, gdy przeglądam inną kartę inną niż Magento podczas ładowania
Raphael w Digital Pianism
Wygląda na to, że aktualizacja Firefoksa do wersji 46 pomaga i nie jest powiązana z wersją Magento. Czy możesz dodać to rozwiązanie u góry odpowiedzi, aby było widoczne od razu.
Siarhey Uchukhlebau
@SiarheyUchukhlebau gotowe;)
Raphael at Digital Pianism
1
Cokolwiek to było, w obecnych przeglądarkach i nowszych wersjach Magento tak się już nie dzieje, więc oznaczę to jako zaakceptowane. Jeszcze raz dziękuję za twoje śledztwo.
Fabian Schmengler,
0

Właśnie ten problem występuje na M2.1.2 z uruchomionym php 7 na hostowanym serwerze NGINX (2 rdzenie, 2 GB pamięci RAM) i używam Chrome (54.0.2840.71 m (64-bit)).

Nie przeprowadziłem żadnych testów, aby znaleźć źródło problemu, ale ponieważ była to nowa konfiguracja serwera, pierwotnie zakładałem, że to mój serwer. Teraz ... nie jestem tego taki pewien.

Teraz powinienem wspomnieć, że obecnie pracuję w trybie programisty i NIE skompilowałem jeszcze mojego kodu. Więc może tak być.

TheNorthern_Light
źródło
0

w jakiś sposób powiązane, gdy aktualizuję produkt i zmieniam Firefoksa na nową kartę, aby nawigować i strona Magento straciła ostrość, pozostaje w gotowości do powrotu do strony Magento, a następnie sfinalizowania aktualizacji tego produktu, jest to coś w rodzaju niepokoju ... ponieważ otwieram 3-4 produkty i chcę pracować nad innymi produktami, dopóki nie zakończę aktualizacji. znasz rozwiązanie tego problemu?

Dan
źródło