/srv/irclogs.ubuntu.com/2013/05/29/#ubuntu-mir.txt

robert_ancellthomi, RAOF, it appears the hang is due to a bunch of dmabuf fds being left open - seen that before?03:00
thomisounds similar to the last problem I had, buton the server side?03:01
robert_ancellthomi, yeah03:01
RAOFOh, this is server side? We test that they get closed client-side.03:01
robert_ancellRAOF, yeah, see bug 118518303:02
ubot5bug 1185183 in Mir "mir_demo_server hangs" [High,Triaged] https://launchpad.net/bugs/118518303:02
robert_ancellRAOF, where does the dmabuf stuff live in the codebase? Grep is not showing it - is it called something else?03:04
RAOFrobert_ancell: Yeah, grepping for "prime" should show it.03:09
robert_ancellRAOF, ta03:09
robert_ancellRAOF, which test are you referring to that checks the file descriptors for the client?03:31
robert_ancelloh, appears to be tests/unit-tests/client/gbm/test_gbm_client_buffer.cpp03:34
RAOFrobert_ancell: Correct. (Sorry for the delay, saucy might not be entirely stable today)04:31
robert_ancellI'm on saucy... could be impending doom for me?04:32
RAOFMaybe if you've got two monitors.04:37
RAOF(My system seems to like hangingish (possibly) when I've got two monitors enabled)04:37
thomihmmm, I'm on saucy with two monitors (sometimes three), and I haven't noticed anything today...05:00
robert_ancellRAOF, btw, do we have to revert the drm magic change?05:01
RAOFYes05:01
robert_ancell:(05:01
robert_ancellno way around it?05:01
RAOFNot without fairly invasive patches.05:02
RAOFie: we *could* add a MIR-DRI protocol to X that hands out drm fds, implement the mesa side, and have apps use that.05:03
RAOFThis seems like an awful lot of work when we could just have the drm magic API.05:04
alf__alan_g: any thoughts on/objections to moving rpc related code in client to client/rpc and mir::client::rpc namespace?09:07
alan_galf__: the client code has grown enough to need splitting into separate concerns.09:16
alf__alan_g: Agreed09:17
=== alan_g is now known as alan_g|tea
=== alan_g|tea is now known as alan_g
=== mmrazik is now known as mmrazik|lunch
alf__hikiko: @mir.fix-missing-virtual-destructors, the branch failed CI... (the unwritten rule is that you won't get any reviews until your branch passes CI)10:34
alf__hikiko: just a heads up :)10:34
hikiko:s10:41
alan_galf__: lttng problems? https://code.launchpad.net/~robertcarr/mir/input-lttng/+merge/166123/comments/36825810:41
hikikoI compiled it10:41
hikiko:s10:41
hikikoI just put back the destr. and removed the headers you told me nothing else10:42
hikikolet me check again10:42
* alan_g thinks http://www.codinghorror.com/blog/2007/03/the-works-on-my-machine-certification-program.html10:42
hikikoalf__, what is the error you get?10:44
hikikoi recompiled and got no failure10:45
alf__alan_g: @lttng, no, that's normal, if you use the lttng library with a program that uses forks etc you also need to LD_PRELOAD=liblttng-ust-fork.so. I don't think that's the problem racarr is having though, I think he just needs to ld_preload the mir tracepoint provider.10:45
alf__hikiko: check the failure logs from the MP10:46
alan_galf__: thanks - I misremembered the incantation. (and HACKING didn't help)10:47
=== tvoss is now known as tvoss|afk
=== mmrazik|lunch is now known as mmrazik
alf__mmrazik: Can we upgrade our VM CI builds to use raring? They are failing because they pull an old lttng-ust version with headers that have compilation problems with C++.11:03
mmrazikmhm... still building on quantal?11:03
mmrazikalf__: I'm on it11:03
alf__mmrazik: great, thanks11:03
alf__mmrazik: (probably VM autolanding, too)11:04
=== alan_g is now known as alan_g|afk
mmrazikalf__: done. I triggered a test build to see11:06
alf__mmrazik: thanks11:06
=== alan_g|afk is now known as alan_g
=== tvoss|afk is now known as tvoss
=== alan_g is now known as alan_g|lunch
=== mmrazik is now known as mmrazik|afk
kgunnreboot  to saucy (i hope)12:59
=== alan_g|lunch is now known as alan_g
=== mmrazik|afk is now known as mmrazik
racarrMorning13:50
alan_gAfternoon13:52
=== mzanetti is now known as mzanetti|food
=== mzanetti|food is now known as mzanetti
racarrcomments on input-lttng :) thanks for pointing out LD_PRELOAD alf/alan14:18
racarrneat stuff14:18
racarralan_g: What do you mean by "These don't gain by being inline" in reference eto d'tors in rebuild-input-targeting14:27
racarrdo they gain by being in implementation file?14:27
alf__racarr: Yes, pretty cool. Soon (by EOW) we should have client side tracepoints, too, so we will be able to get some very interesting measurements for both input and rpc.14:28
alan_gracarr: with an inline function the compiler needs to be ready to instantiate it in any TU that compiles the header. With it out of line it knows it only has to instantiate it in one TU.14:30
racarralf__: Excellent!14:30
alan_gSo, unless there is a reason to have functions inline, we put them out of line.14:30
racarralan_g: Hmm. ok14:30
alan_gracarr: I just mean there's no reason for them to be inline.14:31
racarrmm14:31
racarralan_g: Pushed some updates on rebuild-input-targeting14:33
racarrshare your fear about maybe we are breaking things now ;)14:33
racarrthis one is pretty simple...and we have some acceptance tests...but uh...I dunno14:34
racarrI want lots more input acceptance tests14:34
racarrtest_client_input.cpp is a little precarious now so I think once this branch lands I am going to spend some time14:34
racarrmaking a new InputTestFixture or something14:34
racarrand hopefully getting lots of input scenarios under test14:34
alan_gracarr: that should improve our confidence14:35
=== alan_g is now known as alan_g|tea
=== alan_g|tea is now known as alan_g
kdubgood morning, status, going to take another cleanup pass at the buffer swapper switcher algorithm, then mp. after that, maybe some performance measurements and writing an ipc message to signal performance hints to the server (like swapinterval 1/0, composition bypass)15:01
alf__status: refactoring client code to accommodate lttng reporting (and improve the client code in general)15:05
kdubalf__, yay :)15:05
alf__all: Enjoy the rest of your day!15:07
mzanettialf__: you too15:07
mzanetti:)15:07
alf__:)15:08
=== mmrazik is now known as mmrazik|afk
racarrTrying to find something for myself to do that doesn't conflict with my existing branches ><16:15
racarrI guess the blueprints say I am going to do client focus notifications before June so I can do that...it only conflicts a little16:16
racarris focus a surface attribute?16:19
racarrseems correct on the client side but incorrect on the server side16:19
alan_gracarr: are you starting the "attribute" vs "association" discussion again?16:24
racarralan_g: Not exactly.16:28
racarralan_g: In this case I am wondering, in a more literal sense whether to model focus as a MirSurfaceAttribute16:28
racarrbut I guess it is that discussion16:29
racarrin the current architecture to there is no clear way to deliver the "focus lost" events to the correct surface.16:29
racarrSo I am exploring refactorings, and it comes down to...(I think so far) to either16:30
racarrFocus becomes some sort of surface attribute (a MirSurfaceAttribute, some sort of token that is moved around, something)16:30
racarror start tracking surface focus in what is now the session manager, which I would try and split in to like16:30
racarrSessionManager->SessionStore, FocusArbitrator(Assosciator?)16:31
racarrI mean, two objects, not some sort of inheritance there16:31
racarrI'm also hung up on MirSurfaceEvent being part of MirEvent :p16:32
alan_gHow are you hung up?16:32
racarrTrying to decide, how I want to model the event...and it doesn't really fit (unless it becomes a surface attribute)16:32
racarrthe way I wanted to do it was16:32
racarrthe old MirEventDelegate16:32
racarrin addition to handle_event like it has now16:32
racarrerr like it had before it was removed16:33
racarrwould have grown methods like focus_received, focus_lost16:33
racarrattribute_changed, etc.16:34
racarrrather than an increasingly intricate MirEvent structure16:34
alan_gracarr: it is *soft*ware - you can change it if it doesn't fit current needs16:35
racarrHehe. I know.16:35
racarrI am just trying to figure out the boundary between my needs, and16:35
racarrmy attachment to certain aesthetics16:35
racarrwell strictly in this situation, I don't have any needs, the requirements do :p16:35
racarri.e. while I think it's clearer in my head through these focus_received/focus_lost delegates...that might just be because ive explored that model more16:36
alan_gracarr: there are 20min to EOD - you can drag me into a discussion or let me review your MPs. Your choice.16:37
racarralan_g: Please ignore me16:38
racarrXD16:38
racarrthanks for reviewing :)16:38
racarrsorry to be kind of scattered, just having trouble focusing (...*cymbal crash*) today.16:38
alan_gracarr: np - you can review my trivial tidy-up MPs when your focus gets lost.16:46
racarrIll check them out16:50
=== alan_g is now known as alan_g|dance
racarrGot some failing acceptance tests for client side focus notification. Lunch time!18:22
racarrBack19:17
racarrHmm ok half got client focus notifications working, finished the tests...the implementation difficulty20:09
racarris calling surface->configure before the SessionMediator::create_surface has returned20:09
racarris a magnificent failure20:09
racarri.e. an event is sent to the client for a surface which it has not yet been informed has been created20:09
racarrso I think I will need to create an EventSink which20:10
racarrcan buffer event streams or some such20:10
racarrhold event streams until ready?20:10
kdub_racarr, sounds kinda like20:11
kdub_our surface creation mechanism needs some rework then20:11
kdub_not sure how complicated that is ^_^20:12
kdub_i get lost in the weeds of mf::Surface, msh::Surface and ms::Surface sometimes too20:12
racarrMm... *thinking cap*20:19
* kdub_ keeps finding ways to improve the SwapperSwitcher20:22
racarrhmm20:29
racarrit's pretty easy to wrap the EventSink in SessionMediator20:29
racarrwith something that delays until the surface has been created20:29
racarrbut then that lives there...forever -.-20:30
racarrand you can futz with the interfaces some so it can rewire itself out or something but it just seems wrong.20:30
racarrI guess first there is a bit of a design decision20:31
racarrif a surface is created and focused when created20:31
racarrdo you receive a focused event?20:31
racarrMy initial thought was yes but it may be possible to simplify if no20:31
racarr...I guess20:34
racarrif a branch + a virtual function call is really an overhead in surface attribute changing IPC notification20:35
racarrsomeone can come back and find a different solution :p20:35
racarr"CloggedEventSink" I'm pretty happy about that20:37
robert_ancellthomi, tests working now?21:03
thomirobert_ancell: will check21:17
thomijust finishing my morning firefighting rounds21:18
kgunnkdub_: ping21:23
kdub_pong21:23
racarrIf anyone has time would appreciate another review on at least the InputDispatcher.cpp part of https://code.launchpad.net/~robertcarr/mir/rebuild-input-targeting21:36
thomirobert_ancell: got a second?21:40
robert_ancellyep21:40
thomirobert_ancell: the single threaded stress test now works, but something in either allocating or deallocating surfaces is not thread safe, and causes the server to bork21:40
robert_ancellthomi, bug/test-case?21:40
thomijust filing it now :)21:41
robert_ancellI'll have a look at it21:41
thomirobert_ancell: the short version is to grab lp:~thomir/+junk/mir-stress ; build; run ./mir-stress -t 2 -n 1021:41
thomirobert_ancell: bug filed: https://bugs.launchpad.net/mir/+bug/118558921:44
ubot5Launchpad bug 1185589 in Mir "Mir server crahes when allocating & freeing surfaces from multiple threads" [Undecided,New]21:44
robert_ancellthomi, hmm, I just get the test prog blocking forever and no problems in the server - are you using Mir trunk or the latest package from the PPA?21:49
racarrthomi: It's worth ruling out with --enable-input=false21:50
thomirobert_ancell: latest from ppa21:50
thomiracarr: that's on the server, right?21:50
robert_ancellthomi, saucy or raring?21:50
thomisaucy21:51
robert_ancellracarr, have you noticed some input tests failing when you run ./native-compile.sh a second time? It appears there might be some data files left over from a previous run, but I can't seem to find them21:51
thomiracarr: still happens with --enable-input=false21:51
thomirobert_ancell: will try and get some stacktrace goodness for you21:52
thomioh - mir_demo_server helpfully prints a stacktrace when it crashes21:52
thomilooks like it's a double-free21:53
thomiin mir::frontend::SessionMediator::create_surface21:53
thomi(that's me un-mangling the symbols in my head, so it might be a little off)21:53
racarrrobert_ancell: No I haven't... which tests? There are no files used afaik21:55
racarrThere are some weird things going on right now though. I see a weird intermittent build failure that I sometimes have to make clean for (something to do with DRM auth magic)21:56
racarrand acceptance tests spew "ERROR: Event parsed"21:56
racarrbecause somehow the client rpc report got switched to log by default or something21:56
robert_ancellracarr, I'll get a log now21:58
robert_ancellracarr, http://paste.ubuntu.com/5714864/22:00
robert_ancellracarr, I'm *fairly* sure if I clean and rebuild it will work fine. This is lp:mir trunk22:00
racarrrobert_ancell: Interesting22:04
racarrI will look in to it soon22:04
racarrno immediate ideas22:04
robert_ancellracarr, ok, ta22:04
racarrall the ERROR: Event parsed stuff is unrelated22:04
racarrand has to do with surface states22:04
racarrAlmost finished with client focus notification...22:05
racarrworking on testing the event stream blocking/unblocking in session mediator.22:05
thomirobert_ancell: crashes with lp:mir as well. For some reason gdb isn't playing ncely though22:13
racarrblah happy I made my acceptance test pass only to discover I am causing intermittent failures in BespokeDisplayServerTestFixture.server_can_shut_down_when_clients_are_blocked23:32
racarrhmm23:32
* kdub_ is singing in my head "this is the branch that never ends"23:39
racarraha someone was sneaky in mfd::SocketSession ::send23:40
racarrwhole_message is surprisingly not a locally scopped variable23:40
racarrand its a RACE23:41
thomirobert_ancell: I finally managed to get a sensible stack trace for you: https://launchpadlibrarian.net/141048607/gdb.txt23:49
thomiIs that illuminating at all?23:49
thomiactually, that one looks like it might be in the input handling stuff.. racarr ^^23:51
thomiand yet it crashes if I disable input as well, I wonder if the stack is the same23:51
thomiracarr: I think I must have mis-typed earlier, it seems it doesn't crash when I disable the input system23:53
racarrthomi: Oh that's good I was hoping it was my fault.23:56
thomierrr... ok23:56
thomiseems kind of masochistic, but OK23:56
racarrthomi: Ok that's either23:56
racarrwell23:57
racarrit's either corruption somewhere else23:57
racarror...fd exhaustion?23:57
racarrbecause this is about23:57
racarrsocketpair failing23:57
thomiit is?23:57
thomiI didn't look up the failing assertion yet23:57
racarrthomi: Check out 3rd_party/android-input/android/frameworks/base/services/input/InputTransport.cpp23:58
racarrok so it's not socketpair failing.23:58
racarrits the fcntl O_NONBLOCK23:58
racarrfailing23:59
racarrOk23:59
racarrI think I know what it is23:59
thomioh?23:59

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