[Apache] FATAL: emalloc(): Unable to allocate 792474677 bytes

Résolu
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 - 5 oct. 2005 à 17:54
RobertDeNiroZ Messages postés 8 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 9 septembre 2010 - 9 sept. 2010 à 15:18
Bonjour à tous,
Je développe un site en php d'une dizaine de pages. Il tourne sous Apache2+php5 sur w2k. La plupart du temps tout fonctionne bien, mais de temps en temps, en ajoutant certaines instructions php (qui semblent vraiment anodines), Apache plante en affichant une fenêtre
Application popup : Apache.exe - Erreur d'application : L'instruction à "0x00837ca8" emploie l'adresse mémoire "0x05f71000". La mémoire ne peut pas être "read".

Cliquez sur OK pour terminer le programme.

Pas très explicite ! pas d'erreur php...

Alors je triture le code php pour ne pas utiliser telle ou telle syntaxe, et j'arrive à contourner comme ça le problème. Mais dès que j'implémente une nouvelle fonctionnalité, je retombe là-dessus.

Par exemple, tout fonctionnait bien, et j'ai ajouté ceci :
« while($ligneResultat=odbc_fetch_array($res)) { echo 'test'; }»
et maintenant ça plante ! pourtant le résultat est valide.

Dans le log d'erreur d'apache, il y a la ligne :
FATAL: emalloc(): Unable to allocate 892350769 bytes

Si quelqu'un a une idée, merci de m'aider...

Arn;o)

28 réponses

arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
6 oct. 2005 à 18:29
DIAGS, solutions d'optimisations horaires (www.diags.fr), nous développons des softs sous Windev, et moi je fais des intranet pour que tout les utilisateurs puissent accéder aux données en "client léger"...

Pkoi tu upgrade pas MySql ?

Sinon, j'ai regardé un peu odbc_setoption(), et je sais pas trop quelles sont les "options".
- soit il s'agit des options propres au driver, dans ce cas, ça ne m'avancera pas tellement car le driver odbc hyperfile n'est défini que par 2 paramètres (et oui !)...
- soit ce sont les options définies dans le php.ini... je vais étudier ça...

Arn;o)
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
6 oct. 2005 à 20:40
Pkoi tu upgrade pas MySql ?

Ben bicoze le site est chez un hebergeur, une société d'hébergement web
(kreatys). Donc je ne vais leur imposer de mettre à jour leur serveur
qui doit héberger plusieur sites commerciaux. Enfin je vais quand m^me
leur poser une question innocente

"Juste pour info, dois-je anticiper une future migration vers PHP5
et/oiu Mysql 5 ? Parceque ces versions sont en train de symposer et de
devenir les standards de ces technologies..."



- soit il s'agit des options propres au driver, dans ce cas, ça ne
m'avancera pas tellement car le driver odbc hyperfile n'est défini que
par 2 paramètres (et oui !)...

- soit ce sont les options définies dans le php.ini... je vais étudier ça...

A mon avis la première solution (selon la doc). Pas de chance !
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 09:27
Merci FhX, je n'utilise pas SQLServer, et je n'ai pas de colonne de type "ntext", mais je vais regarder ça de plus près.
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 10:12
c koi DBGUI -gui ?
Sinon en fait la base que je lit existe déjà et je ne peux pas vraiment en modifier la stucture... c'est la base d'une autre appli (qui est déjà distribuée)... enfin bon, je vais voir comment je peux m'arranger.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 11:38
CA Y'EST ! Je pense que j'ai trouvé, grâce à vos suggestion !

En fait, HyperFile propose un type de données appelé "Heure", mais qui n'a rien de standard, alors si je fais attention à ne pas faire de requête sur des champs de ce type, ça ne plante plus (jamais ?) !!! Merci encore pour votre aide !
Le plus énervant, c'est que j'avais déjà remarqué ce problème avec les champs heure il y a qqs mois, mais j'avais pas fait le rapprochement !

Pour contourner le problème (car j'ai qd même besoin de lire ces champs heure), il faut que je fasse un simple odbc_result_all (fonction qui affiche un tableau mis en forme contenant tout le résultat de la requête) en ayant fait une redirection de la sortie standard, et que je triture le résultat pour enlever les balises html (<td>, <tr>, etc...). Enfin ça j'ai l'habitude car je dois déjà le faire pour les champs de type "date", qui ne sont pas standard non plus !

Big UP à FhX, J_G, et malalam !

A+
Arn;o)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 oct. 2005 à 15:31
gui, c'est interface utilisateur (désolé, j'ai commencé ce message à
10h, et je l'ai terminé à 15h30...y a des impératifs parfois ;-) ).
Bref là, c'est l'interface qui permet aux utilisateurs de définir leur
réseau, quel transports vont faire quelles lignes, quels chauffeurs,
les tours, etc etc...alimenter la base, quoi.
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
7 oct. 2005 à 17:13
BRAVO !!!



A+
0
RobertDeNiroZ Messages postés 8 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 9 septembre 2010 1
9 sept. 2010 à 15:18
Merci !! Votre discussion m'a permit de résoudre a peu prés le même souci sur une base sql server 2008 ! Une somme sur un champ texte qui me pété apache (c'est pas moi qui a fait la requête, pas taper) !
La requête avec odbc_result_all() ne planté pas alors que le _fetch_array() lui cramé apache.

Merci à vous 5 ans plus tard :)
0
Rejoignez-nous