opensubscriber
   Find in this group all groups
 
Unknown more information…

a : aolserver@listserv.aol.com 20 April 2011 • 9:22PM -0400

[AOLSERVER] Problem uploading HUGE files. Possible AOLServer bug
by Eduardo Santos

REPLY TO AUTHOR
 
REPLY TO GROUP




Hi everybody,

My system have very specific needs to upload really large files sometimes.
My upload limit is actually 400MB, but I've received a request to raise this
value to 2GB.

I'm using AOLServer 4.5.1 and I know this is based on ns_limits command. So,
I used the following piece of code to raise the upload size:

set max_file_upload_mb 2500
set size [expr $max_file_upload_mb * 1024 * 1024]
ns_limits set default -maxupload $size

However, the response was completely unexpected:

nrunning 3 nwaiting 0 ntimeout 0 ndropped 0 noverflow 0 maxwait 100
maxupload -1673527296 timeout 60 maxrun 100


*maxupload* had a negative size! I started digging up in C source code from
AOLServer, and I guess I've found the problem. In the file nsd/limits.c we
have the following piece of code:

    int i, val;
    static CONST char *opts[] = {
        "get", "set", "list", "register", NULL
    };
    enum {
        LGetIdx, LSetIdx, LListIdx, LRegisterIdx
    } opt;
    static CONST char *cfgs[] = {
        "-maxrun", "-maxwait", "-maxupload", "-timeout", NULL
    };

(...)
            switch (cfg) {

                case LCUploadIdx:
                    limitsPtr->maxupload = val;
                    break;

            }
        }


It seems like *maxupload* receives the value from *val*, wich is an int var.
If I'm not wrong, the maximum value for C int vars is 2,147,483,647, and I
was trying to setup this value to 2,621,440,000, wich seems to be causing an
overflow.

Considering all this, if I just change the line below everything should
work, right?

    int i, val;

I could just use:

    int i;
    bigint val;

Did I say something wrong or this line of thinking make any sense?

--
Eduardo Santos
Analista de Sistemas

http://eduardosan.wordpress.com
http://twitter.com/eduardosan


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <listserv@list...> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

Related Messages

opensubscriber is not affiliated with the authors of this message nor responsible for its content.