latest 100 | #django-dev
July 5th, 2008
| 03:55 | axiak | yeah |
| 03:55 | axiak | so maybe something even, like 64k? ;0 |
| 03:55 | lakin | It's gets incremented for each form field? |
| 03:55 | axiak | yeah |
| 03:55 | axiak | I'll look to see if there's any better place to count |
| 03:56 | axiak | hmm |
| 03:56 | axiak | though I don't think there is |
| 03:56 | axiak | sigh |
| 03:56 | lakin looks at the code | |
| 03:56 | lakin | Well, the main issue is to avoid a DoS if someone submits an extremely large POSt |
| 03:56 | lakin | right? |
| 03:56 | axiak | you mean the reason for all of this? |
| 03:56 | lakin | yeah/ |
| 03:57 | axiak | yeah |
| 03:57 | axiak | stream the data, rather than loading it all into memory |
| 03:57 | lakin | right. But it's also a matter of how much data will we accept in one request? |
| 03:58 | axiak | no, that's better dealt with at the apache/lighttpd level |
| 03:58 | axiak | like, it gives you the ability to if you so chose |
| 03:58 | axiak | but I didn't put that in as a setting or anything |
| 03:59 | lakin | Yeah, I was thinking of a setting. |
| 03:59 | axiak | yeah...I think that's false security |
| 03:59 | axiak | it's a poor way of dealing with it |
| 03:59 | lakin | having a setting for it is? |
| 04:00 | axiak | doing it in the django side |
| 04:00 | lakin | I'm not sure I agree tho. Of course, it's probably more secure and stable to deal with request-size issues at the apache/lightty level, but it's definitely a convenience to do it at the django level too. |
| 04:01 | axiak | yeah but it's not like the solution is optimal |
| 04:01 | axiak | like |
| 04:01 | axiak | the result is poor |
| 04:01 | empty | lakin: at the django point you have to already load the file into memory |
| 04:01 | axiak | either django soaks up cpu time reading in the network |
| 04:01 | axiak | or you cause a connection reset error |
| 04:01 | lakin | connection reset error? |
| 04:01 | axiak | yeah |
| 04:01 | lakin | Why not return an invalid request header or something? |
| 04:02 | axiak | :) |
| 04:02 | axiak | wouldn't that be nice. |
| 04:02 | axiak | the problem is, there's no way to tell apache/lighttpd/etc during the request: "Hey, tell the client to stop giving data and return this data" |
| 04:03 | axiak | so you have to options: |
| 04:03 | lakin | Oh ... |
| 04:03 | axiak | 1) Read everything and do nothing with it and return the error |
| 04:03 | axiak | 2) Force a connection reset error |
| 04:05 | lakin | In that case, taking the check out doesn't bother me. |
| 04:05 | axiak | or secret option number 3: let apache/lighttpd deal with it :) |
| 04:05 | lakin | I keep forgetting that django doesn't come with an built-in production ready webserver. Been doing too much work in CherryPy lately. ;) |
| 04:05 | axiak | :P |
| 04:08 | lakin | btw, there is a small bug in there, if you unget bytes, _modifications_since is incremented, shouldn't it also be decremented? |
| 04:09 | lakin | maybe not |
| 04:11 | axiak | absolutely not |
| 04:11 | axiak | one of the inifinte loop bugs was ungetting and getting repetatively :) |
| 04:11 | axiak | repeatatively* |
| 04:13 | lakin | aaah, that's why you started counting _modifications_since |
| 04:19 | lakin | Well, thanks for tracking it down |
| 04:19 | axiak | thanks for being such a good bug reporter :) |
| 04:19 | axiak | the patch is on trac, if malcolm is feeling risky he'll apply it otherwise jacob will get to it |
| 04:19 | lakin | heh |
| 04:21 | axiak | alright, I need to sleep |
| 04:21 | axiak | good night! |
| 19:28 | zerok | hi :-) i've got a few logic-questions regarding the new upload handler esp. the memory handler if i may. shouldn't it somehow not just rely on the content-length header? something like throwing an exception within receive_data_chunk the moment the indicated content-length is passed? |
| 22:20 | [530] | noone llooks at #6587 , /me bored want work ;) |
| 22:20 | DjangoBot | |
| 23:28 | Gulopine | grah! anybody got experience with the oracle backend? |
| 23:29 | Gulopine | not necessarily with using it, but how the query stuff is set up for it |
July 6th, 2008
| 00:23 | [530] | Gulopine: is it not mostly the limit stuff that is different in oracle? |
| 00:29 | Gulopine | [530], i think it is, it's just kinda confusing |
| 00:29 | Gulopine | |
| 00:31 | Gulopine | i'm trying to figure out how connection.ops.no_limit_value() is supposed to work, and i'm just getting terribly confused |
| 00:34 | [530] | Gulopine: seen http://code.djangoproject.com/browser/django/tr... |
| 00:34 | [530] | ? |
| 00:39 | [530] | as_sql seems to do it in this query class |
| 00:40 | Gulopine | yeah, i was just looking at that too |
| 00:44 | Gulopine | oh |
| 00:44 | Gulopine | i see what's going on |
| 00:44 | Gulopine | i was looking into no_limit_value(), to see why it was being used, when i found the whole limit/offset thing being done in sql.query |
| 00:45 | Gulopine | what was throwing me off was that connection.ops.limit_offset_sql() looked like *it* should be doing that stuff instead |
| 00:45 | Gulopine | but i see now that conneciton.ops.limit_offset_sql() isn't ever actually used ... curious |
| 00:45 | [530] | oh |
| 00:46 | Gulopine | so maybe that's part of what malcolm's working toward with that FIXME comment |
| 00:46 | Gulopine | moving that stuff out to limit_offset_sql(), that is |
| 00:46 | [530] | some leftovers :) |
| 00:46 | Gulopine slaps malcolm on the wrist ... er, if only he were here | |
| 00:47 | [530] | we have trouble reading it, he actually made it, i want his brain :P |
| 00:48 | Gulopine | yeah, seriously |
| 01:02 | [530] | i just noticed, i just became a zombie :) |
| 01:08 | Gulopine | zombies don't actually eat brains, unless instructed to do so by their zombie masters |
| 06:36 | Alex_Gaynor sees 2, 2 commiters. Ha ha ha ha | |
| 14:43 | saltmind | Hi guys, does anyone know when "make-messages" is going to be moved to django-admin? |
| 14:44 | zerok | |
| 14:45 | zerok | so basically makemessages should be in trunk for the last couple of hours :-) |
| 14:45 | saltmind | zerok: I did a checkout today, and an update a few minutes ago. It's not. |
| 14:45 | zerok | i did it too and it is ;) |
| 14:46 | zerok | what revision do you have? |
| 14:46 | saltmind | zerok: At revision 7852. |
| 14:46 | saltmind | zerok: that's very strange. |
| 14:46 | saltmind | zerok: aaaah, I'm sorry. this one was not in my python path. |
| 14:46 | zerok | weird, in what branch are you? |
| 14:46 | zerok | ah ^_^ |
| 14:47 | saltmind | really sorry to bother you guys, 1000 apologies. |
| 15:28 | RaceCondition | why isn't newforms-admin code in trunk with the old admin just like newforms coexists in trunk with oldforms? |
| 15:42 | jinzo | because that would mix django with a big pile of crap ? |
| 15:42 | jinzo | too much work probably, it'll get merged soon anyway :) |