*** benji has quit IRC | 00:01 | |
*** efge has quit IRC | 00:06 | |
srichter | J1m: I am chasing one of those empty pages again :-( | 00:07 |
---|---|---|
J1m | Huh? | 00:07 |
GaryPoster | I get those with component lookups sometimes | 00:08 |
J1m | ah | 00:08 |
srichter | I have a page (addform) for the Site Manager and it will not find it | 00:08 |
GaryPoster | I mean, a lookup failure somehow makes the page not return. | 00:08 |
J1m | I think someone must have broken something in zpt. | 00:08 |
srichter | right, log says I have a 404 | 00:09 |
J1m | This is a fairly recent problem. | 00:09 |
srichter | yes | 00:09 |
J1m | Hm, I wonder if it has something to do with the NotFoundError refactoring. | 00:09 |
srichter | probably | 00:09 |
J1m | You should file a critical bug on it. | 00:09 |
J1m | Fe can go for a February release. ;) | 00:10 |
J1m | We can go for a February release. ;) | 00:10 |
srichter | I have not much info though | 00:10 |
J1m | It is actually a fairly serious bug. | 00:11 |
srichter | yep | 00:11 |
srichter | and hard to debug | 00:11 |
J1m | It would be great for someone to pursue it. | 00:11 |
srichter | I am looking into it, but I am not even getting to a ZPT error yet | 00:12 |
srichter | if I add my pdb breakpoint in the Adding class, it does nto even get there | 00:12 |
srichter | (which is really weird) | 00:13 |
J1m | I'm 67% sure that any error raised by code caled by a template causes the white screen of death. | 00:14 |
srichter | ok, now I at least have a breakpoint | 00:14 |
srichter | ok, I am getting closer | 00:17 |
GaryPoster | <the suspense is intense> | 00:18 |
srichter | the problem is that (in my case at least), queryMultiAdapter fails with a ComponentLookupError | 00:18 |
srichter | (Pdb) view_name | 00:19 |
srichter | u'AddWebDevPackage.html' | 00: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 zope.app.form.interfaces.IInputWidget>, u'') | 00:19 |
srichter | (Pdb) self | 00:19 |
srichter | <zope.app.publisher.browser.viewmeta.+ object at 0xb45c3c0c> | 00:19 |
srichter | (Pdb) IAdding.providedBy(self) | 00:19 |
srichter | True | 00:19 |
GaryPoster | my 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 | No | 00:20 |
J1m | (Gary is a wild man. 68%. Hah.) | 00:20 |
GaryPoster | lol | 00:20 |
srichter | LOL | 00:20 |
*** zbir has quit IRC | 00:21 | |
srichter | ok, in my case it seems okay that queryMultiAdapter spews a ComponentLookupError | 00:23 |
srichter | so for some reason the ComponentLookupError does not propagate correctly | 00:23 |
srichter | which slowly makes me believe that Jim is right | 00:24 |
GaryPoster | It's sometimes hard to believe, I understand | 00:25 |
srichter | he he | 00:25 |
srichter | mmh, we should have a configuration flag in zope.conf for turning off exception handling | 00:26 |
srichter | I now think Jim is even more right :-) | 00:33 |
srichter | the exception that occurs correctly looks up the NotFound view | 00:33 |
srichter | but rendering the NotFound view by calling it, produces an empty string | 00:34 |
J1m | so the exception makes it out to the publisher? | 00:34 |
srichter | yes | 00:34 |
srichter | but now I am not sure whether NotFound produces yet another exception that causes the empty string | 00:35 |
J1m | where is that exception view defined? | 00:35 |
J1m | Ooooooooooooh | 00:35 |
srichter | note that my exception above is raised before any ZPT code is executed | 00:35 |
J1m | Eureka! | 00:35 |
srichter | huh? | 00:36 |
J1m | I'm 73% sure this is due to the wrong view being looked up. | 00:36 |
srichter | he he | 00:36 |
J1m | I think there is a view registered for webdav that does this. | 00:37 |
srichter | (Pdb) view | 00:37 |
srichter | <zope.app.http.exception.notfound.NotFound object at 0xb48606cc> | 00:37 |
srichter | (Pdb) request | 00:37 |
srichter | <zope.publisher.browser.BrowserRequest instance URL=http://localhost:8080/++etc++site/@@+/action.html> | 00:37 |
srichter | (Pdb) exception | 00:37 |
srichter | <zope.component.interfaces.ComponentLookupError instance at 0xb488ffcc> | 00:37 |
J1m | Look at that view. | 00:38 |
J1m | It returns an empty string. | 00:38 |
J1m | Sidnei created this for webdav | 00:38 |
srichter | ahhhh! | 00:38 |
J1m | It shouldn't be used for browsers. | 00:38 |
srichter | right | 00:39 |
J1m | It is overriding the default exception view. | 00:39 |
srichter | but it does use it, because HTT is a generic Browser request | 00:39 |
J1m | hm, no | 00:39 |
J1m | that's not right | 00:39 |
J1m | I thought we had another view. | 00:39 |
J1m | Yes it is. | 00:40 |
srichter | but if ComponentLookupError is an zope.exceptions.INotFoundError, it makes sense | 00:40 |
J1m | We want the "system" error view tegistered for this exception. | 00:40 |
*** d2m has quit IRC | 00:40 | |
srichter | I guess we really just want to remove the BBB | 00:41 |
srichter | because it causes all the trouble | 00:41 |
J1m | We need to register the "system error" view for "INotFouneError and IBrowserRequest" | 00:42 |
J1m | No, I don't think so. | 00:42 |
srichter | oh, yes, you are right | 00:42 |
J1m | I don't think it goes away in 3.3. | 00:42 |
J1m | I think it changes | 00:42 |
J1m | It would be nice to have a functional test for this fix. | 00:42 |
J1m | :) | 00:43 |
srichter | I think I can write one now that I know what's wrong | 00:43 |
srichter | where is the system error for browser defined? | 00:43 |
J1m | I'm glad you decided to change this. | 00:43 |
J1m | zope/app/exception/browser | 00:44 |
J1m | <page | 00:44 |
J1m | for="zope.interface.common.interfaces.IException" | 00:44 |
J1m | name="index.html" | 00:44 |
J1m | template="systemerror.pt" | 00:44 |
J1m | class="..systemerror.SystemErrorView" | 00:44 |
J1m | permission="zope.Public" | 00:44 |
J1m | /> | 00:44 |
srichter | it should not be a NotFound error page?; I guess not | 00:45 |
J1m | Need to be registered for INotFounedError too. | 00:45 |
J1m | No, the notfound page is for a publisher not found | 00:45 |
srichter | oh, I see | 00:45 |
J1m | Meaning someone asked for a page that didn't exist. | 00:46 |
J1m | As apposed to the programmer doing something dumb. | 00:46 |
J1m | opposed | 00:46 |
srichter | ok, now I am getting the right thing | 00:46 |
J1m | whatever | 00:46 |
srichter | I am going to write a test and check it in | 00:46 |
J1m | cool | 00:46 |
J1m | I'm still struggling w twisted and large-file output. | 00:47 |
srichter | :-( | 00:47 |
WebMaven | now that's cleared up, what is BBB? | 00:47 |
srichter | WebMaven: backward-compatibility flag | 00:47 |
WebMaven | Ah, thx. | 00:47 |
srichter | or, when I write text the abbreviation of backward-compatibility :-) | 00:48 |
jenner | good to know, I wondered too what this might mean :) | 00:49 |
jenner | actually I thought that's a nick name or a username for svn or something :) | 00:50 |
*** MiUlEr has joined #zope3-dev | 00:52 | |
jenner | what's the z3 way of doing container.objectValues(mytype)? s.th. like [i for i in container.values() if IMyType.providedBy(i)]? | 00:56 |
J1m | yup | 00:56 |
jenner | thnx | 00:57 |
J1m | jenner, I'm redoing the way that large output is handled. :) | 00:57 |
J1m | My plan is that you will be able to simply return a file to the publisher. | 00:57 |
jenner | J1m: cool :) | 00:57 |
*** J1m has quit IRC | 00:58 | |
jenner | Damn, he left.. I just wanted to ask about thread-safety and sharing open file descriptors... | 01:00 |
srichter | GaryPoster: ok fixed and tested, just have to run all tests | 01:03 |
GaryPoster | awesome | 01:03 |
*** jinty has quit IRC | 01:05 | |
GaryPoster | later | 01:06 |
WebMaven | l8r | 01:07 |
*** GaryPoster has quit IRC | 01:24 | |
*** MiUlEr has quit IRC | 01:51 | |
*** deo has quit IRC | 01:53 | |
*** philiKON has joined #zope3-dev | 02:11 | |
*** GaryPoster has joined #zope3-dev | 02:12 | |
jenner | heh "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 |
lifeless | jenner: erm | 02:31 |
lifeless | jenner: HTTP/1.0 ? | 02:31 |
jenner | nope, 1.1 | 02:32 |
* jenner managed to freeze the publisher | 02:33 | |
*** newpers_ has joined #zope3-dev | 02:36 | |
*** philiKON has quit IRC | 02:39 | |
lifeless | sweet | 02:40 |
lifeless | http hath no cancel ;) | 02:40 |
jenner | yay :) | 02:43 |
lifeless | if that printed on the console, its probably a lost event | 02:45 |
lifeless | which means you need a failure handler for it ;) | 02:45 |
*** zbir has joined #zope3-dev | 03:12 | |
jenner | lifeless: and I can't even stop the daemon with ^C | 03:13 |
lifeless | ^\ ? | 03:15 |
jenner | it doesn't even respond to kill -s SIGINT | 03:15 |
*** vinsci has joined #zope3-dev | 03:21 | |
*** niemeyer has quit IRC | 03:27 | |
*** yota has quit IRC | 03:32 | |
*** jenner has quit IRC | 03:40 | |
*** _anguenot has joined #zope3-dev | 03:53 | |
*** efge has joined #zope3-dev | 03:54 | |
*** WebMaven has quit IRC | 05:01 | |
*** GaryPoster has quit IRC | 05:14 | |
*** efge has quit IRC | 05:18 | |
*** GaryPoster has joined #zope3-dev | 06:04 | |
*** GaryPoster has quit IRC | 06:05 | |
*** stub has quit IRC | 06:47 | |
*** stub has joined #zope3-dev | 06:49 | |
*** stub has quit IRC | 06:53 | |
*** stub has joined #zope3-dev | 06:57 | |
*** newpers_ is now known as newpers | 07:50 | |
*** natea has quit IRC | 08:02 | |
*** MacYET has joined #zope3-dev | 08:50 | |
*** eins has joined #zope3-dev | 09:01 | |
eins | hi all | 09:01 |
MacYET | zwei | 09:09 |
eins | MacYET morning;) | 09:13 |
*** zagy has joined #zope3-dev | 09:27 | |
*** dobee has joined #zope3-dev | 09:46 | |
*** yota has joined #zope3-dev | 09:50 | |
*** Aiste has quit IRC | 09:54 | |
*** tahara has quit IRC | 09:55 | |
*** Aiste has joined #zope3-dev | 10:03 | |
*** jenner has joined #zope3-dev | 10:20 | |
romanofski | moin | 10:34 |
*** efrerich has joined #zope3-dev | 10:44 | |
*** d2m has joined #zope3-dev | 10:58 | |
eins | hi romanofski | 10:58 |
romanofski | hi eins | 10:59 |
*** VladDrac has joined #zope3-dev | 11:03 | |
* jenner wonders if subscribing to IBeforeTraverseEvent is the right way to make an object traversable | 11:06 | |
eins | :) | 11:08 |
*** efrerich has quit IRC | 11:31 | |
*** dobee has quit IRC | 11:48 | |
*** zagy has left #zope3-dev | 11:55 | |
jenner | guys, 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-cookies | 12:32 | |
* jenner turns on the "Accept cookies" option and asks MacYET to hand them over again | 12:35 | |
MacYET | too late, they just expired | 12:36 |
jenner | damn :) | 12:37 |
*** romanofski has quit IRC | 12:39 | |
*** efge has joined #zope3-dev | 12:44 | |
*** jinty has joined #zope3-dev | 12:48 | |
jenner | yiihaaa, 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-dev | 13:07 | |
jenner | ah, here is it again: "Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion." | 13:08 |
jenner | et rien ne va plus | 13:08 |
MacYET | self.__you_lose() | 13:12 |
jenner | MacYET: you lost? | 13:12 |
*** romanofski has joined #zope3-dev | 13:13 | |
*** _anguenot has quit IRC | 13:14 | |
jenner | Hm, 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 once | 13:15 |
*** mgedmin has joined #zope3-dev | 13:15 | |
*** philiKON has joined #zope3-dev | 13:18 | |
*** Aiste_ has joined #zope3-dev | 13:21 | |
romanofski | adamSummers: you around? | 13:22 |
*** Aiste has quit IRC | 13:22 | |
*** Aiste_ is now known as Aiste | 13:24 | |
*** niemeyer has joined #zope3-dev | 13:28 | |
*** alga has joined #zope3-dev | 13:32 | |
*** Aiste has quit IRC | 13:32 | |
*** Aiste has joined #zope3-dev | 13:33 | |
*** jinty has quit IRC | 13:40 | |
*** jenner has quit IRC | 13:44 | |
*** efrerich has joined #zope3-dev | 13:50 | |
*** niemeyer has quit IRC | 13:50 | |
*** niemeyer has joined #zope3-dev | 13:51 | |
adamSummers | romanofski - yes :) | 14:10 |
*** Aiste has quit IRC | 14:12 | |
*** Aiste has joined #zope3-dev | 14:18 | |
*** zbir has quit IRC | 14:44 | |
*** Aiste_ has joined #zope3-dev | 14:45 | |
*** Aiste has quit IRC | 14:46 | |
*** Aiste_ is now known as Aiste | 14:47 | |
*** _anguenot has joined #zope3-dev | 14:57 | |
*** ignas has joined #zope3-dev | 14:57 | |
*** GaryPoster has joined #zope3-dev | 14:59 | |
*** GaryPoster has quit IRC | 15:03 | |
*** xenru has quit IRC | 15:21 | |
*** bradb has joined #zope3-dev | 15:25 | |
*** mgedmin has quit IRC | 15:45 | |
*** zbir has joined #zope3-dev | 15:52 | |
*** xenru has joined #zope3-dev | 15:55 | |
*** efrerich has quit IRC | 15:57 | |
*** alga_ has joined #zope3-dev | 16:08 | |
*** alga has quit IRC | 16:09 | |
*** GaryPoster has joined #zope3-dev | 16:25 | |
*** alga_ has quit IRC | 16:38 | |
*** eins has quit IRC | 16:53 | |
*** mgedmin has joined #zope3-dev | 17:00 | |
*** Aiste has quit IRC | 17:03 | |
*** alga has joined #zope3-dev | 17:04 | |
*** J1m has joined #zope3-dev | 17:09 | |
*** ruda_porto has joined #zope3-dev | 17:21 | |
*** natea has joined #zope3-dev | 17:28 | |
*** xenru has quit IRC | 17:44 | |
efge | J1m: are you available for a ZODB question? | 17:48 |
J1m | I guess | 17:48 |
efge | ok:) | 17:48 |
efge | so in Connection._store, there's a call to _store_objects that may raise a write ConflictError if the storage cannot handle conflict resolution | 17:49 |
efge | but if this happens, nothing is invalidated or marked modified about the conflicting object that I can see | 17:49 |
J1m | I don't have time for a question that requires that I read code. :) | 17:49 |
J1m | This is such a question. :) | 17:49 |
efge | and I don't understand how the next transaction will be able to get a fresher object | 17:50 |
efge | ok then :) | 17:50 |
efge | thx anyway | 17:50 |
J1m | Try sending mail to the zodb list. | 17:50 |
efge | ok I'll keep debugging a bit | 17:51 |
*** natea has quit IRC | 18:00 | |
*** natea has joined #zope3-dev | 18:01 | |
*** _anguenot has quit IRC | 18:23 | |
*** natea has quit IRC | 18:50 | |
*** ruda_porto is now known as ruda-out | 18:52 | |
*** ignas has quit IRC | 19:08 | |
J1m | Please see the message I just sent to the list. | 19:14 |
srichter | J1m: +1 | 19:17 |
J1m | Cool, thanks | 19:17 |
*** efrerich has joined #zope3-dev | 19:19 | |
MacYET | what about b2? | 19:24 |
srichter | I'll cut it as soon as Jim gives me a green light | 19:24 |
srichter | do we have to talk to Tim about ZODB? | 19:25 |
MacYET | you have three hours :-) then i will be off mostly until after my vacation:-) | 19:25 |
srichter | ok, when is that done? | 19:25 |
MacYET | Jan 5th | 19:25 |
zbir | "mostly off"? is that like "kinda pregnant"? | 19:25 |
MacYET | hehe | 19:25 |
srichter | LOL | 19:25 |
J1m | MacYET, I'm not sure you need to wait for us. | 19:26 |
J1m | Nothing I'm doing will affect Zope 2. | 19:26 |
J1m | If the choice is between: | 19:26 |
MacYET | isn't 2.9 using tags for the svn:externals? | 19:26 |
zbir | srichter: I've made parallel changes to the run_debug command. | 19:26 |
zbir | in both zope.app.[server|twisted].controller | 19:27 |
J1m | - Waiting till January to make beta 2 based on 3.2b2 and | 19:27 |
srichter | zbir: great | 19:27 |
* MacYET checks | 19:27 | |
J1m | - Making 2.9b2 based on the current 3.2 branch now | 19:27 |
J1m | I am strongly in favor of the second option. | 19:27 |
J1m | The external need not use a tag. | 19:27 |
* srichter notes (again) that December is a bad month for releasing software | 19:27 | |
srichter | me too | 19:28 |
MacYET | lib/python/zope refers to tags/Zope-3.2.0b1 | 19:28 |
MacYET | so I need a tag | 19:28 |
J1m | J1m, notes again that we should be releasing at the beginning of December. | 19:28 |
J1m | MacYET, no, you don't. | 19:28 |
MacYET | shall i refer to the 3.2 branch? | 19:29 |
J1m | Change the external to point to the current revision number and the 3.2 branch. | 19:29 |
J1m | yes | 19:29 |
srichter | yeah, probably witha specific rev # | 19:29 |
J1m | *and* the current revision. Use -r | 19:29 |
J1m | That's how we refer to twisted. | 19:29 |
MacYET | sure | 19:29 |
srichter | J1m: re December: as we can see this does not work; it's a psycological issue | 19:29 |
J1m | srichter, yes, it's a discipline issue. | 19:30 |
J1m | anyway, the next Freeze is gonna be April 1. :) | 19:30 |
srichter | LOL | 19:30 |
srichter | I think it will not matter | 19:30 |
zbir | J1m: If it's still freezing here in April, I'm moving South. | 19:31 |
zbir | ;) | 19:31 |
srichter | people did not get scared enough about failing the release until mid-December | 19:31 |
J1m | srichter, if we disallow new features on the trunk, they will be well motivated. | 19:31 |
J1m | Besides, I think you are being too cynical. | 19:32 |
J1m | People are very committed to times releases. | 19:32 |
J1m | timed | 19:33 |
J1m | anyway, I need to get back to work. | 19:34 |
srichter | :-) | 19:34 |
MacYET | Error in test testParseTimeZone (zope.i18n.tests.test_formats.TestDateTimeFormat) | 19:50 |
MacYET | Traceback (most recent call last): | 19:50 |
MacYET | File "/opt/python-2.4.2/lib/python2.4/unittest.py", line 260, in run | 19:50 |
MacYET | testMethod() | 19:50 |
MacYET | File "/develop/sandboxes/Zope-2.9/b2/lib/python/zope/i18n/tests/test_formats.py", line 295, in testParseTimeZone | 19: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/format.py", line 140, in parse | 19:50 |
MacYET | tzinfo = pytz.FixedOffset(hours * 60 + mins) | 19:50 |
MacYET | AttributeError: 'module' object has no attribute 'FixedOffset' | 19:50 |
MacYET | Error in test testParseTimeZone (zope.i18n.tests.test_formats.TestDateTimeFormat) | 19:50 |
MacYET | Traceback (most recent call last): | 19:50 |
MacYET | File "/opt/python-2.4.2/lib/python2.4/unittest.py", line 260, in run | 19:50 |
MacYET | testMethod() | 19:51 |
MacYET | File "/develop/sandboxes/Zope-2.9/b2/lib/python/zope/i18n/tests/test_formats.py", line 295, in testParseTimeZone | 19: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/format.py", line 140, in parse | 19:51 |
MacYET | tzinfo = pytz.FixedOffset(hours * 60 + mins) | 19:51 |
MacYET | AttributeError: 'module' object has no attribute 'FixedOffset' | 19:51 |
MacYET | any bells ringing? | 19:51 |
srichter | yeah, pytz must be updated | 19:52 |
srichter | Gary recently changed some pytz code in that respect | 19:52 |
srichter | GaryPoster: ping | 19:52 |
*** BjornT has quit IRC | 19:53 | |
* MacYET sighs | 19:53 | |
srichter | but I am surprised it fails | 19:53 |
srichter | because it should just be part of the branch | 19:53 |
* MacYET floodpings GaryPoster | 19:56 | |
srichter | I pinged him on AIM too, but he seems to be gone with the wind :-) | 19:57 |
MacYET | damn :-) | 19:57 |
srichter | MacYET: where are you getting your pytz version from? | 19:57 |
srichter | what is the external? | 19:57 |
MacYET | no idea :-) | 19:57 |
srichter | well, once you know, you have the answer :-) | 19:58 |
MacYET | argh..there are much more svn:extnerals | 19:58 |
srichter | right, you need switch all externals | 19:58 |
MacYET | how can i figre out which packages under lib/python are included through svn:externals? | 19:59 |
srichter | svn stat | 20:00 |
srichter | all packages that are externals will have an X | 20:00 |
GaryPoster | srichter macYET: pong | 20:02 |
MacYET | svn stat pytz tells me nothing about externals | 20:03 |
srichter | just do svn stat lib/python | 20:03 |
GaryPoster | macYET: that's very weird. You have another pytz in your Python path, maybe? | 20:03 |
srichter | and if pytz is listed with an X before it, it is an external | 20:03 |
*** tarek has quit IRC | 20:03 | |
GaryPoster | pytz is not an extrenal | 20:03 |
MacYET | nope | 20:03 |
zbir | hurray, MacYET and I break the buildbots :) | 20:03 |
GaryPoster | external | 20:03 |
srichter | GaryPoster: he is making a Zope 2 release | 20:04 |
srichter | GaryPoster: it is probably an external there | 20:04 |
GaryPoster | ah | 20:04 |
*** tarek has joined #zope3-dev | 20:04 | |
MacYET | ajung@sentinel:~/sandboxes/Zope-2.9/b2/lib/python: svn info pytz | 20:04 |
MacYET | Path: pytz | 20:04 |
MacYET | URL: svn://svn.zope.org/repos/main/Zope3/tags/Zope-3.2.0b1/src/pytz | 20:04 |
MacYET | where is this reference to b1 defined ? | 20:05 |
GaryPoster | ok, point to the 3.2 branch and you should be fine | 20:05 |
MacYET | svn propedit svn:externals pytz give menothing | 20:05 |
GaryPoster | I dunno about externals | 20:05 |
srichter | svn propedit svn:externals lib/python | 20:06 |
srichter | :-) | 20:06 |
srichter | always use the parent | 20:06 |
* MacYET *SIGH* | 20:06 | |
* J1m feels bad for MacYET and hopes someone helps him. | 20:09 | |
srichter | I was hoping he makes progress :-) | 20:10 |
* MacYET is trying :) | 20:10 | |
* MacYET enters panic runlevel | 20:10 | |
J1m | That's a bad runlevel for making releases. | 20:10 |
J1m | Maybe it would be better to wait until January. | 20:11 |
J1m | You can blame it on us. | 20:11 |
J1m | (Of course, by "us", I mean Gary. ;) | 20:11 |
GaryPoster | blah blah! :-) | 20:12 |
zbir | is it friday yet? | 20:12 |
MacYET | don't release software the day before x-mas | 20:12 |
srichter | the new law! | 20:13 |
J1m | OK, don't release it tomorrow | 20:13 |
MacYET | i am working on it...let me try | 20:13 |
*** tarek_ has joined #zope3-dev | 20:18 | |
*** jenner has joined #zope3-dev | 20:22 | |
jenner | heya | 20:22 |
*** tarek has quit IRC | 20:22 | |
*** MiUlEr has joined #zope3-dev | 20:24 | |
MacYET | all tests passed | 20:25 |
GaryPoster | yay! | 20:25 |
jenner | J1m: 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 page | 20:25 |
jenner | J1m: at some point twisted raises a connection error and zope freezes completely (doesn't even respond to `kill -s SIGINT`) | 20:26 |
J1m | Interesting | 20:26 |
J1m | hm | 20:26 |
J1m | Yeah, you can definately stress test what I check in. | 20:27 |
J1m | That would be greatly appreciated. | 20:27 |
J1m | Think of it as your Christmas present to me. :) | 20:27 |
jenner | I 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 |
jenner | J1m: :)) | 20:28 |
J1m | hm | 20:28 |
MacYET | Zope 2.9.0b2 released | 20:28 |
J1m | Yay! | 20:28 |
jenner | MacYET: ho ho ho :) | 20:28 |
MacYET | :-) | 20:29 |
J1m | jenner, what platform? | 20:29 |
*** mgedmin has quit IRC | 20:29 | |
jenner | J1m: debian/sid, P4 3GHz, 1.5 GB RAM | 20:30 |
J1m | jenner, I think that my change is more likely to make you run out of file descriptors. | 20:30 |
jenner | bummer :( | 20:30 |
jenner | I mean... I could raise the ulimit :) | 20:30 |
J1m | As it is now, the number of active requests, and thus consumers of file descriptors is limited by the number of threads. | 20:30 |
J1m | With my change, the files will be output by twisted's main thread. | 20:32 |
J1m | They won't be throttled by the thread limit. | 20:32 |
jenner | Hm, right | 20:33 |
J1m | Note that for smallter files, it would be better to return the contents as a string. | 20:33 |
J1m | smaller | 20:33 |
jenner | J1m: yes, already doing so (if the size is smaller then my chunk length) | 20:34 |
J1m | I kinda doubt that you are tunning out of descriptors. | 20:35 |
jenner | It would be nice if WSGI would have a specification for s.th. like apache (and therefor mod_pythons) send_file() | 20:35 |
jenner | J1m: any other ideas then? | 20:35 |
jenner | Let me reproduce it quick, I'll paste the error I get | 20:35 |
* MacYET disappears for x-mas vacation | 20:36 | |
*** faassen has quit IRC | 20:36 | |
GaryPoster | thanks macYET | 20:36 |
GaryPoster | happy vacation | 20:36 |
MacYET | tnx :-) | 20:36 |
*** MacYET has left #zope3-dev | 20:36 | |
jenner | Hm, heisenbug | 20:38 |
*** tarek_ has quit IRC | 20:41 | |
*** tarek_ has joined #zope3-dev | 20:41 | |
jenner | J1m: I can't reproduce it :) | 20:43 |
* jenner turns red | 20:43 | |
J1m | :) | 20:43 |
jenner | actually, it's freaking fast | 20:44 |
* jenner keeps pushing the reload button hoping to kill the publisher somehow :) | 20:46 | |
jenner | There! "Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion." | 20:46 |
J1m | And this makes zope hang? | 20:47 |
J1m | Feels like a twisted bug :( | 20:47 |
jenner | It *made* it hang, not any more | 20:47 |
*** bradb has left #zope3-dev | 20:47 | |
J1m | I'n not sure what that means. | 20:47 |
J1m | Twisted is just complaining that the client broke the connection. | 20:48 |
jenner | J1m: easy to reproduce actually, load a lot of data and hit the stop button | 20:48 |
J1m | But the server keeps handling requests, right? | 20:48 |
jenner | J1m: yes, it does. | 20:49 |
J1m | whew | 20:49 |
jenner | though I saw the same error this morning with exactly the same data and after some time the server just stopped working | 20:50 |
jenner | whatever, maybe I had some other hungry processes running... can't reproduce it anymore | 20:50 |
jenner | J1m: sorry for the noise :) | 20:53 |
J1m | np | 20:53 |
J1m | You 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 IRC | 21:02 | |
*** efge has quit IRC | 21:03 | |
*** tonico has quit IRC | 21:03 | |
*** stub has quit IRC | 21:15 | |
*** tarek_ has quit IRC | 21:19 | |
*** efge has joined #zope3-dev | 21:23 | |
*** Theuni has joined #zope3-dev | 21:26 | |
*** Aiste has joined #zope3-dev | 21:27 | |
jenner | Hm, can anyone point me to an example of how to use pdb with z3? The server has frozen again... | 21:38 |
J1m | jenner, can I get you to test against the 3.2 branch? | 21:38 |
jenner | J1m: sure | 21:38 |
J1m | You should be able to use svn switch to switch to that pretty easily. | 21:38 |
J1m | I hope to be checking in rsn. | 21:38 |
jenner | I'm using a sandbox, so it's a matter of minutes to have a fresh branch checkout | 21:39 |
jenner | ok, I'm on 3.2 | 21:47 |
dman13 | jenner: to use pdb ... 'import pdb ; pdb.set_trace()' | 21:47 |
dman13 | jenner: then when python executes that statement you'll get a shell on stdin | 21:48 |
dman13 | jenner: is that enough info for you? | 21:48 |
jenner | dman13: yes :) thnx | 21:48 |
J1m | OK jenner, the change is in. | 21:51 |
*** Egon has joined #zope3-dev | 21:51 | |
J1m | srichter, ayt? | 21:51 |
srichter | yep | 21:51 |
J1m | Do you remember why we did the HTTPInputStream business? | 21:52 |
srichter | thinking | 21:52 |
J1m | with cache stream and such? | 21:52 |
srichter | I think originally we allowed seeking in the stream | 21:53 |
srichter | I know we got rid the seeking business (I did that) | 21:53 |
* J1m looks at 3.1. | 21:53 | |
jenner | J1m: (svn'ed up) how do I use it? Should I now return a file object instead of an IResult? | 21:55 |
J1m | yes | 21:55 |
J1m | See zope/publisher/httpresults.txt | 21:56 |
J1m | ah, so we orginally promised a file. | 21:58 |
J1m | and it is very expensive to keep that promise with wsgi. | 21:58 |
J1m | Hm. | 21:58 |
srichter | but that's for input, right? | 21:59 |
J1m | srichter, so, who used this? | 21:59 |
J1m | yes | 21:59 |
J1m | somebidy must have depended on this. | 21:59 |
J1m | somebody must have depended on this. | 21:59 |
srichter | if it there just to provide a file, then it was to support seek | 22:00 |
J1m | We are essentially promising a file now. | 22:00 |
srichter | WSGI was around before I fixed the seek() issue | 22:00 |
J1m | But we are providing something that supports seek now. | 22:00 |
J1m | Yeah, but we weren't using wsgi | 22:00 |
srichter | right, I think we might not need this anymore | 22:00 |
srichter | oh, right | 22:00 |
J1m | I suspect that someone wants it. :) | 22:01 |
srichter | nix it and wait for someone to cry :-) | 22:01 |
srichter | we should definitely not support a full file | 22:01 |
srichter | it breaks many assumptions now made with twsited | 22:01 |
J1m | I'm sorely tempted. | 22:01 |
J1m | well, it's sad really. | 22:01 |
srichter | just do it; I'll back you up! :-) | 22:01 |
J1m | We need to buffer input so we arrange to create a file upstream. | 22:02 |
J1m | But twisted hides the file from us, so we don't actualy see a file. | 22:02 |
J1m | I believe that input should always be prebuffered, so it should alsways be possible to have a seekable thing. | 22:03 |
srichter | you mean file input? | 22:03 |
srichter | but not the entire input stream? | 22:03 |
J1m | either a file or a stringio. | 22:03 |
J1m | Right now, if someone does a big file upload, we make 3 copies: | 22:04 |
srichter | *shrug*, sniff | 22:04 |
J1m | 1. we make a copy in twisted or zserver when we prebuffer | 22:05 |
J1m | 2. We make a copy in HTTPInputStream | 22:05 |
J1m | 3. the cgi module makes a copy. | 22:05 |
J1m | sigh | 22:05 |
srichter | oh, that is crazy | 22:05 |
jenner | J1m: looks good so far, I'll run some ab2 tests with a list of files now | 22:05 |
dman13 | ouch. | 22:05 |
J1m | jenner, awesome. Much thanks. | 22:06 |
* dman13 wants to manage music files with z3 | 22: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 |
GaryPoster | dman13: lol | 22:06 |
J1m | dman13, you really don't want to look at zope.app.file. :) | 22:07 |
dman13 | hehe | 22:07 |
jenner | dman13: 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 IRC | 22:07 | |
dman13 | jenner: that's what I want, and it needs to be able to conveniently give various playlists for the player | 22:08 |
dman13 | if 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 db | 22:08 |
dman13 | after all, the filesystem is a database designed and optimized for blobs :-) | 22:08 |
*** efrerich has quit IRC | 22:09 | |
jenner | dman13: 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 tags | 22:12 |
dman13 | jenner: cool | 22:14 |
J1m | Now I remember why we need this. | 22:15 |
J1m | We need to be able to retry a request. | 22:15 |
srichter | oh, bingo | 22:16 |
J1m | So we need t buffer the inut. | 22:16 |
J1m | input | 22:16 |
srichter | right | 22:16 |
J1m | (Failing tests sometimes are a memory aid.) | 22:16 |
srichter | darn, can we not reuse one of the other buffers | 22:16 |
J1m | for now, we'll have to be inefficient. | 22:16 |
jenner | dman13: http://212.211.144.90/misc/fsalbum.tar.gz | 22:16 |
SteveA | you don't need to be able to retry a request. you could fail a conflicting request without retrying. | 22:18 |
J1m | I'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 |
J1m | SteveA, I don't want to fail requests. | 22:19 |
J1m | Users take a dim view of that. | 22:19 |
jenner | dman13: 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 hides | 22:19 | |
J1m | jenner, are you saying that this uses a lot of memory? | 22:20 |
J1m | This should use less memory than before. | 22:20 |
jenner | J1m: No, I was kidding | 22:20 |
J1m | whew | 22:20 |
jenner | j/k = just kidding | 22:20 |
* jenner will behave himself now | 22:21 | |
jenner | dman13: 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 IRC | 22:45 | |
dman13 | jenner: thanks; I'll check it out later (I'm at work right now and need to work instead of play :-)) | 22:51 |
J1m | srichter, I plan to make my last checkin before the beta soon. :) | 23:00 |
J1m | How do you want to handle the beta? | 23:00 |
J1m | srichter, ayt? | 23:08 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!