1 2010-01-07T00:48:34  *** grzywacz has quit IRC
   2 2010-01-07T01:41:37  <ronny> ThomasWaldmann: hmm, can consistency stuff like hashes be removed from the rest of the metadata? it creates unnecessary data for some kinds of backend
   3 2010-01-07T03:39:02  <ThomasWaldmann> moin needs the hash
   4 2010-01-07T03:44:49  <ronny> ThomasWaldmann: but it fscks up storing metadata in a normal vcs history, too many useless diffs
   5 2010-01-07T03:54:56  <ronny> and the even worse fact, it kills editability by users
   6 2010-01-07T03:55:12  <ronny> there is a whole class if backends one cant do if that data is stored together
   7 2010-01-07T03:55:45  <ronny> now the question is, should the backend just rip it out/reinsert it, or should it be a generally different concept
   8 2010-01-07T04:26:43  <ThomasWaldmann> (03:44) <     ronny> ThomasWaldmann: but it fscks up storing metadata in a normal vcs history, too many useless diffs
   9 2010-01-07T04:26:46  <ThomasWaldmann> why?
  10 2010-01-07T04:31:34  <ThomasWaldmann> maybe the problem is that you think about trying editing moin items without moin.
  11 2010-01-07T04:32:25  <ThomasWaldmann> there is not just that hash moin creates, it also adds some other metadata like editor info
  12 2010-01-07T07:38:35  *** xjjk has joined #moin-dev
  13 2010-01-07T08:39:52  <johill> :(
  14 2010-01-07T08:40:00  <johill> my moin processes seem to be growing only
  15 2010-01-07T08:40:08  <johill> they are now 100 mb after less than an hour
  16 2010-01-07T08:43:00  <dennda> 1.9?
  17 2010-01-07T08:43:10  <johill> yeah
  18 2010-01-07T08:43:16  <dennda> http://dev.pocoo.org/projects/flickzeug/
  19 2010-01-07T08:43:47  <johill> heh
  20 2010-01-07T08:43:50  <johill> "# Memory Lead Finder "
  21 2010-01-07T08:44:09  <dennda> yeah, should've a typo finder also
  22 2010-01-07T08:44:36  <johill> seems ... empty
  23 2010-01-07T08:44:40  <dennda> never tried that though. comes from the werkzeug people and isn't released yet
  24 2010-01-07T08:44:48  <dennda> seen some nice screenshots
  25 2010-01-07T08:45:30  <johill> it says 'mockups' here ;)
  26 2010-01-07T08:45:35  <johill> http://dev.pocoo.org/~mitsuhiko/leakfinder.png
  27 2010-01-07T08:46:37  <dennda> too bad :)
  28 2010-01-07T08:52:13  <johill> does seem to work actually
  29 2010-01-07T08:53:20  <dennda> cool
  30 2010-01-07T08:54:16  <johill> http://wireless.kernel.org/_leakfinder/
  31 2010-01-07T08:55:03  <dennda> oh
  32 2010-01-07T08:55:05  <dennda> nice
  33 2010-01-07T08:55:17  <dennda> happy debugging :)
  34 2010-01-07T08:55:27  <johill> I'll let it run for a while I guess
  35 2010-01-07T08:59:19  <johill> this thing needs a filter for < 10 objects
  36 2010-01-07T08:59:22  <johill> some are _thousands_
  37 2010-01-07T09:00:09  <dennda> ?
  38 2010-01-07T09:01:08  <johill> it's displaying "I have 2 generators"
  39 2010-01-07T09:01:19  <johill> like I care, when there are 27000 tuples
  40 2010-01-07T09:04:04  <johill> and 15000 dicts
  41 2010-01-07T09:04:59  <johill> something's wrong
  42 2010-01-07T09:05:06  <johill> none of those dicts should have to stick around for long
  43 2010-01-07T09:05:13  <johill> dict of len 5: {'read': True, 'write': False, 'revert': False, 'admin': False, 'delete': False}
  44 2010-01-07T09:05:25  <johill> thousands of those, for example
  45 2010-01-07T09:06:49  <dennda> some append but no release/delete perhaps?
  46 2010-01-07T09:12:34  <johill> hmm
  47 2010-01-07T09:13:10  <johill> it seems this thing is buggy
  48 2010-01-07T09:13:50  <johill> ah no n/m, it only samples periodicially
  49 2010-01-07T09:16:49  <johill> hmm
  50 2010-01-07T09:16:56  <johill> some things still never go down, while others do
  51 2010-01-07T09:17:07  <dennda> sounds like a bug in moin then, no?
  52 2010-01-07T09:17:21  <dennda> i mean, that's out of question anyway :)
  53 2010-01-07T09:18:41  <johill> no idea
  54 2010-01-07T09:18:54  <xjjk> licensing question... is it ok to use Creative Commons 3.0 content in themes?
  55 2010-01-07T09:19:14  <xjjk> moin's modernized uses Tango, which was CC, but I'm not sure whether it's used under CC or public domain
  56 2010-01-07T09:19:36  <johill> oh, dumb, I have multiple moin processes
  57 2010-01-07T09:25:20  <johill> no wonder it confuses me
  58 2010-01-07T09:32:36  <johill> ah. you can add a number at the end
  59 2010-01-07T09:34:33  <johill> http://wireless.kernel.org/_leakfinder/1500
  60 2010-01-07T09:34:42  <johill> there you can see it created page objects for all pages too :)
  61 2010-01-07T09:34:58  <dennda> nice
  62 2010-01-07T09:35:08  <dennda> that's not 1.9-storage, is it?
  63 2010-01-07T09:35:28  <johill> plain 1.9
  64 2010-01-07T09:35:35  <dennda> ok not my fault then :)
  65 2010-01-07T09:37:01  <johill> heh
  66 2010-01-07T09:49:09  <johill> so
  67 2010-01-07T09:49:16  <johill> moin seems to keep a dict with all underlay pages
  68 2010-01-07T09:49:33  <johill> containing 'layer_auto', 'layer_underlay' and 'layer_normal' keys
  69 2010-01-07T09:49:34  <johill> ?
  70 2010-01-07T09:49:46  <johill> with pretty long strings
  71 2010-01-07T09:49:55  <johill> with a shitload of pages like I have ....
  72 2010-01-07T09:52:51  <dennda> not my area of expertise
  73 2010-01-07T09:53:32  <johill> and the acl for each page too
  74 2010-01-07T09:54:22  <johill> MoinMoin.Page.ItemCache
  75 2010-01-07T09:57:09  <dennda> missing a cache size?
  76 2010-01-07T09:57:59  <johill> missing any kind of limitation
  77 2010-01-07T09:58:17  <dennda> yeah well that might also be a feature X)
  78 2010-01-07T10:01:46  <johill> and the itemcache also opens all pages
  79 2010-01-07T10:01:56  <johill> when refreshed
  80 2010-01-07T10:02:02  <johill> it reads teh entire editlog
  81 2010-01-07T10:02:08  <johill> and ThomasWaldmann claims to know nothing about such behaviour :P
  82 2010-01-07T10:07:15  <johill> the page spikes are cute
  83 2010-01-07T10:07:16  <johill> http://wireless.kernel.org/_leakfinder/1500
  84 2010-01-07T10:07:42  <johill> wonder what that was, but at least they got gc'ed
  85 2010-01-07T10:10:05  <johill> yay
  86 2010-01-07T10:10:14  <johill> at least now it's limited to like 55M per process
  87 2010-01-07T10:10:28  <johill> with the item cache completely disabled
  88 2010-01-07T10:10:38  <johill> so far no adverse side effects either ...
  89 2010-01-07T11:05:13  <dreimark> moin
  90 2010-01-07T11:05:30  <johill> hey
  91 2010-01-07T11:09:59  <dreimark> johill: the page isn't accessible
  92 2010-01-07T11:10:23  <dreimark> johill: can that reproduced with the standalone server ?
  93 2010-01-07T11:10:49  <johill> I removed the debug stuff again
  94 2010-01-07T11:10:56  <johill> I don't know how the itemcache is triggered
  95 2010-01-07T11:11:10  <johill> if you can trigger an itemcache refresh, then you should be able to reproduce it
  96 2010-01-07T11:18:46  <dreimark> ok. i try to look at it
  97 2010-01-07T11:19:06  <johill> there's a todo item
  98 2010-01-07T11:19:13  <johill> in item cache
  99 2010-01-07T11:19:17  <johill> that might help, not sure
 100 2010-01-07T12:25:02  <ThomasWaldmann> johill: yoo don't want to disable the item cache completely, otherwise the next issue you'll have is disk access
 101 2010-01-07T12:25:35  <johill> I'd rather access disk when needed than swap continuously
 102 2010-01-07T12:25:37  <ThomasWaldmann> but you could add some code to do LRU on the last 50 items or so
 103 2010-01-07T12:26:51  <ThomasWaldmann> looks like your server has less ram than some mobile phones nowadays :D
 104 2010-01-07T12:27:15  <johill> not really, but it's not dedicated to running wikis
 105 2010-01-07T12:28:38  <ThomasWaldmann> btw, that itemcache is not new in 1.9, that has been there since ... 1.6(?)
 106 2010-01-07T12:28:50  <johill> must be doing something different now though
 107 2010-01-07T12:28:55  <johill> at least so it seems
 108 2010-01-07T12:50:15  <ThomasWaldmann> gtg/bbl
 109 2010-01-07T15:15:18  <ThomasWaldmann> re
 110 2010-01-07T15:20:15  <ThomasWaldmann> johill: if you got any insights about how to reproduce strange memory usage / disk access behaviour, please update the wiki page
 111 2010-01-07T15:20:49  <johill> I'm guessing itemcache.refresh() will cause that?
 112 2010-01-07T15:22:05  <ThomasWaldmann> that just empties the cache
 113 2010-01-07T15:22:40  <johill> it also goes through the entire editlog
 114 2010-01-07T15:22:47  <johill> since old_pos will be None
 115 2010-01-07T15:22:48  <johill> no?
 116 2010-01-07T15:22:58  <johill> ah but it just removes things
 117 2010-01-07T15:23:29  <johill> hm well, no idea
 118 2010-01-07T15:23:39  <johill> and it still seems to create up to 2k page objects anyway
 119 2010-01-07T15:23:44  <johill> but at least they get removed again
 120 2010-01-07T15:24:29  <ThomasWaldmann> old_pos shouldn't be None in the usual case
 121 2010-01-07T15:24:56  <johill> but it starts out as None before the first refresh
 122 2010-01-07T15:26:07  <ThomasWaldmann> yeah, maybe someone(tm) should do that TODO :D
 123 2010-01-07T15:26:56  <johill> in any case I doubt that's the problem
 124 2010-01-07T15:26:59  <johill> I see it accessing all pages
 125 2010-01-07T15:27:09  <johill> but the memory consumption seems to come from a lot of junk being in ItemCache
 126 2010-01-07T15:27:16  <johill> the accessing all pages appears to be harmless to that
 127 2010-01-07T15:28:37  <ThomasWaldmann> "junk" means?
 128 2010-01-07T15:30:28  <ThomasWaldmann> it is known that ItemCache grows over time, it doesn't have a limit or LRU strategy
 129 2010-01-07T15:30:37  <johill> yeah but I never even accessed those pages
 130 2010-01-07T15:30:47  <johill> yet that crawling run, whatever it was, put them all into the cache
 131 2010-01-07T15:31:05  <johill> which explains why the cache wasn't a problem for me before
 132 2010-01-07T15:31:08  <johill> I didn't see the crawling
 133 2010-01-07T15:31:21  <johill> but I can't explain the crawling, yet anyway
 134 2010-01-07T15:31:46  <johill> but if it doesn't result in everything being cached, it seems /fairly/ harmless
 135 2010-01-07T15:32:08  <ThomasWaldmann> if you can reproduce that crawling somehow, that would be helpful
 136 2010-01-07T15:32:38  <johill> it always happens on my server eventually, but I don't know why
 137 2010-01-07T15:32:55  <ThomasWaldmann> is it at first request?
 138 2010-01-07T15:33:00  <johill> I don't think so
 139 2010-01-07T15:33:05  <ThomasWaldmann> or first edit?
 140 2010-01-07T15:33:09  <johill> maybe
 141 2010-01-07T15:33:38  <johill> but I don't get lots of edits, so even that's unlikely
 142 2010-01-07T15:34:56  <ThomasWaldmann> btw, do you think that is reproduceable with ./wikiserver.py?
 143 2010-01-07T15:35:05  <johill> I don't know
 144 2010-01-07T15:35:10  <johill> I don't see why not
 145 2010-01-07T15:35:16  <johill> but I have a fairly complex farm config
 146 2010-01-07T15:36:02  <ThomasWaldmann> btw did you check whether your custom stuff maybe could cause it
 147 2010-01-07T15:36:11  <ThomasWaldmann> like unusual group usage?
 148 2010-01-07T15:36:19  <ThomasWaldmann> theme? other stuff?
 149 2010-01-07T15:36:39  <johill> hm patches should be ok
 150 2010-01-07T15:36:43  <johill> group usage ..?
 151 2010-01-07T15:37:44  <johill> I just do WikiGroup(request, pg, WikiGroups(request)) once a while
 152 2010-01-07T15:38:05  <johill> well, for every request, I guess
 153 2010-01-07T15:38:15  <johill> but 'pg' is always from a small set of strings
 154 2010-01-07T15:57:38  <ThomasWaldmann> i mean the new group/dict code is one of the bigger changes that got into 1.9
 155 2010-01-07T15:59:23  <johill> but why would it, occasionally, access all pages?
 156 2010-01-07T15:59:32  <ThomasWaldmann> it shouldn't
 157 2010-01-07T15:59:40  <ThomasWaldmann> it even was designed to not do that
 158 2010-01-07T16:19:39  <ronny> ThomasWaldmann: i decided that it might be best for human-editable backends to strip out the metadata thats costly/inferable for them
 159 2010-01-07T16:19:51  <ronny> i.e. stuff like author/hash
 160 2010-01-07T16:53:53  <dreimark> we now have request.groups and request.dicts
 161 2010-01-07T17:57:43  <dreimark> can we check while processing something if the user still requests it?
 162 2010-01-07T17:58:12  <dreimark> e.g. if you initiate a search operation and you click stop at the browser
 163 2010-01-07T17:58:39  <dreimark> then the python process continues but won't be able to deliver the result
 164 2010-01-07T17:59:41  <dreimark> (instead of stop the browser could be closed too)
 165 2010-01-07T18:00:17  <TheSheep> I suppose the browser closes the connection
 166 2010-01-07T18:00:33  <dreimark> it doesn't at least not with the standalone server
 167 2010-01-07T18:00:33  <TheSheep> I don't know if the web servers communicate that somehow
 168 2010-01-07T18:00:47  <TheSheep> it does if you close the browser
 169 2010-01-07T18:00:51  <dreimark> no
 170 2010-01-07T18:01:13  <TheSheep> then what process has the socket opened?
 171 2010-01-07T18:02:01  <dreimark> i tried with a bad regex search and closed the browser after sending it
 172 2010-01-07T18:02:14  <dreimark> now it eats 2.3GB and it still increases
 173 2010-01-07T18:02:50  <TheSheep> maybe the standalone server doesn't check if the socket is closed from the other side
 174 2010-01-07T18:03:00  <johill> web servers in general don't tell you
 175 2010-01-07T18:03:04  <johill> and can't even
 176 2010-01-07T18:03:23  <TheSheep> johill: I thought that tcp is stateful?
 177 2010-01-07T18:03:30  <johill> tcp sure
 178 2010-01-07T18:03:41  <johill> but the fcgi, wsgi etc APIs don't provide that kind of option
 179 2010-01-07T18:04:04  <johill> besides, the only way it could possibly work was if the app regularly checked the socket status
 180 2010-01-07T18:07:10  <TheSheep> not that expensive searches are that useful anyways
 181 2010-01-07T18:07:42  <TheSheep> at least regular expressions don't have the stop dillema
 182 2010-01-07T18:14:06  <dreimark> there are two points a) if one searches for .* we don't need to search
 183 2010-01-07T18:14:11  <dreimark> it is everything
 184 2010-01-07T18:14:44  <dreimark> b) that should not consume any memory
 185 2010-01-07T18:15:41  <dreimark> and a search with . should not crash your server
 186 2010-01-07T18:16:02  <dreimark> (xapian search seems not to have this problem)
 187 2010-01-07T18:19:39  <dreimark> gtg/bbl
 188 2010-01-07T19:56:22  *** grzywacz has joined #moin-dev
 189 2010-01-07T20:16:28  <TheSheep> ronny: hey!
 190 2010-01-07T20:16:44  <TheSheep> ronny: I've got an idea that will make you want to kill me on the spot
 191 2010-01-07T20:17:33  <TheSheep> ronny: microbugging: twitter meets bugzilla
 192 2010-01-07T20:17:53  * TheSheep runs
 193 2010-01-07T20:20:51  <ronny> TheSheep: there is no place for you to hide
 194 2010-01-07T21:33:37  <ThomasWaldmann> hehe, microbugging
 195 2010-01-07T21:33:49  <ThomasWaldmann> isn't that what's IRC for? :)
 196 2010-01-07T23:55:22  *** grzywacz has quit IRC
 197 

MoinMoin: MoinMoinChat/Logs/moin-dev/2010-01-07 (last edited 2010-01-07 00:00:02 by IrcLogImporter)