NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Webanwendungen (http://www.netvision-technik.de/forum/forumdisplay.php?f=13)
-   -   Flux und weisse Seiten! (http://www.netvision-technik.de/forum/showthread.php?t=3962)

Nehoz 09.09.2009 16:08

@Solstice

So habe mir die Php.ini mal zu Gemüte geführt...., ehm habe zwar MaxFileSize für Upload und so gefunden aber net die Function bzw die Zeile wo man den Ram für einen prozess ändert....

Ich glaube ich bin an diesem Problem mittlerweile zu lange dran um noch in irgendeiner Weise einen klaren Gedanken zu fassen, sitze mittlerweile seit 4 Tagen an diesem scheiss Problem.... im allgemeinen. Naja villeicht kannst du mir ja noch mal auf die Sprünge helfen denn bei google mag auch sein das ich nicht nach dem richtigen String suche nichts finde was das betrifft.

Wenn du meine Php.ini brauchst schicke ich sie dir gerne mal

MFG Nehoz

Solstice 09.09.2009 17:43

Das was du brauchst heißt:
Zitat:

memory_limit
setz den wert so:
Zitat:

memory_limit = 42M
Grüße

Nehoz 09.09.2009 20:50

Auch das habe ich versucht , bin mit den MB zahlen immer weiter nach oben gegangen,das problem ist das die Zahlen bei dem Fehler denn auch nach oben steigen....

Fatal error: Allowed memory size of 44040192 bytes exhausted (tried to allocate 35 bytes) in /var/www/html/BDecode.php on line 134

als beispiel nur mal eben am rande , es kann also nichts mit dem zugesicherten ram zu tun haben.

ich geb dir mal eben die Php, werde da derzeit nicht wirklich schlau draus...., hat aber irgendwas wenn ich es noch richtig im Kopf habe mit der DB zu tun. $ davor war ja db .....

PHP-Code:

<?php

/* $Id: BDecode.php 1076 2006-10-12 18:01:45Z b4rt $ */

/******************************************************************************/

/*

Programming info

All functions output a small array, which we'll call $return for now.

$return[0] is the data expected of the function
$return[1] is the offset over the whole bencoded data of the next
          piece of data.

numberdecode returns [0] as the integer read, and [1]-1 points to the
symbol that was interprented as the end of the interger (either "e" or
":").
numberdecode is used for integer decodes both for i11e and 11:hello there
so it is tolerant of the ending symbol.

decodelist returns $return[0] as an integer indexed array like you would use in C
for all the entries. $return[1]-1 is the "e" that ends the list, so [1] is the next
useful byte.

decodeDict returns $return[0] as an array of text-indexed entries. For example,
$return[0]["announce"] = "http://www.whatever.com:6969/announce";
$return[1]-1 again points to the "e" that ends the dictionary.

decodeEntry returns [0] as an integer in the case $offset points to
i12345e or a string if $offset points to 11:hello there style strings.
It also calls decodeDict or decodeList if it encounters a d or an l.


Known bugs:
- The program doesn't pay attention to the string it's working on.
 A zero-sized or truncated data block will cause string offset errors
 before they get rejected by the decoder. This is worked around by
 suppressing errors.

*/

// Protect our namespace using a class
class BDecode
{

    function 
numberdecode($wholefile$start)
    {
        
$ret[0] = 0;
        
$offset $start;

        
// Funky handling of negative numbers and zero
        
$negative false;
        if (
$wholefile[$offset] == '-')
        {
             
$negative true;
             
$offset++;
        }
        if (
$wholefile[$offset] == '0')
        {
            
$offset++;
            if (
$negative)
            {
                return array(
false);
            }
            if (
$wholefile[$offset] == ':' || $wholefile[$offset] == 'e')
            {
                
$offset++;
                
$ret[0] = 0;
                
$ret[1] = $offset;
                return 
$ret;
            }
            return array(
false);
        }
        while (
true)
        {
            if (
$wholefile[$offset] >= '0' && $wholefile[$offset] <= '9')
            {
                
$ret[0] *= 10;
            
//Added 2005.02.21 - VisiGod
            //Changing the type of variable from integer to double to prevent a numeric overflow
                
settype($ret[0],"double");
            
//Added 2005.02.21 - VisiGod
                
$ret[0] += ord($wholefile[$offset]) - ord("0");
                
$offset++;
            }
            
// Tolerate : or e because this is a multiuse function
            
else if ($wholefile[$offset] == 'e' || $wholefile[$offset] == ':')
            {
                
$ret[1] = $offset+1;
                if (
$negative)
                {
                    if (
$ret[0] == 0)
                    {
                        return array(
false);
                    }
                    
$ret[0] = - $ret[0];
                }
                return 
$ret;
            }
            else
            {
                return array(
false);
            }
        }
        return array(
false);
    }

    function 
decodeEntry($wholefile$offset=0)
    {
        if (
$wholefile[$offset] == 'd')
        {
            return 
$this->decodeDict($wholefile$offset);
        }
        if (
$wholefile[$offset] == 'l')
        {
            return 
$this->decodelist($wholefile$offset);
        }
        if (
$wholefile[$offset] == "i")
        {
            
$offset++;
            return 
$this->numberdecode($wholefile$offset);
        }
        
// String value: decode number, then grab substring
        
$info $this->numberdecode($wholefile$offset);

        if (
$info[0] === false)
        {
            return array(
false);
        }

        
$ret[0] = substr($wholefile$info[1], $info[0]);
        
$ret[1] = $info[1]+strlen($ret[0]);

        return 
$ret;
    }

    function 
decodeList($wholefile$start)
    {
        
$offset $start+1;
        
$i 0;
        if (
$wholefile[$start] != 'l')
        {
            return array(
false);
        }

        
$ret = array();

        while (
true)
        {
            if (
$wholefile[$offset] == 'e')
            {
                break;
            }

            
$value $this->decodeEntry($wholefile$offset);

            if (
$value[0] === false)
            {
                return array(
false);
            }

            
$ret[$i] = $value[0];
            
$offset $value[1];
            
$i ++;
        }

        
// The empy list is an empty array. Seems fine.
        
$final[0] = $ret;
        
$final[1] = $offset+1;

        return 
$final;
    }

// Tries to construct an array
    
function decodeDict($wholefile$start=0)
    {
        
$offset $start;

        if (
$wholefile[$offset] == 'l')
        {
            return 
$this->decodeList($wholefile$start);
        }
        if (
$wholefile[$offset] != 'd')
        {
            return 
false;
        }

        
$ret = array();
        
$offset++;

        while (
true)
        {
            if (
$wholefile[$offset] == 'e')
            {
                
$offset++;
                break;
            }
            
$left $this->decodeEntry($wholefile$offset);
            if (!
$left[0])
            {
                return 
false;
            }
            
$offset $left[1];
            if (
$wholefile[$offset] == 'd')
            {
                
// Recurse

                
$value $this->decodedict($wholefile$offset);

                if (!
$value[0])
                {
                    return 
false;
                }

                
$ret[addslashes($left[0])] = $value[0];
                
$offset$value[1];

                continue;
            }
            else if (
$wholefile[$offset] == 'l')
            {
                
$value $this->decodeList($wholefile$offset);

                if (!
$value[0] && is_bool($value[0]))
                {
                    return 
false;
                }

                
$ret[addslashes($left[0])] = $value[0];
                
$offset $value[1];
            }
            else
            {
                
$value $this->decodeEntry($wholefile$offset);

                if (
$value[0] === false)
                {
                    return 
false;
                }

                
$ret[addslashes($left[0])] = $value[0];
                
$offset $value[1];
            }
        }
        if (empty(
$ret))
        {
            
$final[0] = true;
        }
        else
        {
            
$final[0] = $ret;
        }

        
$final[1] = $offset;

        return 
$final;
    }

// End of class declaration.

// Use this function. eg:  BDecode("d8:announce44:http://www. ... e");
function BDecode($wholefile)
{
    
$decoder = new BDecode;
    
$return $decoder->decodeEntry($wholefile);

    return 
$return[0];
}

?>


Solstice 09.09.2009 22:28

ich denke es liegt irgendwo da:

Zitat:

while (true)
{
if (
$wholefile[$offset] >= '0' && $wholefile[$offset] <= '9')
{
$ret[0] *= 10;
//Added 2005.02.21 - VisiGod
//Changing the type of variable from integer to double to prevent a numeric overflow
settype($ret[0],"double");
//Added 2005.02.21 - VisiGod
$ret[0] += ord($wholefile[$offset]) - ord("0");
$offset++;
}
// Tolerate : or e because this is a multiuse function
else if ($wholefile[$offset] == 'e' || $wholefile[$offset] == ':')
{
$ret[1] = $offset+1;
if (
$negative)
{
if (
$ret[0] == 0)
{
return array(
false);
}
$ret[0] = - $ret[0];
}
return
$ret;
}
else
{
return array(
false);
}
}


Was bedeutet... wenn die erste bedingung immer erfüllt ist wird die schleife nicht aufhören...

das schätze ich mal passiert bei einer endlos großen metadatei oder einer kaputten Metadatei.

Schon mal verschiedene Metas probiert?

Geht der Flux mit Wget und nur mit torrent nicht?

Grüße.

Edit: Wenn du jemanden kompetenten mal bei dir hast kannst du das ma debuggen lassen und schaun wann er aussteigt...
leider ist das uns im rahmen des Forums nicht möglich sowie dere Zeitaufwand wäre hier für mich etwas zu groß.

ICh nehme mal an dass der Code Korrekt ist und der Fehler woanders liegt... aber durch einen ordentlichen Debug könnte man vll rausfinden wo er liegt bzw ausschließen wo er nicht liegt...

BonkeR 09.09.2009 22:33

das was du da postest ist falsch das stell mal wieder in den urzustand!

/etc/php5/apache2/php.ini
zb bei Debian da ist es zu finden!

Code:

max_execution_time = 60    ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 42M      ; Maximum amount of memory a script may consume (42MB)

Das sollste dann ändern

Solstice 09.09.2009 23:14

hat er doch...


erst war er bei 16 MB erschöpft-.... beim neuen erst bei 35 MB also muss er es ja wohl gefunden haben...

;-)

BonkeR 10.09.2009 05:24

Sorry falsch gelesen

Nehoz 10.09.2009 10:22

Ich sag mal so, ersma danke für die Antworten, auch wenn ich die Php gepostet habe kann es im Grunde nicht dadran liegen. Ich setze meine Server seit minimum 2 Jahren identisch gleich auf habe mir eine txt dafür fertig gemacht , c&p und gut ist. Ich habe mittlerweile eher das Gefühl das am Debian/Ubuntu Kernel irgendwas geändert wurde wie auch immer.... Habe mich gestern mit einem vom TS tracker mal dran gesetzt und der findet in meiner Config in sofern auch keine Fehler, danach server reinstall und dann seine "Einrichtung" genommen. Er produziert genau den gleichen Fehler. Das Problem ist der Fehler wird nicht nur beim OVH eigenen System ( Kernel ) sei es Ubuntu oder auch Debian produziert sondern auch auf meinem Heimserver, mit neuster Version beider Systeme. Ich sag mal so habe meine Txt mal durchgeschaut, sind aber keine Fehler drinne, aber naja ne Txt schreibt sich ja auch net " von selber " um. Werde mir jetzt gleich mal Fedora oder so zur Brust nehmen und damit experimentieren.... sollten wir ne Lösung des Problems finden werde ich euch hier natürlich auf dem laufendem halten.... ( falls sich dieser Fehler mittlerweile auch bei anderen zeigt) und denn des Fehlers lösung präsentieren ^^...

So Long
MFG NEhoz

One12 10.09.2009 11:24

also an den sys kannst net liegen:) nutze auch einen server von ovh mit debian40 und rennt ohne probs :jiggy:

das problem hatte ich darmals auch da lag es aber am server da war ne hardware kaputt!!!!

Entity 10.09.2009 11:27

gestern noch ein server mit flux gemacht mit dem gleichen system wie du und rennt wie ne wildsau


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.