| <<<Back 1 day (to 2013/03/26) | 2013/03/27 |
Robin_Watts | Who is looking into the "not enough space for thread data" bug? The customer seems to be getting antsy. | 00:51.12 |
kens | Great, so I download VS 2012 which says I can use ot for 30 days. Except that when I install it it wants a product key anyway, which I have to register for (ie give all my details to M$). Having done that they send me an email, so I have to twiddle my fingers until it (eventually) arrives..... | 09:34.38 |
| Still no email fro M$.... | 09:54.09 |
| Oh good grief, and if I press 'cancel' instead of entering a key it goes ahead and launches VS :-( Obvious..... | 09:55.18 |
| I dislike the UI already... | 09:55.35 |
| LOL and VS 2012 has to upgrade the project we were sent. So I guess they were using 2010 | 09:56.55 |
Robin_Watts | Who is looking into the "not enough space for thread data" bug? The customer seems to be getting antsy. | 10:09.45 |
kens | Me | 10:09.51 |
| See mail from henrys | 10:09.57 |
| I've had to download VS 2012 to do it and install .NET 4.0 and 4.5 so far | 10:10.17 |
| I think I have it 'working' | 10:10.26 |
| They have a race conditionwhich causes me a problem trying to debug it, but I'm about ready to give it a proper try | 10:10.52 |
| Except that I'm going out in 10 minutes | 10:11.05 |
Robin_Watts | kens: cool. | 10:11.59 |
kens | The first thing I note is that _Process is *always* non-NULL after execution and they simply set it to NULL rather than deleting it or otherwise properly deconstructing the object | 10:12.31 |
| WHich looks bad to me | 10:12.36 |
| Oh finally, email from M$ | 10:13.59 |
Robin_Watts | kens: obvious test... change the thing that gets called. | 10:14.00 |
kens | Robin_Watts : yes, I plan to do that too | 10:14.09 |
| just trying to reproduce the problem firrst | 10:14.19 |
Robin_Watts | Instead of calling gswin32c.exe call something else, and see if we still hit the same problem. | 10:14.21 |
kens | Yes | 10:14.26 |
Robin_Watts | ok. I'll shut up. | 10:14.28 |
kens | :-) | 10:14.31 |
| 5 minutes and I have to leave this | 10:14.42 |
| I started a 1000 iteration run and its up to 210 now | 10:14.55 |
| Interesting email from MS, wants me to *cancel* if I didn't make the account request. | 10:15.43 |
| SO waht do I do if I did make the request ? | 10:15.51 |
Robin_Watts | kens: From reading the stackoverflow page, the problem may only occur if you have 2 apps on the same machine using the same version of MSCRT. | 10:16.42 |
kens | THere's a SO page on this ? | 10:16.59 |
Robin_Watts | sorry, not the stack overflow page, the microsoft knowledge base page. | 10:17.08 |
kens | Ah | 10:17.13 |
| TBH I think its up to the customer to send us something we can reproduce | 10:17.24 |
| THey crash out at iteration 15 or so, going by the scrfeenshot, I am up to 400 now | 10:17.43 |
| SO their app doesn't fail for me using a current GS. | 10:17.58 |
| 1000 iterations completed, no problems. I'll look further later but at the moment I can't reproduce the error. | 10:29.48 |
paulgardiner | Robin_Watts, tor8: tiny fix on paul/master | 12:42.14 |
kens | Robin_Watts : do you still have that knowledgebase article URL ? | 13:05.13 |
| I'm currently running 2 instances of the test program (using different builds of GS) and not seeing any problems | 13:05.41 |
Robin_Watts | Did I not put it in the email? | 13:24.00 |
| http://support.microsoft.com/kb/126709 | 13:24.23 |
kens | Robin_Watts : I may have missed it I was looking in irc log, I will check | 13:24.28 |
Robin_Watts | kens: no worries. I found it in my chrome history. | 13:24.44 |
kens | Thanks | 13:24.46 |
| Robin_Watts : latest test I copied the 'testApp' executable and started two instances, using different GS executables (but built with teh same VS). So that's the same run time for the test app and the same runtime for the GS. Ran it 250 iterations without problem. Tried 32 and 64 bit versions of Ghostscript | 13:27.28 |
Robin_Watts | kens: Right. From the article it sounds to me like it's a problem with calls to TlsAlloc. | 13:27.56 |
kens | THe KB article does suggest its a win32 problem though and I'm running on WIndows 7 64-bit | 13:28.04 |
Robin_Watts | and gs NEVER calls TlsAlloc as far as I can see. | 13:28.05 |
| kens: but you're running a 32bit app on win 7. | 13:28.25 |
kens | Robin_Watts : I believe not, no, and that's certainly the suggestion by the KB article | 13:28.27 |
| Robin_Watts : yes, though I tried the 64-bit before checking that. | 13:28.43 |
Robin_Watts | so I think that's covered (from what I remember of the other google results for 6106) | 13:28.53 |
kens | I'm not certain if I built the tets app as 32 or 64 | 13:28.53 |
| Robin_Watts : it looks from the KB article that the problem was resolved wiht a later version of win32s, in which case I shouldn't think its possible for me to reproduce this problem. I woudl have to guess the customer is running an old version of WIndows, I don't think they say... | 13:32.24 |
| I think I'll write up what I've done and send it to the customer with a list of supplementart questions. | 13:33.09 |
Robin_Watts | kens: That would be a massive step forward from the wall of silence they've so far had. | 13:37.03 |
kens | Yes, writing email now | 13:37.12 |
Robin_Watts | chrisl: I think you mean "can't" rather than "can" in that last email. | 13:37.57 |
kens | Err possibly, I'll have to go read it now | 13:38.13 |
chrisl | Yes, I do..... | 13:38.36 |
kens | Oh Bugzilla | 13:38.49 |
chrisl | correction sent | 13:40.15 |
| Thanks Robin_Watts | 13:40.38 |
henrys | kens:wow nice followup but I bet that was time consuming. | 14:05.04 |
kens | henrys its taken some time, but I really cannot reproduce the problem, I have tried pretty hard | 14:06.44 |
| I'm just sending the GS and sample application executeables I was using so they can try those. | 14:07.05 |
henrys | I wonder if we could do some text processing kung fu on the support inbox and outbox to check when we don't respond., I guess it doesn't haven often enough to fool with it. | 14:08.09 |
kens | Mostly we don't miss things, but it seems to be getting more common. | 14:08.34 |
Robin_Watts | henrys: The standard approach to such things is to have an automated ticketer. | 14:08.46 |
kens | Perhaps we're getting a bit slack, I know I didn't want to touch this last one with any kind of implement at all | 14:09.00 |
kens | coffees | 14:09.10 |
Robin_Watts | Every message in gets a ticket number put into the subject, and as long as you never change the subject it's tracked. Makes it easy to spot ones that haven't been replied to. | 14:09.57 |
henrys | Robin_Watts:what does it's tracked mean? | 14:14.24 |
Robin_Watts | henrys: There is a database of tickets, akin to bugzilla. | 14:14.59 |
| So you can see how long we take to respond, who the ticket is assigned to etc. | 14:15.16 |
| would let us track where the support load came from too. | 14:15.41 |
| It may be overkill for a company with only one support guy, but... | 14:16.06 |
henrys | Robin_Watts:okay yes I've seen those, I thought it a bit heavyweight for us. But definitely something to con sider. | 14:16.34 |
| Maybe it is as simple as having a person other than marcosw look at the support list for 1 minute each day and remind him if something is late. | 14:18.04 |
Robin_Watts | I wonder if we can get a system that integrates with bugzilla; every support email that comes in automatically opens a (private) bug, and assigns it to support. | 14:18.40 |
| Would increase churn in the bugs list, but would mean stuff shouldn't be missed. | 14:19.06 |
henrys | I'll put it on mil list to bring up with marcosw, it's his headache | 14:22.13 |
| s/mil/my | 14:22.26 |
Robin_Watts | ok, I've squashed all the memory squeezing SEGVs at startup except for 11-18, which I have an email in to ray about. | 14:50.24 |
kens | sounds good | 14:50.51 |
Robin_Watts | We still leak like a leaky thing though. | 14:51.22 |
henrys | Robin_Watts:leak as in "continued growth" or startup initialization leaks | 14:52.34 |
Robin_Watts | henrys: The former. | 14:52.49 |
| the latter, sorry | 14:52.55 |
henrys | phew | 14:53.03 |
Robin_Watts | and terrible cleanup leaks | 14:53.19 |
chrisl | Still bad news for anyone using the DLL :-( | 14:53.32 |
Robin_Watts | (if we run out of memory, forget about us freeing the memory we do have). | 14:53.39 |
| chrisl: indeed. | 14:53.43 |
henrys | sounds like we need projects for these | 15:03.08 |
daylo | hi | 15:18.56 |
ghostbot | bonjour, daylo | 15:18.57 |
daylo | oui | 15:19.04 |
| our school computers have gs on them | 15:19.19 |
| what is it??? | 15:19.24 |
| ?? | 15:19.46 |
| anyone know? | 15:19.49 |
| anyone present who can answer me? | 15:20.36 |
tor8 | paulgardiner: LGTM, want me to push or do you have permissions to do that yourself? | 15:23.51 |
paulgardiner | tor8: Thanks. Yes, push please. | 15:24.27 |
henrys | daylo:http://en.wikipedia.org/wiki/Ghostscript | 15:24.31 |
| tor8:will you follow up on the localization? Wanted to ask you about that at the meeting yesterday. It does have the potential to get us seen in other markets. | 15:26.28 |
tor8 | henrys: the oneskyapp.com thing? | 15:35.35 |
henrys | tor8:yes that thing | 15:35.52 |
| tor8:I sent you mail | 15:36.03 |
tor8 | henrys: okay. "Fwd: Suggestion for MuPDF" is the one you're talking about? | 15:36.26 |
henrys | tor8:yup | 15:38.17 |
| so I can use a linux box as time machine backup server for free but I have to pay apple fro Apple Server to use a mac workstation, what should I do :-? | 16:08.55 |
Robin_Watts | All your $$$ are belong to Apple. | 16:10.45 |
| henrys: I may have raved before about my NAS box. That does time machine too. | 16:21.05 |
henrys | Robin_Watts: yes that might be a good purchase for me too. | 16:25.52 |
Robin_Watts | Mine was for a while twice the price I paid for it in the UK. | 16:26.50 |
| Indeed, it still seems to be. | 16:27.44 |
henrys | I can't believe apple is asking 20 bucks for the stupid server. I already bought a BSD OS with from them and I expect that to be a server like any other friggin' unix operating system in the known universe. | 16:29.58 |
Robin_Watts | does the ray_latop summoning dance. | 16:37.22 |
| tor8: debian .desktop fix on robin/master | 16:42.19 |
kens | OK goodnight folks | 17:11.23 |
| back to colour stuff tomorrow | 17:11.29 |
henrys | paulgardiner: today I starve, swim and bike, I'm expecting failure, but sabrina is going strong. | 17:13.08 |
paulgardiner | henrys: get all the hell out of the way in one go. | 17:13.52 |
| I haven't tried going to the gym on a fast day yet, but I've heard it's not as bad as one would expect. | 17:14.33 |
Robin_Watts | Starve, swim and bike. Because tomorrow we die. | 17:14.58 |
henrys | yea dave mathews | 17:15.39 |
mvrhel_laptop | henrys: that does not sound good for you. I would expect you to go into a major protein deficit leading to muscle loss | 17:16.01 |
paulgardiner | mvrhel_laptop: I'd have thought so too, but I've also heard that some body builders train while fasted, albeit not from a source I can varify as reliable. | 17:17.30 |
mvrhel_laptop | that seems surprising | 17:17.45 |
henrys | it's not a complete fast : 600 calories | 17:17.48 |
mvrhel_laptop | I would think the 600 calories need to be almost all protein then | 17:18.08 |
| I can see cutting out carbs and fat | 17:18.14 |
henrys | sabrina only gets 500 he he | 17:18.15 |
| mvrhel_laptop: paul and I watched this thing http://vimeo.com/50912488 and are giving it a go. check out the 100 year old marathoner! | 17:19.57 |
Robin_Watts | loses 5 minutes googling dave matthews and "eat drink and be merry". The Interweb is marvellous for productivity. | 17:20.07 |
henrys | lost 30 minutes because Robin_Watts has put a song in his head. | 17:21.05 |
paulgardiner | And check out the 50 year old who looks 35 | 17:21.09 |
Robin_Watts | paulgardiner: That's henrys, right? :) | 17:21.27 |
paulgardiner | Yeah, that's what I meant of course. :-) | 17:21.56 |
henrys | I'm trying to hide this year - took down the Facebook bday reminder - decades are the tough ones. | 17:23.38 |
| the good thing is my race group ranking will improve. | 17:24.50 |
Robin_Watts | In marathons, supposedly you have to train your body to break down muscle, rather than fat (because you don't have enough stored fat (*)), so possibly the fasting diet is exactly right for that. | 17:25.50 |
| (* Well, *I* have enough stored fat, but...) | 17:25.59 |
chrisl | Robin_Watts: I think it's counter-productive when you carry it with you..... | 17:27.02 |
Robin_Watts | It took me years to build it up. I'm not giving it up without a fight. | 17:28.42 |
chrisl | Well, I certainly couldn't last a 5 set squash match after a fast day | 17:29.26 |
Robin_Watts | paulgardiner: Looking back at the pdf_device now, I see that I send all fonts through as 'helvetica'. | 17:44.07 |
| Does this mean that whenever we generate appearance streams currently, they appear as helvetica ? | 17:44.25 |
| Ah. ray has been eaten by customer 532 again, judging by his email. | 17:46.50 |
| Presumably this is a problem he's only seeing on their 8.71 based version. | 17:47.10 |
paulgardiner | Robin_Watts: all the appearance streams that involve text I handled before you'd written the device, so no problem. Would be nice to swap over eventually of course. | 17:47.49 |
Robin_Watts | paulgardiner: Ah, right. | 17:48.03 |
| Even annotations? | 17:48.14 |
paulgardiner | I haven't yet dealt with annotations involving text in the appearance streams. It's only form widgets where I've needed text | 17:49.37 |
Robin_Watts | ok. | 17:49.51 |
| marcosw: I've memory squeezed up to 30000 now, and the only SEGVs I get are 11-18 which are down a mismatch in allocation/freeing functions I think. | 18:39.08 |
| Were you planning to run weekly tests on this or something ? | 18:39.23 |
marcosw | Robin_Watts: the mem squeeze that I started yesterday is still running and continues to produce SEGVs: | 18:40.44 |
| SEGV after Memory squeezing @ 75007 | 18:40.52 |
| SEGV after Memory squeezing @ 75008 | 18:40.53 |
| SEGV after Memory squeezing @ 75236 | 18:40.54 |
| SEGV after Memory squeezing @ 75237 | 18:40.55 |
Robin_Watts | marcosw: The mem squeeze that you started yesterday doesn't have all todays commits fixing mem squeeze bugs in :) | 18:41.19 |
marcosw | I don't see how we can run memsqueezing on even a small subset of the regression files when each run takes >24 hours. | 18:41.34 |
Robin_Watts | marcosw: Building with MEMENTO_LEAKONLY might help, but even so, I agree. | 18:42.30 |
| We could run a random file a week? :) | 18:42.49 |
marcosw | Robin_Watts: yeah, that's what I was thinking. Run a random file on each cluster node until it stops and then start another one. | 18:43.25 |
Robin_Watts | Most of the fixes that went in today were for initialisation things (i.e. stuff that's unlikely to go wrong in the real world unless people are starting in stupidly small amounts of memory) | 18:44.43 |
| but I did find at least one (@14000 or so) that was a real one that could bite us, I think. | 18:45.10 |
| I first saw the R6016 mail on 22/03/2013 at 06:07 | 18:46.23 |
marcosw | Robin_Watts: I have to run, I'll be back online later today. | 18:47.04 |
Robin_Watts | I don't get my email via gmail, so maybe that's a factor in me seeing it, and other people not? | 18:47.20 |
ray_laptop | how can this: int last_band = (cdev->height + band_height - 1) / band_height; yield 1 when band_height == cdev->height == 372 ??? | 19:00.38 |
Robin_Watts | ray_laptop: Cos that's maths? | 19:04.58 |
| (x + x-1) DIV x is pretty much defined to be 1 by the definition of DIV :) | 19:05.20 |
| The idiom (x + y-1) DIV y is generally used to mean "round_up(x/y)", right? | 19:07.34 |
| That calculation looks suspect to me though (assuming you're looking in clist_create_compositor?) | 19:10.49 |
| Assuming bands are numbered from 0, last_band is 1 too large, I reckon. | 19:11.58 |
| no_of_bands = last_band + 1 looks similarly 1 too large. | 19:12.43 |
| Surely we want no_of_bands = (cdev->height + band_height - 1) / band_height ? and then first_band =0, last_band = no_of_bands-1 ? | 19:13.49 |
ray_laptop | Robin_Watts: (sorry phone call) yes, clist_create_compositor. and we do want no_of_bands = 1 when first_band == last_band | 19:20.13 |
Robin_Watts | ray_laptop: OK, so that looks like an easy enough change. | 19:21.10 |
| I guess this means we've been writing 1 band extras worth of compositor stuff until now. | 19:21.31 |
ray_laptop | Robin_Watts: yep. | 19:24.03 |
Robin_Watts | ray_laptop: How entrenched are you in this customer 532 thing? Can I distract you for 2 minutes? Please feel free to say no if you'd rather not. | 19:38.55 |
ray_laptop | Robin_Watts: I have to think about what I just saw with the debugger. While rendering a pattern to a pattern-clist, I somehow get a endtransparencymask with the pgs->device != the pattern_clist device | 19:44.16 |
| Robin_Watts: so go ahead -- I'll let it percolate in the BG | 19:44.32 |
Robin_Watts | ah, ok, thanks. | 19:44.42 |
| What is the correct way of freeing a block allocated with ialloc_solo ? | 19:44.57 |
| ialloc_init allocates various blocks with ialloc_alloc_state (which calls ialloc_solo), and if any of these allocations fail, it attempts to free them with gs_free_object(); | 19:47.09 |
| I believe this is incorrect. | 19:47.17 |
ray_laptop | hmm... So the allocator is whatever the 'parent' was, so you need to know the "parent" allocator. | 19:47.41 |
Robin_Watts | If this question is going to take you longer than 2 minutes to solve, then please feel free to tell me you don't want to chase down this particular rabbit hole at the moment. | 19:47.52 |
ray_laptop | AFAICT, this is ONLY used for ialloc_alloc_state, right ? | 19:48.37 |
Robin_Watts | ialloc_solo allocates the block using the same memory pointer that gs_free_object uses to free it. BUT ialloc_solo puts an extra obj_header_t on the front of the object, which confuses things. | 19:49.41 |
| yes, only there AFAICT. | 19:49.46 |
ray_laptop | and it puts the 'parent' allocator in the iimem->non_gc_memory | 19:50.14 |
mvrhel_laptop | bbiab | 19:50.29 |
Robin_Watts | Do we need an ifree_solo that ignores that extra header and calls gs_free_object on the underlying thing? | 19:50.41 |
ray_laptop | so you need an ialloc_free_state that uses that knowledge ??? | 19:50.44 |
Robin_Watts | ialloc_solo_free ? | 19:51.01 |
| AFACIT this only matters for allocation failure cleanup. | 19:51.24 |
| I can't see how this is ever usually freed - maybe it's not? or it only ever goes with gc ? | 19:51.47 |
ray_laptop | Robin_Watts: that's what I figured you were working on | 19:51.53 |
Robin_Watts | yes, that's what I'm working on. | 19:52.21 |
ray_laptop | I think we rely on 'free_all' to ever free it | 19:52.34 |
Robin_Watts | How does free_all work? | 19:52.48 |
ray_laptop | the gs_malloc_release call when the interpreter exits | 19:55.13 |
Robin_Watts | ok. | 19:55.27 |
| so would you be averse to me adding an ialloc_solo_free function and using that ? | 19:55.43 |
ray_laptop | it calls gs_malloc_memory_release which is an alias for gs_memory_free_all | 19:55.51 |
| Robin_Watts: no, that's fine. Please add a comment that this is probably only useful if allocation fails early on | 19:56.26 |
Robin_Watts | will do. Thanks. | 19:56.44 |
mvrhel_laptop | working on links now in the windows app..... | 23:45.07 |
| Forward 1 day (to 2013/03/28)>>> | |