|
| Bug i 4.0.6 Fra : Niels Andersen |
Dato : 15-08-01 20:42 |
|
Jeg har fundet en bug, og jeg kan genskabe den. :)
Jeg har dog ikke energi til at koge det mere ned nu, men jeg synes ikke det
er nok til at bugreport.
Hell, det er ikke engang nok til at jeg gider kigge om den allerede er
rapporteret. :)
Det er med udgangspunk i Stig's script ("Dagens quiz-spørgsmål!" -
news:3b7a8aa8$0$97101$edfadb0f@dspool01.news.tele.dk ):
<?
function grabkeys ($felt, $key, $side) {
global $newarray;
$stopkey = array ("A","Z");//De key-navne som den ikke skal gemme.
If (!in_array($key , $stopkey)) {
$newarray[] = $key;
}
}
function showkeys ($felt, $key) {
global $newarray;
echo "showkeys($felt, $key)<br>\n";
flush();
echo $newarray[0] . "12345678";
echo "\n";
}
$row =
array("A"=>"1","B"=>"1","C"=>"1","D"=>"1","E"=>"1","F"=>"1","Z"=>"1");
array_walk ($row, 'grabkeys', $side);
array_walk ($row, 'showkeys');
?>
Anden gang den når til linjen:
echo $newarray[0] . "12345678";
Dør PHP. Følgende dukker op i apache's error log:
FATAL: emalloc(): Unable to allocate 926299453 bytes
Det er lidt forskelligt hvilket tal jeg får, men det er i den
størrelsesorden. :)
Det sjove ved det, er strengen "12345678". Så længe der er 8 eller flere
tegn, går det tilsyneladende galt.
Er der nogen der kan koge den ned, eller måske finde den blandt de
rapporterede bugs?
--
Mvh.
Niels Andersen
| |
Troels Arvin (15-08-2001)
| Kommentar Fra : Troels Arvin |
Dato : 15-08-01 21:31 |
|
On Wed, 15 Aug 2001 21:41:44 +0200, "Niels Andersen"
<niels-usenet@myplace.dk> wrote:
> Er der nogen der kan koge den ned, eller måske finde den blandt de
> rapporterede bugs?
Jeg ved ikke lige, hvad der sker, men noget lignende synes at være
rapporteret:
http://www.php.net/bugs.php?id=11389
Problemet er ikke rettet i den netop frigivne release candidate 1 af PHP
4.0.7.
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Jesper Juul-Mortense~ (15-08-2001)
| Kommentar Fra : Jesper Juul-Mortense~ |
Dato : 15-08-01 21:42 |
|
On Wed, 15 Aug 2001 22:30:31 +0200, "Troels Arvin" <troels@arvin.dk>
wrote:
>Problemet er ikke rettet i den netop frigivne release candidate 1 af PHP
>4.0.7.
Du har ikke en link til rettelserne i 4.0.7? Jeg synes ikke at kunne
finde noget...
/Jesper
| |
Troels Arvin (15-08-2001)
| Kommentar Fra : Troels Arvin |
Dato : 15-08-01 21:53 |
| | |
Troels Arvin (15-08-2001)
| Kommentar Fra : Troels Arvin |
Dato : 15-08-01 21:51 |
|
On Wed, 15 Aug 2001 21:41:44 +0200, "Niels Andersen"
<niels-usenet@myplace.dk> wrote:
> function grabkeys ($felt, $key, $side) {
[...]
> array_walk ($row, 'grabkeys', $side);
Hvad gør de dér $side?
Hvis jeg fjerner dem fra koden synes ting at virke, så måske bug'en er
lokaliseret til en situation, hvor et null-argument benyttes?
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Troels Arvin (15-08-2001)
| Kommentar Fra : Troels Arvin |
Dato : 15-08-01 23:50 |
|
On Wed, 15 Aug 2001 22:50:34 +0200, "Troels Arvin" <troels@arvin.dk>
wrote:
> Hvis jeg fjerner dem fra koden synes ting at virke, så måske bug'en er
> lokaliseret til en situation, hvor et null-argument benyttes?
Hm. Tilsyneladende ikke. En simplificeret kodestump giver stadig
core-dump:
<?php
function test($val,$key)
{
global $globalArray;
$globalArray[]=$key; // this will end up crashing
// $globalArray[]=(string)$key; // this will end up OK
print "val: $val; key: $key\n"; flush();
}
$arr=array('k'=>'v');
array_walk($arr,'test');
// This will crash:
print "First value: ".$globalArray[0];
// This will not crash, but give the wrong
// result, and the final "done" will never be
// printed:
// print "First value: "; print $globalArray[0];
print "\nDone\n";
?>
(Er ved at blive rapporteret i PHP's bug-handling system.)
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Niels Andersen (16-08-2001)
| Kommentar Fra : Niels Andersen |
Dato : 16-08-01 06:24 |
|
"Troels Arvin" <troels@arvin.dk> wrote in message
news:9leucr$jva$1@sunsite.dk...
> $arr=array('k'=>'v');
Måske du skulle bruge et lidt større array. Fejlen dukkede først op hos mig
ANDEN gang funktionen blev udført.
Det ser også ud som om du ikke får helt de samme "symptomer" som mig, men
derfor kan det godt være den samme bug.
> (Er ved at blive rapporteret i PHP's bug-handling system.)
Godt. :)
--
Mvh.
Niels Andersen
| |
Niels Andersen (16-08-2001)
| Kommentar Fra : Niels Andersen |
Dato : 16-08-01 06:21 |
|
"Troels Arvin" <troels@arvin.dk> wrote in message
news:9lendb$4lo$1@sunsite.dk...
> Hvad gør de dér $side?
Hov, dem glemte jeg at fjerne.
Der stod oprindeligt "$side = 1;" øverst i scriptet, men det var ikke
nødvendigt for at reproducere fejlen.
--
Mvh.
Niels Andersen
| |
|
|