[00:54] Uuuuuh. [00:54] Why is `origin/main` failing a bunch of tests on my machine today? [01:41] Ra raw! [01:42] Because I'm building with clang, and apparently something we do generates code that fails under clang. [01:59] Oh, no! [02:00] Even better! The tests only work if built with ld.bfd. [02:00] `ld.gold` fails to build (apparently `mir/common/symbols.map` confuses its parser). [02:01] Both `ld.lld` and `ld.mold` build, but then the tests fail 🤷‍♀️ [02:03] Are other people not building with one of the faster linkers? [02:03] I use ldd, I'm pretty sure [02:03] `mold` is a *full order of magnitude* faster than `ld.bfd` for a link-only build (6s rather than 60s). [02:04] But I don't generally run all the tests [02:07] Huh! [02:07] So, the difference is in symbol resolution. [02:08] `mold` and `lld` will both resolve `glCreateShader` and friends in `mir_acceptance_tests` to our GL stubs. [02:08] `ld.bfd` resolves them in `libGLESv2.so`. [02:10] So when `the_screen_shooter()` transitively calls `glCreateShader`, that aborts the tests when built with `mold` or `lld`, but raises an exception when built with `ld.bfd` which gets silently eaten. [02:11] (I mean, it gets logged with `severity::Error`, but that's silently eaten by the acceptance tests) [02:29] -GitHub[m]:#mir-server- **[MirServer/mir]** RAOF opened [issue #2452](https://github.com/MirServer/mir/issues/2452): Using non-`ld` linker results in broken tests... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/be55e25138e8f6b47e00748490de8e71743bb4fd) [08:06] -GitHub[m]:#mir-server- **[MirServer/mir]** RAOF opened [pull request #2453](https://github.com/MirServer/mir/pull/2453): mtf: Add mmap() interposer [08:06] -GitHub[m]:#mir-server- [08:06] -GitHub[m]:#mir-server- > The new Platform API tests need to add the ability of `MockDRM` to intercept `mmap()` calls. Take the existing `open()` interceptor, file off the serial numbers, and use it for `mmap()`, too. [11:06] alan_g hey, so, back to the performance tests… digging more into extracting renderers and resolutions… when running `Hosted*` under mir-kiosk / ubuntu-frame, that's actually 3 servers… `{mir-kiosk|ubuntu-frame}(mir_demo_server(mtf::AsyncServerRunner(test)))` [11:08] > alan_g hey, so, back to the performance tests… digging more into extracting renderers and resolutions… when running `Hosted*` under mir-kiosk / ubuntu-frame, that's actually 3 servers… `{mir-kiosk|ubuntu-frame}(mir_demo_server(mtf::AsyncServerRunner(test)))` [11:08] Yes [11:09] Any pointers on how to extract GL renderer and display mode from mtf::AsyncServerRunner? [11:10] I will parse logs for the outermost server, but for the test-driven servers I wanted to put those values into the result xml [11:14] AsyncServerRunner does recognise `--logging`, but I don't know if we pass it [11:15] We do, yeah, but then that just ends up on stderr [11:17] So the problem is that Frame and AsyncServerRunner outputs are interleaved on stdout/err? [11:22] No, outermost server logs are separate, but ASR's logs are interleaved with gtest output on std* [11:23] I suppose I can just monitor all of stderr in search for `GL renderer` and `Current mode:` [11:48] In other news, I added "Documentation: https://discourse.ubuntu.com/t/ubuntu-frame-osk-documentation/27568" to https://snapcraft.io/ubuntu-frame-osk. (I didn't find a better documentation link) [15:17] grayson-g there's also `weston-simple-touch` that may be easier to work through. But. You don't actually have a touch screen, do you? [15:17] Saviq: Besides my phone, I don't believe I have a touch screen in here. [15:24] alan_g got any pointers re: emulation of touch events? [15:35] > alan_g got any pointers re: emulation of touch events? [15:35] Sorry, no. What's the problem? [15:36] > <@alan_g:matrix.org> > alan_g got any pointers re: emulation of touch events? [15:36] > [15:36] > Sorry, no. What's the problem? [15:36] This is regarding testing of this PR https://github.com/MirServer/mir/pull/2299 [15:36] * This is regarding testing of this PR https://github.com/MirServer/mir/pull/2299 [Edit: I know it is incomplete, but if I need some way to test a working solution] [15:37] > This is regarding testing of this PR https://github.com/MirServer/mir/pull/2299 [15:37] You'd need a driver that misbehaves in the way described to test that IRL. Better to extract the logic and write a unit test [15:38] > <@alan_g:matrix.org> > This is regarding testing of this PR https://github.com/MirServer/mir/pull/2299 [15:38] > [15:38] > You'd need a driver that misbehaves in the way described to test that IRL. Better to extract the logic and write a unit test [15:38] Makes sense [15:43] grayson-g[m]: That, in part is what's blocked it all this time. We don't see the problem, and the new logic isn't tested. (And, I think, both old and new logic handle "garbage in" badly) [15:57] -GitHub[m]:#mir-server- **[MirServer/mir]** bors[bot] merged [pull request #2453](https://github.com/MirServer/mir/pull/2453): mtf: Add mmap() interposer [16:08] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths opened [issue #2454](https://github.com/MirServer/mir/issues/2454): Core dump after using OSK with Chromium... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/0f5a27188c3b87f25f8fa0f083599cc142cd153d) [16:43] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths assigned AlanGriffiths to [issue #2454](https://github.com/MirServer/mir/issues/2454): Core dump after using OSK with Chromium [16:43] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths added bug to [issue #2454](https://github.com/MirServer/mir/issues/2454): Core dump after using OSK with Chromium [16:49] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths opened [pull request #2455](https://github.com/MirServer/mir/pull/2455): Don't use delete in application logic... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/5c0bbafd6be8e872611207e4175b9b9cbfc11292) [16:50] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths requested a review from graysonguarino for [pull request #2455](https://github.com/MirServer/mir/pull/2455): Don't use delete in application logic [17:32] -GitHub[m]:#mir-server- **[MirServer/mir]** bors[bot] closed [issue #2454](https://github.com/MirServer/mir/issues/2454): Core dump after using OSK with Chromium [17:32] -GitHub[m]:#mir-server- **[MirServer/mir]** bors[bot] merged [pull request #2455](https://github.com/MirServer/mir/pull/2455): Don't use delete in application logic [23:15] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [issue #2456](https://github.com/MirServer/mir/issues/2456): X11 platform display configuration racy [23:15] -GitHub[m]:#mir-server- [23:15] -GitHub[m]:#mir-server- > We should only be making changes to `DisplayBuffer`, `gl::RenderTarget`, etc in `Display::configure()`, since references are held by the compositor and used on the compositor thread, but we make changes immediately when we notice them from X11 events. [23:18] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [issue #2457](https://github.com/MirServer/mir/issues/2457): Wayland platform display configuration racy [23:18] -GitHub[m]:#mir-server- [23:18] -GitHub[m]:#mir-server- > Like #2456, we should only be making changes to displays in `Display::configure()`. This one is potentially worse because if an underlying `wl_output` disappears we will destroy the display buffer, but it may continue to be rendered on, resulting in a use-after-free. [23:46] "alan_g got any pointers re..." <- grayson-g: If you need a set of real touch events to work from, I can provide a umockdev recording that will generate a seemingly-real touch stream. [23:46] RAOF: This would be helpful! [23:48] RAOF: The thought occurs that the *reporter* of that bug might be able to generate a trace of the broken driver's events! [23:49] I think there might also be an existing trace of a touch stream in `test_data`?