Co oznacza "Zend mm heap corrupted"

Nagle miałem problemy z moją aplikacją, których nigdy wcześniej nie miałem. Postanowiłem sprawdzić dziennik błędów Apache' a i znalazłem komunikat o błędzie "zend_mm_heap corrupted". Co to znaczy?

OS: Fedora Core 8 Apache: 2.2.9 PHP: 5.2.6

Author: DaveRandom, 2010-02-12

30 answers

Po wielu próbach i błędach odkryłem, że jeśli zwiększę wartość {[0] } w php.plik ini, ten błąd zniknie

 49
Author: dsmithers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-06 07:15:16

Miałem ten sam błąd pod PHP 5.5 i zwiększenie buforowania wyjścia nie pomogło. Ja też nie prowadziłem APC, więc nie o to chodziło. W końcu wyśledziłem go do opcache , po prostu musiałem wyłączyć go z cli. Było dla tego określone ustawienie:

opcache.enable_cli=0

Po włączeniu uszkodzony błąd zend_mm_heap zniknął.

 41
Author: Justin MacLeod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-18 01:12:08

Jeśli używasz Linuksa, spróbuj tego w wierszu poleceń

export USE_ZEND_ALLOC=0
 39
Author: Hittz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-06 07:15:43

Nie jest to problem, który koniecznie można rozwiązać zmieniając opcje konfiguracji.

Zmiana opcji konfiguracyjnych czasami będzie miała pozytywny wpływ, ale może równie łatwo pogorszyć sytuację lub w ogóle nic nie zrobić.

Natura błędu jest taka:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) {
    void **mem = malloc(sizeof(char)*3);
    void *ptr;

    /* read past end */
    ptr = (char*) mem[5];   

    /* write past end */
    memcpy(mem[5], "whatever", sizeof("whatever"));

    /* free invalid pointer */
    free((void*) mem[3]);

    return 0;
}

Powyższy kod można skompilować za pomocą:

gcc -g -o corrupt corrupt.c

Wykonując kod za pomocą valgrind można zobaczyć wiele błędów pamięci, których kulminacją jest błąd segmentacji:

krakjoe@fiji:/usr/src/php-src$ valgrind ./corrupt
==9749== Memcheck, a memory error detector
==9749== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==9749== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==9749== Command: ./corrupt
==9749== 
==9749== Invalid read of size 8
==9749==    at 0x4005F7: main (an.c:10)
==9749==  Address 0x51fc068 is 24 bytes after a block of size 16 in arena "client"
==9749== 
==9749== Invalid read of size 8
==9749==    at 0x400607: main (an.c:13)
==9749==  Address 0x51fc068 is 24 bytes after a block of size 16 in arena "client"
==9749== 
==9749== Invalid write of size 2
==9749==    at 0x4C2F7E3: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9749==    by 0x40061B: main (an.c:13)
==9749==  Address 0x50 is not stack'd, malloc'd or (recently) free'd
==9749== 
==9749== 
==9749== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==9749==  Access not within mapped region at address 0x50
==9749==    at 0x4C2F7E3: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9749==    by 0x40061B: main (an.c:13)
==9749==  If you believe this happened as a result of a stack
==9749==  overflow in your program's main thread (unlikely but
==9749==  possible), you can try to increase the size of the
==9749==  main thread stack using the --main-stacksize= flag.
==9749==  The main thread stack size used in this run was 8388608.
==9749== 
==9749== HEAP SUMMARY:
==9749==     in use at exit: 3 bytes in 1 blocks
==9749==   total heap usage: 1 allocs, 0 frees, 3 bytes allocated
==9749== 
==9749== LEAK SUMMARY:
==9749==    definitely lost: 0 bytes in 0 blocks
==9749==    indirectly lost: 0 bytes in 0 blocks
==9749==      possibly lost: 0 bytes in 0 blocks
==9749==    still reachable: 3 bytes in 1 blocks
==9749==         suppressed: 0 bytes in 0 blocks
==9749== Rerun with --leak-check=full to see details of leaked memory
==9749== 
==9749== For counts of detected and suppressed errors, rerun with: -v
==9749== ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
Segmentation fault

If you didn ' t know, zorientowałeś się już, że mem jest pamięcią przydzieloną stercie; sterta odnosi się do regionu pamięci dostępnego dla programu w czasie wykonywania, ponieważ program wyraźnie o to poprosił (w naszym przypadku z malloc).

Jeśli bawisz się okropnym kodem, przekonasz się, że nie wszystkie z tych oczywistych błędnych stwierdzeń skutkują błędem segmentacji (fatalnym błędem kończącym).

Wyraźnie popełniłem te błędy w przykładowym kodzie, ale te same błędy zdarzają się bardzo łatwo w środowisku zarządzanym pamięcią: jeśli jakiś kod nie zachowuje poprawnego refcount zmiennej (lub innego symbolu), na przykład jeśli jest wolny za wcześnie, inny fragment kodu może odczytać z już wolnej pamięci, jeśli w jakiś sposób przechowuje niewłaściwy adres, inny fragment kodu może zapisać się do nieprawidłowej pamięci, może być wolny dwa razy ...

Nie są to problemy, które można debugować w PHP, absolutnie wymagają uwagi programisty wewnętrznego.

The przebieg działania powinien wynosić:

  1. otwórz raport o błędzie na http://bugs.php.net
  2. Dołącz tyle informacji konfiguracyjnych, ile wydaje się właściwe, w szczególności, jeśli używasz OPcache include optimization level.
  3. sprawdzaj raport o błędzie pod kątem aktualizacji, możesz poprosić o więcej informacji.
  4. jeśli masz załadowany opcache, wyłącz optymalizacje
    • nie czepiam się opcache, jest świetny, ale niektóre z jego optymalizacji są znane z powodowania błędów.
    • jeśli to nie zadziała, mimo że Twój kod może być wolniejszy, spróbuj najpierw rozładować opcache.
    • jeśli którakolwiek z tych sytuacji zmieni lub rozwiąże problem, zaktualizuj zgłoszenie błędu.
  5. Wyłącz wszystkie niepotrzebne rozszerzenia naraz.
    • Zacznij włączać wszystkie rozszerzenia indywidualnie, dokładnie testując po każdym zmiana konfiguracji.
    • jeśli znajdziesz rozszerzenie problemu, zaktualizuj raport o błędzie o więcej informacji.
  6. zysk.
Nie może być żadnego zysku ... Powiedziałem na początku, możesz być w stanie znaleźć sposób, aby zmienić swoje objawy, mieszając się z konfiguracją, ale jest to bardzo trafne i chybione, i nie pomaga następnym razem, gdy masz ten sam zend_mm_heap corrupted wiadomość, jest tylko tyle opcji konfiguracyjnych.

To naprawdę ważne, że tworzymy błędy raporty gdy znajdziemy błędy, nie możemy zakładać, że następna osoba, która go trafi, zrobi to ... bardziej prawdopodobne niż nie, rzeczywista rozdzielczość nie jest w żaden sposób tajemnicza, jeśli uświadomisz właściwym ludziom problem.

USE_ZEND_ALLOC

Jeśli ustawisz USE_ZEND_ALLOC=0 w środowisku, wyłącza to własny menedżer pamięci Zend; Menedżer pamięci Zend zapewnia, że każde żądanie ma swoją własną stertę, że cała pamięć jest wolna na końcu żądania i jest zoptymalizowana pod kątem alokacji kawałki pamięci odpowiedniej wielkości dla PHP.

Wyłączenie go wyłączy te optymalizacje, co ważniejsze prawdopodobnie spowoduje wycieki pamięci, ponieważ istnieje wiele kodów rozszerzeń, które opierają się na Zend MM, aby zwolnić pamięć dla nich na końcu żądania(tut, tut).

Może równieżukryć objawy, ale sterta systemu może być uszkodzona dokładnie tak samo jak sterta Zend ' a.

Może wydawać się bardziej tolerancyjny lub mniej tolerancyjny, ale napraw korzeń przyczyna problemu, nie może .

Możliwość wyłączenia go w ogóle, jest z korzyścią dla programistów wewnętrznych; powinieneś nigdy wdrożyć PHP z wyłączonym Zend MM.

 29
Author: Joe Watkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-01 08:01:32

Sprawdź, czy unset() s. upewnij się, że unset() odniesienia do $this (lub ich odpowiedników) w destruktorach nie powodują spadku liczby odniesień do tego samego obiektu do 0. Poszperałem trochę i odkryłem, że to zwykle powoduje korupcję sterty.

Pojawił się błąd PHP dotyczący uszkodzonego błędu zend_mm_heap. Zobacz komentarz [2011-08-31 07:49 UTC] f dot ardelian at gmail dot com dla przykładu jak go odtworzyć.

Mam wrażenie, że wszystkie inne " rozwiązania" (Zmień php.ini, skompiluj PHP ze źródła z mniejszą ilością modułów, itp.) po prostu ukryj problem.
 22
Author: f.ardelian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-31 08:06:26

W moim przypadku przyczyną tego błędu było to, że jedna z tablic stała się bardzo duża. Ustawiłem mój skrypt, aby zresetować tablicę na każdej iteracji i to rozwiązało problem.

 7
Author: Piotr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-24 10:10:45

Dla mnie żadna z poprzednich odpowiedzi nie zadziałała, dopóki nie spróbowałem:

opcache.fast_shutdown=0
Wygląda na to, że na razie działa.

Używam PHP 5.6 z PHP-FPM i Apache proxy_fcgi, jeśli to ma znaczenie...

 5
Author: Jesús Carrera,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-04 21:32:29

Zgodnie z Bug trackerem, Ustaw opcache.fast_shutdown=0. Fast shutdown używa Zend memory manager, aby posprzątać swój bałagan, to wyłącza to.

 5
Author: Taco de Wolff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-22 17:47:18

Zmagałem się z tym problemem, przez tydzień, to działało dla mnie, lub przynajmniej tak się wydaje

W php.ini Dokonaj tych zmian

report_memleaks = Off  
report_zend_debug = 0  

Moja konfiguracja to

Linux ubuntu 2.6.32-30-generic-pae #59-Ubuntu SMP  
with PHP Version 5.3.2-1ubuntu4.7  
To nie zadziałało.

Więc próbowałem użyć skryptu testowego i próbowałem nagrywać, gdzie skrypt się rozłączał. Odkryłem, że tuż przed błędem obiekt php został utworzony i ukończenie tego, co obiekt miał zrobić, zajęło więcej niż 3 sekundy, podczas gdy w poprzednich pętlach zajęło to max 0.4 sekundy. Przeprowadziłem ten test kilka razy i za każdym razem tak samo. Pomyślałem, że zamiast za każdym razem tworzyć nowy obiekt (tutaj jest długa pętla), powinienem go ponownie użyć. Testowałem skrypt już kilkanaście razy, a błędy pamięci zniknęły!

 4
Author: sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-15 09:25:27

Myślę, że nie ma tu jednej odpowiedzi, więc dodam swoje doświadczenie. Widziałem ten sam błąd wraz z losowymi httpd segfaults. To był serwer cPanel. Problem polegał na tym, że apache losowo zresetował połączenie (żadne dane nie zostały odebrane w chrome lub połączenie zostało zresetowane w Firefoksie). Były to na pozór przypadkowe - przez większość czasu działało, czasami nie.

Kiedy przybyłem na scenę buforowanie wyjściowe było wyłączone. Czytając ten wątek, który wskazywał na wyjście buforowanie, włączyłem go (=4096), aby zobaczyć, co się stanie. W tym momencie, oni wszystkie zaczęły pokazywać błędy. To było dobre, ponieważ błąd był teraz powtarzalny.

Przeszedłem i zacząłem wyłączać rozszerzenia. Wśród nich, eaccellerator, pdo, ioncube loader, i wiele, że wyglądał podejrzenie, ale żaden nie pomógł.

W końcu znalazłem rozszerzenie naughty PHP jako "homeloader.so", który wydaje się być rodzajem modułu cPanel-easy-installer. Po usunięcie, nie doświadczyłem żadnych innych problemów.

Na tej uwadze, wygląda na to, że jest to ogólny komunikat o błędzie, więc twój przebieg będzie się różnić od wszystkich tych odpowiedzi, najlepszy sposób działania, jaki możesz podjąć:

  • uczynić błąd powtarzalnym (jakie warunki?) za każdym razem
  • znajdź wspólny czynnik
  • selektywnie wyłącz wszystkie moduły PHP, opcje itp. (lub, jeśli się spieszysz, wyłącz je wszystkie, aby sprawdzić, czy to pomaga, a następnie selektywnie włącz je ponownie, dopóki się nie zepsuje again)
  • jeśli to nie pomoże, wiele z tych odpowiedzi sugeruje, że może to być Kod release. Ponownie, kluczem jest, aby błąd powtarzalny każde żądanie , dzięki czemu można go zawęzić. Jeśli podejrzewasz, że robi to fragment kodu, po raz kolejny, po powtórzeniu błędu, po prostu usuń kod, aż błąd ustanie. Gdy przestanie działać, wiesz, że ostatni fragment kodu, który usunąłeś, był winowajcą.

Nie wszystkie powyższe, można również spróbować rzeczy like:

  • Aktualizacja lub rekompilacja PHP. Mam nadzieję, że jakikolwiek błąd powoduje twój problem jest naprawiony.
  • Przenieś kod do innego środowiska (testowego). Jeśli to rozwiąże problem, co się zmieniło? php.opcje ini? Wersja PHP? itd...

Powodzenia.

 3
Author: A.B. Carroll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-22 02:47:45

Poszukaj dowolnego modułu używającego buforowania i wybiórczo go wyłącz.

Uruchamiam PHP 5.3.5 na CentOS 4.8 i po zrobieniu tego stwierdziłem, że eaccelerator potrzebuje aktualizacji.

 2
Author: Scott Davey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-13 23:33:30

Właśnie miałem ten problem również na serwerze, który posiadam, a główną przyczyną był APC. Skomentowałem "apc.so" rozszerzenie w php.plik ini, przeładowany Apache, a strony wróciły z powrotem.

 2
Author: Vance Lucas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-05 16:31:32

Próbowałem wszystkiego powyżej i zend.enable_gc = 0 - jedyne ustawienie config, które mi pomogło.

PHP 5.3.10-1ubuntu3. 2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58)

 2
Author: Bethrezen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-28 06:25:43

Miałem ten błąd przy użyciu sterownika Mongo 2.2 Dla PHP:

$collection = $db->selectCollection('post');
$collection->ensureIndex(array('someField', 'someOtherField', 'yetAnotherField')); 

^ ^ NIE DZIAŁA

$collection = $db->selectCollection('post');
$collection->ensureIndex(array('someField', 'someOtherField')); 
$collection->ensureIndex(array('yetAnotherField')); 

^^ działa! (?!)

 2
Author: hernanc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-12 18:43:02

W PHP 5.3, po wielu poszukiwaniach, to jest rozwiązanie, które zadziałało dla mnie:

Wyłączyłem PHP garbage collection dla tej strony dodając:

<? gc_disable(); ?>

Na końcu problematycznej strony, która sprawiła, że wszystkie błędy zniknęły.

Źródło .

 2
Author: Kuf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-03 15:02:02

Myślę, że wiele powodów może spowodować ten problem. A w moim przypadku wymieniam 2 klasy o tej samej nazwie, a jedna spróbuje załadować drugą.

class A {} // in file a.php
class A // in file b.php
{
  public function foo() { // load a.php }
}
I to powoduje ten problem w moim przypadku.

(używając frameworka laravel, uruchamiając PHP artisan db: seed w realu)

 2
Author: Yarco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-09 05:14:37

Miałem ten sam problem i kiedy miałem niepoprawne IP dla sesji.save_path dla sesji memcached. Zmiana na poprawny adres IP rozwiązała problem.

 1
Author: Travis Derouin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-29 19:30:21

Jeśli używasz traits I trait jest ładowany po klasie (np. przypadku automatycznego ładowania) musisz wcześniej załadować cechę.

Https://bugs.php.net/bug.php?id=62339

Uwaga: ten błąd jest bardzo losowy; ze względu na jego naturę.

 1
Author: srcspider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-25 08:01:03

Dla mnie problemem było użycie pdo_mysql. Zapytanie zwróciło 1960 wyników. Próbowałem zwrócić 1900 płyt i działa. Problemem jest więc pdo_mysql i zbyt duża tablica. Przepisałem zapytanie z oryginalnym rozszerzeniem mysql i zadziałało.

$link = mysql_connect('localhost', 'user', 'xxxx') or die(mysql_error());
mysql_select_db("db", $link);

Apache nie zgłaszał żadnych wcześniejszych błędów.

zend_mm_heap corrupted
zend_mm_heap corrupted
zend_mm_heap corrupted
[Mon Jul 30 09:23:49 2012] [notice] child pid 8662 exit signal Segmentation fault (11)
[Mon Jul 30 09:23:50 2012] [notice] child pid 8663 exit signal Segmentation fault (11)
[Mon Jul 30 09:23:54 2012] [notice] child pid 8666 exit signal Segmentation fault (11)
[Mon Jul 30 09:23:55 2012] [notice] child pid 8670 exit signal Segmentation fault (11)
 1
Author: broadband,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-30 08:17:46

"zend_mm_heap uszkodzony" oznacza problemy z zarządzaniem pamięcią. Może być wywołany przez dowolny moduł PHP. W moim przypadku instalacja APC zadziałała. Teoretycznie inne pakiety jak eAccelerator, XDebug itp. może też pomóc. Jeśli masz zainstalowane tego rodzaju Moduły, spróbuj je wyłączyć.

 1
Author: Muto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 07:12:32

Piszę rozszerzenie php i również napotykam ten problem. Kiedy wywołuję funkcję extern ze skomplikowanymi parametrami z mojego rozszerzenia, pojawia się ten błąd.

Powodem jest to, że nie przydzielam pamięci dla parametru (char*) w funkcji extern. Jeśli piszesz ten sam rodzaj rozszerzenia, zwróć na to uwagę.

 1
Author: cedricliang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-30 07:38:09

Dla mnie to ZendDebugger spowodował wyciek pamięci i spowodował awarię Menedżera pamięci.

Wyłączyłem go i aktualnie Szukam nowszej wersji. Jak nie znajdę to przełączę się na xdebug...

 0
Author: Structed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-09 08:37:56

Ponieważ nigdy nie znalazłem na to rozwiązania, postanowiłem uaktualnić moje środowisko lampy. Poszedłem do Ubuntu 10.4 LTS z PHP 5.3.x. wydaje się, że to powstrzymało problem dla mnie.

 0
Author: bkulyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-25 16:44:22

W moim przypadku zapomniałem o kodzie:

);

Pobawiłem się i zapomniałem o tym w kodzie tu i ówdzie - w niektórych miejscach mam korupcję, w niektórych przypadkach po prostu zwykły błąd seg:

[Wed Jun 08 17:23:21 2011] [notice] child pid 5720 exit signal Segmentation fault (11)

Jestem na mac 10.6.7 i xampp.

 0
Author: dsomnus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-08 14:41:21

Zauważyłem również ten błąd i SIGSEGV podczas uruchamiania starego kodu, który używa '&' do jawnego wymuszania odniesień podczas uruchamiania go w PHP 5.2+.

 0
Author: Phillip Whelan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-18 05:47:32

Ustawienie

assert.active = 0 

W php.ini mi pomogło (wyłączyło asercje typu w bibliotece php5UTF8 i zend_mm_heap corrupted odeszło)

 0
Author: Vasiliy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-20 15:23:19

Dla mnie problem został zawieszony memcached daemon, ponieważ PHP został skonfigurowany do przechowywania informacji o sesji w memcached. Zjadał 100% cpu i zachowywał się dziwnie. Po Memcached restart problem zniknął.

 0
Author: Justinas Jaronis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-10 07:36:47

Ponieważ żadna z innych odpowiedzi nie rozwiązała tego problemu, miałem ten problem w php 5.4, gdy przypadkowo uruchomiłem nieskończoną pętlę.

 0
Author: Trenton Maki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-29 21:31:26

Kilka wskazówek, które mogą pomóc komuś

Fedora 20, php 5.5.18

public function testRead() {
    $ri = new MediaItemReader(self::getMongoColl('Media'));

    foreach ($ri->dataReader(10) as $data) {
       // ...
    }
}

public function dataReader($numOfItems) {
    $cursor = $this->getStorage()->find()->limit($numOfItems);

    // here is the first place where "zend_mm_heap corrupted" error occurred
    // var_dump() inside foreach-loop and generator
    var_dump($cursor); 

    foreach ($cursor as $data) {
        // ...
        // and this is the second place where "zend_mm_heap corrupted" error occurred
        $data['Geo'] = [
            // try to access [0] index that is absent in ['Geo']
            'lon' => $data['Geo'][0],
            'lat' => $data['Geo'][1]
        ];
        // ...
        // Generator is used  !!!
        yield $data;
    }
}

Użycie var_dummp () w rzeczywistości nie było błędem, zostało umieszczone tylko do debugowania i zostanie usunięte w kodzie produkcyjnym. Ale prawdziwe miejsce, w którym wydarzył się zend_mm_heap, to drugie miejsce.

 0
Author: lexand,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-10 08:34:40

Byłem w tej samej sytuacji tutaj, nic powyżej nie pomogło, a sprawdzając bardziej poważnie znalazłem mój problem, polega na try do die (header ()) po wysłaniu jakiegoś wyjścia do bufora, człowiek, który zrobił to w kodzie zapomniał o zasobach CakePHP i nie zrobił prostego "return $this->redirect ($url)".

Próba ponownego wynalezienia studni, to był problem.

Mam nadzieję, że to komuś pomoże!

 0
Author: Newton Pasqualini Filho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-27 21:09:26