/srv/irclogs.ubuntu.com/2014/01/30/#ubuntu-mir.txt

dupingping86who is main developer!00:54
dupingping86I 'll try to become a main developer.00:55
dupingping86let's help each other.00:55
dupingping86so let's make mir wonderful.00:55
prepangolinHello everybody.00:58
=== duflu_ is now known as duflu
=== rsalveti_ is now known as rsalveti
alf_alan_g: Do you want to take another look at mir-screencast-basic-client-api or shall I top-approve?10:52
alan_galf_: If you've got other approvals I won't waste time10:53
* alan_g is hinting a race condition in buffer management10:53
alan_g*hunting10:53
alf_alan_g: interesting!10:55
alan_galf_: it is what we software developers live for. ;)11:01
alan_galf_: can you take a peek in case it is obvious to you how this happens? https://bugs.launchpad.net/mir/+bug/1267323/comments/411:03
ubot5Ubuntu bug 1267323 in Mir "Clients freeze on startup if 10 or more are already running" [High,In progress]11:03
alf_alan_g: sure11:04
alf_alan_g: can you try if calling surface_data->frame_posted(); before swapping the client buffers makes a difference in ms::BasicSurface::swap_buffers() ?11:31
alan_galf_:  sure11:31
alan_gNo effect.11:35
alf_alan_g: a problem in informing the compositor about changes to the scene would have the blocking effect (but that's just a guess in this case)11:36
alf_alan_g: hmm, although that would probably block all clients, not just the new ones...11:37
alan_galf_: yeah, trawling through the logic now. Thanks for looking (was hoping different eyes would help)11:38
alan_galf_: in lp:1274208 it is all clients11:38
alan_gFor the moment I'm assuming that duflu is right about this being one problem. It is simpler that way. ;)11:39
sil2100Hi guys, do you know usually how long the mir unit-tests should run on armhf?11:58
sil2100Is it taking a long time normally?11:59
alf_sil2100: are you running with valgrind/memcheck?11:59
sil2100alf_: just what is run in a standard mir package build12:00
sil2100alf_: https://launchpad.net/~ci-train-ppa-service/+archive/landing-005/+build/5537029 <- it's like standing there for at least 20-25 minutes12:01
alf_sil2100: that's not normal, something is wrong12:02
sil2100alf_: it was fine yesterday, and suddenly it started to work like this in the morning12:04
alf_alf_: this a native armhf (not cross-compiled) build I gather?12:06
alf_sil2100: this a native armhf (not cross-compiled) build I gather?12:07
alf_sil2100: where can I get the details for this build, which branch was used etc?12:09
sil2100alf_: yes, it's a non-virtualized builder12:13
sil2100alf_: let me provide you all the details12:13
sil2100alf_: https://code.launchpad.net/~mir-team/mir/trunk-0.1.4/+merge/201707 <- this is the branch being built12:14
sil2100alf_: it's the branch that releases all mir development happening in the past12:15
sil2100alf_: nothing changed since yesterday it seems, and yesterday we had a green mir in the PPA - all other platforms build fine12:16
sil2100alf_: just armhf gets stuck here12:16
alan_galf_: I've made some progress. It appears to be related to the topmost window overlaying other windows - not sure of the exact scenario but I've got a little movie (tries to remember how to access chinstrap)12:44
=== alan_g is now known as alan_g|lunch
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
sil2100kgunn: hi! It seems we can't get mir building for armhf now13:36
sil2100kgunn: it was fine yesterday, now it hangs infinitely on unit-tests13:36
sil2100kgunn: and it's just for armhf13:36
sil2100kgunn: I can't block on mir any longer, so I'll free the mir landing silo, release all the queued platform-api bits in another landing and only then re-assign mir a silo13:37
alf_kgunn: @mir failing in silo, I am building the branch locally on Nexus 10, to see if I can reproduce the hang13:49
=== alan_g|lunch is now known as alan_g
alf_alan_g: The first thing that comes to mind is the mc::OcclusionFilter failing somehow, but in that case I would expect the other windows not to be drawn at all...13:50
alan_galf_: I assume we block occluded surface to prevent them repainting. That will block a frontend thread. And if we block enough of them (e.g. the only one) then frontend is dead.13:58
alf_alan_g: yes, that sounds right14:01
alf_alan_g: (we "block" them by not consuming their previous buffers)14:02
alan_gack14:02
* alan_g thinks it is easy to test - but not trivial to fix14:03
anpokcan we discard them14:05
alan_galf_: yes if OcclusionFilter::operator() is hacked to return false then we don't consume all the frontend threads.14:07
alan_ganpok: we intend to block the client, but not to exhaust frontend threads14:07
alf_kgunn: mir_unit_tests run fine locally, both when cross-compiled and when native compiled on N10 (using trunk-0.1.4 branch)14:26
alan_galf_: anpok can you confirm my logic:14:45
alan_g1. We shouldn't have blocking calls on frontend threads14:45
alan_g2. as currently implemented SessionMediator::next_buffer() can block in SwitchingBundle::client_acquire()14:45
alan_g3. If client_acquire() is changed to non-blocking then it needs to store a completion callback when it can't complete14:45
alan_g4. If SwitchingBundle::compositor_release() finds a completion callback it must invoke and release it14:45
alan_g5. That callback needs to call pack_protobuf_buffer() and done->Run()14:45
alan_g6. This introduces some resource management issues - like the lifetime of the message response object14:45
alan_g7. Not allowing blocking calls on frontend threads means we shoudn't need to unblock them on shutdown (we can delete code)14:46
kgunnhey guys...dr appt longer than i thot14:48
kgunnalf_: thanks for trying...14:48
alf_alan_g: Looks sensible14:49
kgunnsil2100: so what's the current thot on mir in ci train ?15:22
sil2100kgunn: for now, until alf_ or anyone else figures out why the mir unit tests hang on armhf, we land platform-api pending changes separately - and then we re-enable mir landing15:24
kgunnsil2100: so locally they don't...for the ci train is this on calxeda where the unit test fails ??15:26
sil2100kgunn: I guess so, it's the kishin builders - it was failing on more than one of the builder machines so it's not only one-hardware issue I guess15:26
kgunnsil2100: ok...i'll try local as well...we may have to go down the road of debug on the calxeda15:29
sil2100kgunn: the strange thing is that yesterday all was fine15:32
kgunnsil2100: no kidding, curious...did platform-api (aka papi) start behaving all of a sudden too ?15:33
sil2100kgunn: no, this one got actually fixed - but I guess it was some cmake fix FWIK15:34
=== dandrader is now known as dandrader|lunch
anpokalf_: async page flips?16:12
alf_anpok: yes16:13
kgunnsil2100: so is the "fixed" papi in proposed image ?16:16
kgunnkdub_: ^16:16
sil2100kgunn: not yet... having problems with cmake-related things16:16
kdub_sil2100, is there a patch to try?16:18
=== greyback is now known as greyback|food
=== greyback|food is now known as greyback
anpokalf_: so the issue is that compositing might happen while the page flip is still scheduled, instead we should wait for the completion of the page flip during the first draw call17:33
alf_anpok: yes, that is, keep what we have now, I don't think the optimization Daniel describes will work properly17:34
anpokbut we dont have it at the next draw call, do we?17:35
alf_anpok: right now we schedule and wait for page flips before continuing17:45
=== alan_g is now known as alan_g|EOD
=== dandrader|lunch is now known as dandrader
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
dandraderis mir supposed to know anything or have any involvement with clipboard (copy/paste)?20:30

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!