IRC log of #zope3-dev for Friday, 2005-12-23

*** benji has quit IRC00:01
*** efge has quit IRC00:06
srichterJ1m: I am chasing one of those empty pages again :-(00:07
GaryPosterI get those with component lookups sometimes00:08
srichterI have a page (addform) for the Site Manager and it will not find it00:08
GaryPosterI mean, a lookup failure somehow makes the page not return.00:08
J1mI think someone must have broken something in zpt.00:08
srichterright, log says I have a 40400:09
J1mThis is a fairly recent problem.00:09
J1mHm, I wonder if it has something to do with the NotFoundError refactoring.00:09
J1mYou should file a critical bug on it.00:09
J1mFe can go for a February release. ;)00:10
J1mWe can go for a February release. ;)00:10
srichterI have not much info though00:10
J1mIt is actually a fairly serious bug.00:11
srichterand hard to debug00:11
J1mIt would be great for someone to pursue it.00:11
srichterI am looking into it, but I am not even getting to a ZPT error yet00:12
srichterif I add my pdb breakpoint in the Adding class, it does nto even get there00:12
srichter(which is really weird)00:13
J1mI'm 67% sure that any error raised by code caled by a template causes the white screen of death.00:14
srichterok, now I at least have a breakpoint00:14
srichterok, I am getting closer00:17
GaryPoster<the suspense is intense>00:18
srichterthe problem is that (in my case at least), queryMultiAdapter fails with a ComponentLookupError00:18
srichter(Pdb) view_name00:19
srichter(Pdb) zapi.queryMultiAdapter((self, self.request), name=view_name)00:19
srichter*** ComponentLookupError: ((<zope.schema._bootstrapfields.Field object at 0xb47f4b6c>, <zope.publisher.browser.BrowserRequest instance URL=http://localhost:8080/++etc++site/@@+/action.html>), <InterfaceClass>, u'')00:19
srichter(Pdb) self00:19
srichter< object at 0xb45c3c0c>00:19
srichter(Pdb) IAdding.providedBy(self)00:19
GaryPostermy most recent was a component lookup error called from within a template, as Jim described (Jim, does that push you up to 68%?)00:19
J1m(Gary is a wild man. 68%. Hah.)00:20
*** zbir has quit IRC00:21
srichterok, in my case it seems okay that queryMultiAdapter spews a ComponentLookupError00:23
srichterso for some reason the ComponentLookupError does not propagate correctly00:23
srichterwhich slowly makes me believe that Jim is right00:24
GaryPosterIt's sometimes hard to believe, I understand00:25
srichterhe he00:25
srichtermmh, we should have a configuration flag in zope.conf for turning off exception handling00:26
srichterI now think Jim is even more right :-)00:33
srichterthe exception that occurs correctly looks up the NotFound view00:33
srichterbut rendering the NotFound view by calling it, produces an empty string00:34
J1mso the exception makes it out to the publisher?00:34
srichterbut now I am not sure whether NotFound produces yet another exception that causes the empty string00:35
J1mwhere is that exception view defined?00:35
srichternote that my exception above is raised before any ZPT code is executed00:35
J1mI'm 73% sure this is due to the wrong view being looked up.00:36
srichterhe he00:36
J1mI think there is a view registered for webdav that does this.00:37
srichter(Pdb) view00:37
srichter< object at 0xb48606cc>00:37
srichter(Pdb) request00:37
srichter<zope.publisher.browser.BrowserRequest instance URL=http://localhost:8080/++etc++site/@@+/action.html>00:37
srichter(Pdb) exception00:37
srichter<zope.component.interfaces.ComponentLookupError instance at 0xb488ffcc>00:37
J1mLook at that view.00:38
J1mIt returns an empty string.00:38
J1mSidnei created this for webdav00:38
J1mIt shouldn't be used for browsers.00:38
J1mIt is overriding the default exception view.00:39
srichterbut it does use it, because HTT is a generic Browser request00:39
J1mhm, no00:39
J1mthat's not right00:39
J1mI thought we had another view.00:39
J1mYes it is.00:40
srichterbut if ComponentLookupError is an zope.exceptions.INotFoundError, it makes sense00:40
J1mWe want the "system" error view tegistered for this exception.00:40
*** d2m has quit IRC00:40
srichterI guess we really just want to remove the BBB00:41
srichterbecause it causes all the trouble00:41
J1mWe need to register the "system error" view for "INotFouneError and IBrowserRequest"00:42
J1mNo, I don't think so.00:42
srichteroh, yes, you are right00:42
J1mI don't think it goes away in 3.3.00:42
J1mI think it changes00:42
J1mIt would be nice to have a functional test for this fix.00:42
srichterI think I can write one now that I know what's wrong00:43
srichterwhere is the system error for browser defined?00:43
J1mI'm glad you decided to change this.00:43
J1m  <page00:44
J1m      for="zope.interface.common.interfaces.IException"00:44
J1m      name="index.html"00:44
J1m      template=""00:44
J1m      class="..systemerror.SystemErrorView"00:44
J1m      permission="zope.Public"00:44
J1m      />00:44
srichterit should not be a NotFound error page?; I guess not00:45
J1mNeed to be registered for INotFounedError too.00:45
J1mNo, the notfound page is for a publisher not found00:45
srichteroh, I see00:45
J1mMeaning someone asked for a page that didn't exist.00:46
J1mAs apposed to the programmer doing something dumb.00:46
srichterok, now I am getting the right thing00:46
srichterI am going to write a test and check it in00:46
J1mI'm still struggling w twisted and large-file output.00:47
WebMavennow that's cleared up, what is BBB?00:47
srichterWebMaven: backward-compatibility flag00:47
WebMavenAh, thx.00:47
srichteror, when I write text the abbreviation of backward-compatibility :-)00:48
jennergood to know, I wondered too what this might mean :)00:49
jenneractually I thought that's a nick name or a username for svn or something :)00:50
*** MiUlEr has joined #zope3-dev00:52
jennerwhat's the z3 way of doing container.objectValues(mytype)? like [i for i in container.values() if IMyType.providedBy(i)]?00:56
J1mjenner, I'm redoing the way that large output is handled. :)00:57
J1mMy plan is that you will be able to simply return a file to the publisher.00:57
jennerJ1m: cool :)00:57
*** J1m has quit IRC00:58
jennerDamn, he left.. I just wanted to ask about thread-safety and sharing open file descriptors...01:00
srichterGaryPoster: ok fixed and tested, just have to run all tests01:03
*** jinty has quit IRC01:05
*** GaryPoster has quit IRC01:24
*** MiUlEr has quit IRC01:51
*** deo has quit IRC01:53
*** philiKON has joined #zope3-dev02:11
*** GaryPoster has joined #zope3-dev02:12
jennerheh "Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion." <- that's a nice way to say "user pressed the stop button" :)02:28
lifelessjenner: erm02:31
lifelessjenner: HTTP/1.0 ?02:31
jennernope, 1.102:32
* jenner managed to freeze the publisher02:33
*** newpers_ has joined #zope3-dev02:36
*** philiKON has quit IRC02:39
lifelesshttp hath no cancel ;)02:40
jenneryay :)02:43
lifelessif that printed on the console, its probably a lost event02:45
lifelesswhich means you need a failure handler for it ;)02:45
*** zbir has joined #zope3-dev03:12
jennerlifeless: and I can't even stop the daemon with ^C03:13
lifeless^\ ?03:15
jennerit doesn't even respond to kill -s SIGINT03:15
*** vinsci has joined #zope3-dev03:21
*** niemeyer has quit IRC03:27
*** yota has quit IRC03:32
*** jenner has quit IRC03:40
*** _anguenot has joined #zope3-dev03:53
*** efge has joined #zope3-dev03:54
*** WebMaven has quit IRC05:01
*** GaryPoster has quit IRC05:14
*** efge has quit IRC05:18
*** GaryPoster has joined #zope3-dev06:04
*** GaryPoster has quit IRC06:05
*** stub has quit IRC06:47
*** stub has joined #zope3-dev06:49
*** stub has quit IRC06:53
*** stub has joined #zope3-dev06:57
*** newpers_ is now known as newpers07:50
*** natea has quit IRC08:02
*** MacYET has joined #zope3-dev08:50
*** eins has joined #zope3-dev09:01
einshi all09:01
einsMacYET morning;)09:13
*** zagy has joined #zope3-dev09:27
*** dobee has joined #zope3-dev09:46
*** yota has joined #zope3-dev09:50
*** Aiste has quit IRC09:54
*** tahara has quit IRC09:55
*** Aiste has joined #zope3-dev10:03
*** jenner has joined #zope3-dev10:20
*** efrerich has joined #zope3-dev10:44
*** d2m has joined #zope3-dev10:58
einshi romanofski10:58
romanofskihi eins10:59
*** VladDrac has joined #zope3-dev11:03
* jenner wonders if subscribing to IBeforeTraverseEvent is the right way to make an object traversable11:06
*** efrerich has quit IRC11:31
*** dobee has quit IRC11:48
*** zagy has left #zope3-dev11:55
jennerguys, if I have a class implementing IPublishTraverse and I see that its publishTraverse method returns a valid subitem, but I get a 404 nevertheless - what might be the problem then? the subitems are of the same class as their parent (the parent however is not an IContainer)12:16
* MacYET hands jenner some xmas-cookies12:32
* jenner turns on the "Accept cookies" option and asks MacYET to hand them over again12:35
MacYETtoo late, they just expired12:36
jennerdamn :)12:37
*** romanofski has quit IRC12:39
*** efge has joined #zope3-dev12:44
*** jinty has joined #zope3-dev12:48
jenneryiihaaa, it works - forgot to fallback to a view if no subobjects are found, so obj/subobj/index.html raised a NotFound :)12:55
*** faassen has joined #zope3-dev13:07
jennerah, here is it again: "Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion."13:08
jenneret rien ne va plus13:08
jennerMacYET: you lost?13:12
*** romanofski has joined #zope3-dev13:13
*** _anguenot has quit IRC13:14
jennerHm, returning a file content iterator is evil in IResult, it looks like the whole process is running out of free file descriptors if it has to serve a whole bunch of objects at once13:15
*** mgedmin has joined #zope3-dev13:15
*** philiKON has joined #zope3-dev13:18
*** Aiste_ has joined #zope3-dev13:21
romanofskiadamSummers: you around?13:22
*** Aiste has quit IRC13:22
*** Aiste_ is now known as Aiste13:24
*** niemeyer has joined #zope3-dev13:28
*** alga has joined #zope3-dev13:32
*** Aiste has quit IRC13:32
*** Aiste has joined #zope3-dev13:33
*** jinty has quit IRC13:40
*** jenner has quit IRC13:44
*** efrerich has joined #zope3-dev13:50
*** niemeyer has quit IRC13:50
*** niemeyer has joined #zope3-dev13:51
adamSummersromanofski - yes :)14:10
*** Aiste has quit IRC14:12
*** Aiste has joined #zope3-dev14:18
*** zbir has quit IRC14:44
*** Aiste_ has joined #zope3-dev14:45
*** Aiste has quit IRC14:46
*** Aiste_ is now known as Aiste14:47
*** _anguenot has joined #zope3-dev14:57
*** ignas has joined #zope3-dev14:57
*** GaryPoster has joined #zope3-dev14:59
*** GaryPoster has quit IRC15:03
*** xenru has quit IRC15:21
*** bradb has joined #zope3-dev15:25
*** mgedmin has quit IRC15:45
*** zbir has joined #zope3-dev15:52
*** xenru has joined #zope3-dev15:55
*** efrerich has quit IRC15:57
*** alga_ has joined #zope3-dev16:08
*** alga has quit IRC16:09
*** GaryPoster has joined #zope3-dev16:25
*** alga_ has quit IRC16:38
*** eins has quit IRC16:53
*** mgedmin has joined #zope3-dev17:00
*** Aiste has quit IRC17:03
*** alga has joined #zope3-dev17:04
*** J1m has joined #zope3-dev17:09
*** ruda_porto has joined #zope3-dev17:21
*** natea has joined #zope3-dev17:28
*** xenru has quit IRC17:44
efgeJ1m: are you available for a ZODB question?17:48
J1mI guess17:48
efgeso in Connection._store, there's a call to _store_objects that may raise a write ConflictError if the storage cannot handle conflict resolution17:49
efgebut if this happens, nothing is invalidated or marked modified about the conflicting object that I can see17:49
J1mI don't have time for a question that requires that I read code. :)17:49
J1mThis is such a question. :)17:49
efgeand I don't understand how the next transaction will be able to get a fresher object17:50
efgeok then :)17:50
efgethx anyway17:50
J1mTry sending mail to the zodb list.17:50
efgeok I'll keep debugging a bit17:51
*** natea has quit IRC18:00
*** natea has joined #zope3-dev18:01
*** _anguenot has quit IRC18:23
*** natea has quit IRC18:50
*** ruda_porto is now known as ruda-out18:52
*** ignas has quit IRC19:08
J1mPlease see the message I just sent to the list.19:14
srichterJ1m: +119:17
J1mCool, thanks19:17
*** efrerich has joined #zope3-dev19:19
MacYETwhat about b2?19:24
srichterI'll cut it as soon as Jim gives me a green light19:24
srichterdo we have to talk to Tim about ZODB?19:25
MacYETyou have three hours :-) then i will be off mostly until after my vacation:-)19:25
srichterok, when is that done?19:25
MacYETJan 5th19:25
zbir"mostly off"? is that like "kinda pregnant"?19:25
J1mMacYET, I'm not sure you need to wait for us.19:26
J1mNothing I'm doing will affect Zope 2.19:26
J1mIf the choice is between:19:26
MacYETisn't 2.9 using tags for the svn:externals?19:26
zbirsrichter: I've made parallel changes to the run_debug command.19:26
zbirin both[server|twisted].controller19:27
J1m- Waiting till January to make beta 2 based on 3.2b2 and19:27
srichterzbir: great19:27
* MacYET checks19:27
J1m- Making 2.9b2 based on the current 3.2 branch now19:27
J1mI am strongly in favor of the second option.19:27
J1mThe external need not use a tag.19:27
* srichter notes (again) that December is a bad month for releasing software19:27
srichterme too19:28
MacYETlib/python/zope refers to tags/Zope-3.2.0b119:28
MacYETso I need a tag19:28
J1mJ1m, notes again that we should be releasing at the beginning of December.19:28
J1mMacYET, no, you don't.19:28
MacYETshall i refer to the 3.2 branch?19:29
J1mChange the external to point to the current revision number and the 3.2 branch.19:29
srichteryeah, probably witha  specific rev #19:29
J1m*and* the current revision. Use -r19:29
J1mThat's how we refer to twisted.19:29
srichterJ1m: re December: as we can see this does not work; it's a psycological issue19:29
J1msrichter, yes, it's a discipline issue.19:30
J1manyway, the next Freeze is gonna be April 1. :)19:30
srichterI think it will not matter19:30
zbirJ1m: If it's still freezing here in April, I'm moving South.19:31
srichterpeople did not get scared enough about failing the release until mid-December19:31
J1msrichter, if we disallow new features on the trunk, they will be well motivated.19:31
J1mBesides, I think you are being too cynical.19:32
J1mPeople are very committed to times releases.19:32
J1manyway, I need to get back to work.19:34
MacYETError in test testParseTimeZone (zope.i18n.tests.test_formats.TestDateTimeFormat)19:50
MacYETTraceback (most recent call last):19:50
MacYET  File "/opt/python-2.4.2/lib/python2.4/", line 260, in run19:50
MacYET    testMethod()19:50
MacYET  File "/develop/sandboxes/Zope-2.9/b2/lib/python/zope/i18n/tests/", line 295, in testParseTimeZone19:50
MacYET    dt = self.format.parse('09:48 -600', 'HH:mm z')19:50
MacYET  File "/develop/sandboxes/Zope-2.9/b2/lib/python/zope/i18n/", line 140, in parse19:50
MacYET    tzinfo = pytz.FixedOffset(hours * 60 + mins)19:50
MacYETAttributeError: 'module' object has no attribute 'FixedOffset'19:50
MacYETError in test testParseTimeZone (zope.i18n.tests.test_formats.TestDateTimeFormat)19:50
MacYETTraceback (most recent call last):19:50
MacYET  File "/opt/python-2.4.2/lib/python2.4/", line 260, in run19:50
MacYET    testMethod()19:51
MacYET  File "/develop/sandboxes/Zope-2.9/b2/lib/python/zope/i18n/tests/", line 295, in testParseTimeZone19:51
MacYET    dt = self.format.parse('09:48 -600', 'HH:mm z')19:51
MacYET  File "/develop/sandboxes/Zope-2.9/b2/lib/python/zope/i18n/", line 140, in parse19:51
MacYET    tzinfo = pytz.FixedOffset(hours * 60 + mins)19:51
MacYETAttributeError: 'module' object has no attribute 'FixedOffset'19:51
MacYETany bells ringing?19:51
srichteryeah, pytz must be updated19:52
srichterGary recently changed some pytz code in that respect19:52
srichterGaryPoster: ping19:52
*** BjornT has quit IRC19:53
* MacYET sighs19:53
srichterbut I am surprised it fails19:53
srichterbecause it should just be part of the branch19:53
* MacYET floodpings GaryPoster 19:56
srichterI pinged him on AIM too, but he seems to be gone with the wind :-)19:57
MacYETdamn :-)19:57
srichterMacYET: where are you getting your pytz version from?19:57
srichterwhat is the external?19:57
MacYETno idea :-)19:57
srichterwell, once you know, you have the answer :-)19:58
MacYETargh..there are much more svn:extnerals19:58
srichterright, you need switch all externals19:58
MacYEThow can i figre out which packages under lib/python are included through svn:externals?19:59
srichtersvn stat20:00
srichterall packages that are externals will have an X20:00
GaryPostersrichter macYET: pong20:02
MacYETsvn stat pytz tells me nothing about externals20:03
srichterjust do svn stat lib/python20:03
GaryPostermacYET: that's very weird.  You have another pytz in your Python path, maybe?20:03
srichterand if pytz is listed with an X before it, it is an external20:03
*** tarek has quit IRC20:03
GaryPosterpytz is not an extrenal20:03
zbirhurray, MacYET and I break the buildbots :)20:03
srichterGaryPoster: he is making a Zope 2 release20:04
srichterGaryPoster: it is probably an external there20:04
*** tarek has joined #zope3-dev20:04
MacYETajung@sentinel:~/sandboxes/Zope-2.9/b2/lib/python: svn info pytz20:04
MacYETPath: pytz20:04
MacYETURL: svn://
MacYETwhere is this reference to b1 defined ?20:05
GaryPosterok, point to the 3.2 branch and you should be fine20:05
MacYETsvn propedit svn:externals pytz give menothing20:05
GaryPosterI dunno about externals20:05
srichtersvn propedit svn:externals lib/python20:06
srichteralways use the parent20:06
* MacYET *SIGH*20:06
* J1m feels bad for MacYET and hopes someone helps him.20:09
srichterI was hoping he makes progress :-)20:10
* MacYET is trying :)20:10
* MacYET enters panic runlevel20:10
J1mThat's a bad runlevel for making releases.20:10
J1mMaybe it would be better to wait until January.20:11
J1mYou can blame it on us.20:11
J1m(Of course, by "us", I mean Gary. ;)20:11
GaryPosterblah blah! :-)20:12
zbiris it friday yet?20:12
MacYETdon't release software the day before x-mas20:12
srichterthe new law!20:13
J1mOK, don't release it tomorrow20:13
MacYETi am working on it...let me try20:13
*** tarek_ has joined #zope3-dev20:18
*** jenner has joined #zope3-dev20:22
*** tarek has quit IRC20:22
*** MiUlEr has joined #zope3-dev20:24
MacYETall tests passed20:25
jennerJ1m: I just read your mail about IResult and large result support... is there anything so far which I can stress-test? :) I noticed that with my current setup where I return DirectResult(fileIterator, ..) I get problems when loading pages where a lot of data has to be return as fileIterators... like some album with 50 photos on one page20:25
jennerJ1m: at some point twisted raises a connection error and zope freezes completely (doesn't even respond to `kill -s SIGINT`)20:26
J1mYeah, you can definately stress test what I check in.20:27
J1mThat would be greatly appreciated.20:27
J1mThink of it as your Christmas present to me. :)20:27
jennerI suspect it may run out of free file descriptors... I'm not sure but wouldn't each thread create a new file object?20:27
jennerJ1m: :))20:28
MacYETZope 2.9.0b2 released20:28
jennerMacYET: ho ho ho :)20:28
J1mjenner, what platform?20:29
*** mgedmin has quit IRC20:29
jennerJ1m: debian/sid, P4 3GHz, 1.5 GB RAM20:30
J1mjenner, I think that my change is more likely to make you run out of file descriptors.20:30
jennerbummer :(20:30
jennerI mean... I could raise the ulimit :)20:30
J1mAs it is now, the number of active requests, and thus consumers of file descriptors is limited by the number of threads.20:30
J1mWith my change, the files will be output by twisted's main thread.20:32
J1mThey won't be throttled by the thread limit.20:32
jennerHm, right20:33
J1mNote that for smallter files, it would be better to return the contents as a string.20:33
jennerJ1m: yes, already doing so (if the size is smaller then my chunk length)20:34
J1mI kinda doubt that you are tunning out of descriptors.20:35
jennerIt would be nice if WSGI would have a specification for like apache (and therefor mod_pythons) send_file()20:35
jennerJ1m: any other ideas then?20:35
jennerLet me reproduce it quick, I'll paste the error I get20:35
* MacYET disappears for x-mas vacation20:36
*** faassen has quit IRC20:36
GaryPosterthanks macYET20:36
GaryPosterhappy vacation20:36
MacYETtnx :-)20:36
*** MacYET has left #zope3-dev20:36
jennerHm, heisenbug20:38
*** tarek_ has quit IRC20:41
*** tarek_ has joined #zope3-dev20:41
jennerJ1m: I can't reproduce it :)20:43
* jenner turns red20:43
jenneractually, it's freaking fast20:44
* jenner keeps pushing the reload button hoping to kill the publisher somehow :)20:46
jennerThere! "Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion."20:46
J1mAnd this makes zope hang?20:47
J1mFeels like a twisted bug :(20:47
jennerIt *made* it hang, not any more20:47
*** bradb has left #zope3-dev20:47
J1mI'n not sure what that means.20:47
J1mTwisted is just complaining that the client broke the connection.20:48
jennerJ1m: easy to reproduce actually, load a lot of data and hit the stop button20:48
J1mBut the server keeps handling requests, right?20:48
jennerJ1m: yes, it does.20:49
jennerthough I saw the same error this morning with exactly the same data and after some time the server just stopped working20:50
jennerwhatever, maybe I had some other hungry processes running... can't reproduce it anymore20:50
jennerJ1m: sorry for the noise :)20:53
J1mYou can make it up to me by testing the new machinery.20:53
jenner"Ready when you are, Sergeant Pembry." :)20:55
*** alga has quit IRC21:02
*** efge has quit IRC21:03
*** tonico has quit IRC21:03
*** stub has quit IRC21:15
*** tarek_ has quit IRC21:19
*** efge has joined #zope3-dev21:23
*** Theuni has joined #zope3-dev21:26
*** Aiste has joined #zope3-dev21:27
jennerHm, can anyone point me to an example of how to use pdb with z3? The server has frozen again...21:38
J1mjenner, can I get you to test against the 3.2 branch?21:38
jennerJ1m: sure21:38
J1mYou should be able to use svn switch to switch to that pretty easily.21:38
J1mI hope to be checking in rsn.21:38
jennerI'm using a sandbox, so it's a matter of minutes to have a fresh branch checkout21:39
jennerok, I'm on 3.221:47
dman13jenner: to use pdb ... 'import pdb ; pdb.set_trace()'21:47
dman13jenner: then when python executes that statement you'll get a shell on stdin21:48
dman13jenner: is that enough info for you?21:48
jennerdman13: yes :) thnx21:48
J1mOK jenner, the change is in.21:51
*** Egon has joined #zope3-dev21:51
J1msrichter, ayt?21:51
J1mDo you remember why we did the HTTPInputStream business?21:52
J1mwith cache stream and such?21:52
srichterI think originally we allowed seeking in the stream21:53
srichterI know we got rid the seeking business (I did that)21:53
* J1m looks at 3.1.21:53
jennerJ1m: (svn'ed up) how do I use it? Should I now return a file object instead of an IResult?21:55
J1mSee zope/publisher/httpresults.txt21:56
J1mah, so we orginally promised a file.21:58
J1mand it is very expensive to keep that promise with wsgi.21:58
srichterbut that's for input, right?21:59
J1msrichter, so, who used this?21:59
J1msomebidy must have depended on this.21:59
J1msomebody must have depended on this.21:59
srichterif it there just to provide a file, then it was to support seek22:00
J1mWe are essentially promising a file now.22:00
srichterWSGI was around before I fixed the seek() issue22:00
J1mBut we are providing something that supports seek now.22:00
J1mYeah, but we weren't using wsgi22:00
srichterright, I think we might not need this anymore22:00
srichteroh, right22:00
J1mI suspect that someone wants it. :)22:01
srichternix it and wait for someone to cry :-)22:01
srichterwe should definitely not support a full file22:01
srichterit breaks many assumptions now made with twsited22:01
J1mI'm sorely tempted.22:01
J1mwell, it's sad really.22:01
srichterjust do it; I'll back you up! :-)22:01
J1mWe need to buffer input so we arrange to create a file upstream.22:02
J1mBut twisted hides the file from us, so we don't actualy see a file.22:02
J1mI believe that input should always be prebuffered, so it should alsways be possible to have a seekable thing.22:03
srichteryou mean file input?22:03
srichterbut not the entire input stream?22:03
J1meither a file or a stringio.22:03
J1mRight now, if someone does a big file upload, we make 3 copies:22:04
srichter*shrug*, sniff22:04
J1m1. we make a copy in twisted or zserver when we prebuffer22:05
J1m2. We make a copy in HTTPInputStream22:05
J1m3. the cgi module makes a copy.22:05
srichteroh, that is crazy22:05
jennerJ1m: looks good so far, I'll run some ab2 tests with a list of files now22:05
J1mjenner, awesome. Much thanks.22:06
* dman13 wants to manage music files with z322:06
dman13(well, I won't be making the application any time soon)22:06
dman13(ps. but not because I just learned about those triplicate copies)22:06
GaryPosterdman13: lol22:06
J1mdman13, you really don't want to look at :)22:07
jennerdman13: actually I already thought about a z3 "media center", which would manage music/photos and support searching, tagging and commenting content :)22:07
*** MiUlEr has quit IRC22:07
dman13jenner: that's what I want,  and it needs to be able to conveniently give various playlists for the player22:08
dman13if I did make such a thing, I'd use the filesystem (with application-assigned names) to store the actual media and only have the metadata in a db22:08
dman13after all, the filesystem is a database designed and optimized for blobs :-)22:08
*** efrerich has quit IRC22:09
jennerdman13: that's my goal, at least for a photo album app... I already have FS storage and image scaling (resized data is stored on FS too), now I'm about  to add some basic image modification and tags22:12
dman13jenner: cool22:14
J1mNow I remember why we need this.22:15
J1mWe need to be able to retry a request.22:15
srichteroh, bingo22:16
J1mSo we need t buffer the inut.22:16
J1m(Failing tests sometimes are a memory aid.)22:16
srichterdarn, can we not reuse one of the other buffers22:16
J1mfor now, we'll have to be inefficient.22:16
SteveAyou don't need to be able to retry a request.  you could fail a conflicting request without retrying.22:18
J1mI'm gonna at least avoid creating temporary files i=unless the content length is large, because jenner made me worry about wasting file descriptors.22:18
J1mSteveA, I don't want to fail requests.22:19
J1mUsers take a dim view of that.22:19
jennerdman13: add an "FS Photo Folder" and insert a path to a folder on your FS with lots of jpegs, load its index.html from ZMI and watch J1ms latest patch eating your memory and CPU cycles (j/k)22:19
* jenner hides22:19
J1mjenner, are you saying that this uses a lot of memory?22:20
J1mThis should use less memory than before.22:20
jennerJ1m: No, I was kidding22:20
jennerj/k = just kidding22:20
* jenner will behave himself now22:21
jennerdman13: err... in case you just downloaded the tar.gz - do it again, there's an error I didn't see, 'cos I had *.pycs all over the place (.py deleted but -.pyc was still there)22:26
*** Theuni has quit IRC22:45
dman13jenner: thanks;  I'll check it out later (I'm at work right now and need to work instead of play :-))22:51
J1msrichter, I plan to make my last checkin before the beta soon. :)23:00
J1mHow do you want to handle the beta?23:00
J1msrichter, ayt?23:08

Generated by 2.15.1 by Marius Gedminas - find it at!