/srv/irclogs.ubuntu.com/2014/05/08/#ubuntu-mir.txt

kgunnRAOF: good point...01:23
=== chihchun_afk is now known as chihchun
RAOFMah, memcheck tests. Why take so long, do you?05:02
duflu<memcheck> Because I have to virtualize every memory access as well as instructions :)05:07
RAOFAnd there we go. When you don't branch on uninitialised values, the memcheck tests pass. Astounding!05:50
racarr__Sure but if you dont branch on unitialized values then what fun is left in coding.05:51
* duflu writes that down05:51
racarr__lol05:51
dufluI thought that if non-determinism works for the wider universe it must be the right way to code05:51
alf_duflu: it does if you can the select the resulting reality that you prefer ;)06:07
duflualf_: Ah. So I'm running it on the wrong platform. Requires multiverse06:08
alf_lol06:08
racarr__Morning alf :)06:13
alf_racarr__: Good night :)06:14
racarr__aha any minute now...06:15
racarr__debugging a chromium crash while I wait for the daily show to appear...on...my legal video streaming site *nods*06:16
racarr__actually right now im just waiting for GDB to load symbols...06:16
racarr__THEN sleep06:16
* RAOF should really file a bug about gdb SIGSEGVing everytime I try to dereference a shared_ptr<>06:19
racarr__I think our button events06:22
racarr__could be improved06:22
racarr__the thing is you get "current button state"06:22
racarr__plus is this an up or down event06:22
racarr__so everyone has to keep track of06:23
racarr__button states06:23
racarr__well in particular, what X and chromium want is "this button up/down" not "new button state"06:23
racarr__so the adapter layer has to keep track of button state06:23
racarr__and06:23
racarr__we only have a few buttons and06:23
racarr__its a disaster of a button event.06:24
racarr__lol that was un fair...but it does have room for improvement ;)06:43
RAOFracarr__: I think that all our events need to have some pretty drastic surgery done on them.07:13
anpokyes07:14
RAOFThey manage to be simultaneously verbose and not expressive enough.07:14
anpokand not capturing everything needed07:15
RAOFRight (not expressive enough)07:15
anpokoh07:15
anpokmeant expressive in terms of making clear what is going on -> hint: MirEvent.motion.action & FunkyMask07:15
RAOFOh, that too.07:17
RAOFHm. What happened to lp:mir/devel r1544.52.1?07:17
RAOFSpecifically, why can't I list its history?07:17
alf_duflu: alan_g: @1317370, is this under valgrind?08:02
alan_galf_: no08:02
duflualan_g: Might be a better idea to leave more specific bugs open and fix them individually. The older one would take more effort to resolve entirely. Also 1317370 is only new in v0.2.008:05
alf_duflu: on what hardward does it take 10 seconds?08:06
alan_gduflu: I wouldn't object to that provided there are adequate cross-references08:06
duflualf_: Haswell i7 quad core desktop :)08:06
dufluup to 20 seconds08:06
alf_duflu: hmm, on my i5 laptop it takes 3-4 max08:07
dufluWeird. Lemme check if it's a side-effect of previous ones08:07
alan_gI've seen a lot of variation in the time for that one08:07
dufluThat's a bit curious that variation08:08
* alan_g is suspicious of "unit" tests that take more than milliseconds08:11
duflualf_: Yes it happens in isolation too. Up to 25.5 sec08:12
dufluOnly that test BufferQueueTest.compositor_never_owns_client_buffers08:13
alf_duflu: alan_g: actually, for me, the whole BufferQueue test suite takes 3-4 secs, BufferQueueTest.compositor_never_owns_client_buffers takes about 150ms...08:13
duflualf_: Maybe you need more speed to make it race or something?08:14
alf_alan_g: can you reproduce the slow test runtime?08:15
alf_anpok: ^^ ?08:15
anpok10 secs to 15 secs08:15
duflualf_: It's not a big deal. If it's just me I'll look into it later08:15
alf_anpok: what hardware?08:15
alf_duflu: I am just curious about the difference...08:16
dufluSounds like a race. But I'm exercising discipline and not looking into it myself08:16
alf_duflu: hmm, my test builds are not optimized I see, let me try with "Release"08:16
anpoki7 quad core .. 475008:16
duflui7-4770 does it too08:17
anpokthe BufferQueueTest.stress test usually takes about 2.6 seconds08:17
alf_anpok: is 10-15 seconds the time for the whole BufferQueueTest.* run or just for BufferQueueTest.compositor_never_owns_client_buffers ?08:18
alan_gRunning repeatedly I got:08:18
alan_gterminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::logic_error> >'08:18
alan_g  what():  unexpected release: buffer was not given to compositor08:18
anpokjust for the never_owns_client_buffers08:18
anpokbut 15 secs is like the rare max .. and 10 is the avarage08:18
alan_gSuggests there's racy code08:19
duflualan_g: Yeah, never look too hard. You'll always find more bugs08:19
alan_gYep08:19
dufluand helgrind says?... surely something helpful08:20
dufluBut I must look away for now08:20
anpokhm there were some intersting talks about haswells performance and compiler optimizations in going native 201308:23
anpokrelease binary is wors08:24
anpoke08:24
anpok30 seconds08:24
anpokand 38s ..08:25
anpokenough testing bbiab08:25
* alan_g puts on list to look at later // gives other people the chance to look first and save me from it08:31
duflualan_g: I'm working roughly in the same area. Notice this reference looks racy (potentially used unlocked):08:37
duflu    auto const& acquired_buffer = buffer_for(current_compositor_buffer, buffers);08:37
duflu    if (buffer_to_release)08:37
duflu        release(buffer_to_release, std::move(lock));08:37
duflu    return acquired_buffer;08:37
dufluThat would result in the exception you saw, I think08:37
alan_gduflu: that is plausible (needs testing of course)08:39
dufluHah. One of those days when the algorithm was right first time and it took me hours to understand the problem thereafter08:52
=== irsol_ is now known as irsol
=== alan_g is now known as alan_g|lunch
anpokalan_g|lunch: yup it worked.13:01
=== alan_g|lunch is now known as alan_g
alan_ganpok: I like it when we can fix overcomplicated code. \o/13:02
anpokme too13:02
anpokhm if no test needs a stub header..13:24
anpokshould it exist then13:24
anpokor is it a warning sign that we are lacking a test13:24
alan_ganpok: or both?13:49
alan_ganpok: re-reviewed. Just nits to fix AFAICS13:50
kgunnalf__: ok, i feel goofy...i'm doing something wrong, i flashed a fresh image, installed glmark2 debs (manually) from staging ppa, did 'stop unity8', made mir socket 777 and ran glmark2-es2-mir...but got "Couldn't connect to the Mir display server"13:54
kgunnjust tried with sudo and got "Failed to create Mir surface!"13:56
alf__kgunn: let me try13:57
alf__kgunn: so devel-proposed?13:58
kgunnalf__: yep13:58
alan_gkgunn: Tried setting $MIR_SERVER to the endpoint? (No need for sudo for it to be the same then)13:59
alan_gOh, and starting the Mir server. ;)14:00
* alan_g is being nagged to reboot. BRB14:08
kgunnalf__: ah-ha...i think the screen was blanked14:13
kgunnworking now14:14
alf__kgunn: :)14:14
AlbertAmterry: ping14:15
mterryAlbertA, hello14:16
AlbertAmterry: got a question for the split greeter14:16
AlbertAmterry: does it only require global alpha support? not per-pixel?14:16
=== alan_g is now known as alan_g|tea
AlbertAmterry: I would assume global only (i.e. surface->alpha())14:17
mterryAlbertA, I'm not sure I follow the question, but it has it's background be full alpha, then it has a sliding screen on top of that14:17
AlbertAmterry: ok so the other session shows through as the screen slides?14:19
mterryAlbertA, exactly14:19
AlbertAmterry: ok thanks!14:20
AlbertAmterry: so right now the surface it uses is fullscreen with transparent background?14:22
mterryAlbertA, yeah14:22
AlbertAmterry: ok... just trying to figure out how to fix the mir GLRenderer14:23
=== alan_g|tea is now known as alan_g
alf__alan_g: any more thoughts on main-loop-post-actions?14:32
alan_galf__: not yet.14:32
alf__alan_g: ok14:32
alan_gI'll take another look before standup14:33
alf__alan_g: thanks14:38
alan_gdednick: does this have everything you need from it? https://code.launchpad.net/~alan-griffiths/mir/spike-passing-out-client-fds/+merge/21862914:40
=== dandrader is now known as dandrader|afk
alan_galf__: done. Are you happy with passing-out-client-fds now?14:59
anpokalan_g: all addressed - apart from compositor::Scene15:01
alf__alan_g: yes, approved15:01
=== dandrader|afk is now known as dandrader
dednickalan_g: seems to. i'm just trying it out now with my branch; but i'm having some linking issues15:16
dednickterminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >'15:16
dednick  what():  /usr/lib/arm-linux-gnueabihf/mir/platformgraphics/android/libmirplatformgraphics.so: undefined symbol: _ZN3mir8graphics9GLProgramD1Ev15:16
alan_gdednick: that *sounds* like a problem AlbertA fixed on devel yesterday.15:17
alan_gYou ought to be able to "cherry pick"15:17
alan_gIt's -r 1609 on devel15:18
dednickalan_g: ah. ok, i'll take a look15:23
alan_gdednick: if it helps I've just sync'd the branch with devel.15:32
dednickalan_g: got it working thanks15:33
dednickalan_g: could probably do with a rpc report for new_fds_for_trusted_clients15:36
dednickalan_g: as the one i asked for in the client is returning fd=0 which sounds a bit dubious.15:37
alan_gdednick: hmm15:37
dednickalan_g: it's probably my code15:37
=== chihchun is now known as chihchun_afk
alan_gdednick: sorry (got distracted)16:13
alan_g$ MIR_CLIENT_RPC_REPORT=log bin/mir_acceptance_tests --gtest_filter=TrustSessionHelper.gets_fds_for_trusted_clients16:13
alan_g...16:13
alan_g[1399565480.978169] (DD) rpc: File descriptors received: 24 25 2616:13
alan_g...16:13
alan_gLooks sane to me16:13
dednickalan_g: hm. ok. is it normal that they're always the same when i run an app?16:27
dednickno idea how it works16:28
alan_gwell, typically fds are allocated in numerical order16:28
alan_gWithin the process that is16:28
alan_gSo if you your clients always have the same number of files open when you run you'll see the same number16:29
dednickalan_g: but if they're the same accoss clients, then how does another client connect to the fd?16:44
alan_gdednick: child processes inherit their environment from the parent. Including (with various provisos) FDs16:45
dednickalan_g: ah. ok16:45
dednickalan_g: when i call new_fds_for_trusted_clients, i get a SessionAuthorizer::connection_is_allowed for the mir server process.16:49
alan_gdednick: that's decribed in bug 131457416:50
ubot5bug 1314574 in Mir "The client process is identified when the socket connects, not when the client connects to Mir" [Undecided,New] https://launchpad.net/bugs/131457416:50
dednickah. i thought it would be the process that created the socket.16:50
alan_gWhich reminds me to update the status (as I've started on it)16:50
alan_gdednick: it is the process that created the socket16:51
alan_gThe socket is created on the server and then migrated to the trust helper and inherited by the client16:52
alan_gReally simple if you don't think about it. ;^)16:52
dednickpresumably i have to authorise the session though :)16:52
dednicks/session/connection16:53
alan_gyes. And (until I fix the bug) that pid will get propagated to the session too.16:54
alan_gdednick: I'm getting to EOD - is there anything more you need?16:59
dednickalan_g: think i'm good for now thanks17:00
=== alan_g is now known as alan_g|EOD
anpokalf__: hm wrt WaitObject WatchDog ..17:05
anpokwhen I remove the WaitObject parts from WatchDog.. can I still call it WatchDog?17:06
anpokor is WatchDog IS A WaitObject the solution hmm17:06
=== dandrader is now known as dandrader|lunch
AlbertAanpok: there are some cases where you can just use auto_unblock_thread instead of watchdog17:07
AlbertAanpok: RAOF said they were equivalent: https://code.launchpad.net/~albaguirre/mir/cleanup-switching-bundle-unit-tests/+merge/217534/comments/51749517:10
AlbertAanpok: so perhaps just change it to AutoUnblockThread and/or AutoJoinThread instead?17:11
anpokack17:14
=== dandrader|lunch is now known as dandrader
dandraderare there environment variables to enable debug logging on a mir client?19:17
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
RAOFanpok: I'm removing WatchDog from the 1Hz-rendering branch.23:43

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