Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quaternion: 0.0.9.2 -> 0.0.9.3 #49318

Merged
merged 1 commit into from Dec 13, 2018

Conversation

thefloweringash
Copy link
Member

Motivation for this change

Package update

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Fits CONTRIBUTING.md.

@thefloweringash thefloweringash changed the title quaternion: 0.0.9.2 -> 0.0.9.3 [WIP] quaternion: 0.0.9.2 -> 0.0.9.3 Oct 28, 2018
@thefloweringash
Copy link
Member Author

thefloweringash commented Oct 28, 2018

Sent this off without checking the dynamic external library stuff was actually working. Oops. Let me look at that.

It seems to be working. 👍

@thefloweringash thefloweringash changed the title [WIP] quaternion: 0.0.9.2 -> 0.0.9.3 quaternion: 0.0.9.2 -> 0.0.9.3 Oct 28, 2018
@xeji
Copy link
Contributor

xeji commented Oct 29, 2018

@GrahamcOfBorg build quaternion

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: quaternion

Partial log (click to expand)

post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3
shrinking /nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3/bin/quaternion
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3/bin
patching script interpreter paths in /nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3
checking for references to /build in /nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3...
postPatchMkspecs
postPatchMkspecs
/nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3

@xeji
Copy link
Contributor

xeji commented Oct 29, 2018

cc maintainer @peterhoeg

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: quaternion

Partial log (click to expand)

post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/nmg0nhg7lh7n1bk2w2gyhbighfyf82y8-quaternion-0.0.9.3
shrinking /nix/store/nmg0nhg7lh7n1bk2w2gyhbighfyf82y8-quaternion-0.0.9.3/bin/quaternion
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/nmg0nhg7lh7n1bk2w2gyhbighfyf82y8-quaternion-0.0.9.3/bin
patching script interpreter paths in /nix/store/nmg0nhg7lh7n1bk2w2gyhbighfyf82y8-quaternion-0.0.9.3
checking for references to /build in /nix/store/nmg0nhg7lh7n1bk2w2gyhbighfyf82y8-quaternion-0.0.9.3...
postPatchMkspecs
postPatchMkspecs
/nix/store/nmg0nhg7lh7n1bk2w2gyhbighfyf82y8-quaternion-0.0.9.3

@GrahamcOfBorg
Copy link

Success on x86_64-darwin (full log)

Attempted: quaternion

Partial log (click to expand)

-- Installing: /nix/store/2da86dc8y15d8ahlxkig42vc8yx85565-quaternion-0.0.9.3/bin/quaternion.app/Contents
-- Installing: /nix/store/2da86dc8y15d8ahlxkig42vc8yx85565-quaternion-0.0.9.3/bin/quaternion.app/Contents/Info.plist
-- Installing: /nix/store/2da86dc8y15d8ahlxkig42vc8yx85565-quaternion-0.0.9.3/bin/quaternion.app/Contents/MacOS
-- Installing: /nix/store/2da86dc8y15d8ahlxkig42vc8yx85565-quaternion-0.0.9.3/bin/quaternion.app/Contents/MacOS/quaternion
post-installation fixup
strip is /nix/store/g5r4apl0za012ffs6ladinwa5w0m1l3k-cctools-binutils-darwin/bin/strip
patching script interpreter paths in /nix/store/2da86dc8y15d8ahlxkig42vc8yx85565-quaternion-0.0.9.3
postPatchMkspecs
postPatchMkspecs
/nix/store/2da86dc8y15d8ahlxkig42vc8yx85565-quaternion-0.0.9.3

@peterhoeg
Copy link
Member

So this ran properly for you with libqmatrixclient 0.4.0? I kept getting segfaults.

@thefloweringash
Copy link
Member Author

I saw some segfaults in my initial testing, but currently can't reproduce. Digging them out of coredumpctl shows the following:

Thread 1 (Thread 0x7f146361d780 (LWP 18516)):
#0  0x00007f1460026be0 in raise () from /nix/store/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/libc.so.6
#1  0x00007f1460027dc1 in abort () from /nix/store/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/libc.so.6
#2  0x00007f1460d604eb in QMessageLogger::fatal(char const*, ...) const () from /nix/store/lfxkhh1nnxvkdjmznwb1irdvxivsakam-qtbase-5.11.1/lib/libQt5Core.so.5
#3  0x00007f144d0beeac in ?? () from /nix/store/hihhjc4lpibcpd95p8dbr31wlfbgmx76-qtbase-5.11.1-bin/lib/qt-5.11/plugins/xcbglintegrations/libqxcb-glx-integration.so
#4  0x00007f144d0bc317 in ?? () from /nix/store/hihhjc4lpibcpd95p8dbr31wlfbgmx76-qtbase-5.11.1-bin/lib/qt-5.11/plugins/xcbglintegrations/libqxcb-glx-integration.so
#5  0x00007f1452684db1 in QXcbIntegration::createPlatformOpenGLContext(QOpenGLContext*) const ()
   from /nix/store/hihhjc4lpibcpd95p8dbr31wlfbgmx76-qtbase-5.11.1-bin/lib/qt-5.11/plugins/platforms/../../../../../lfxkhh1nnxvkdjmznwb1irdvxivsakam-qtbase-5.11.1/lib/libQt5XcbQpa.so.5
#6  0x00007f14618d2d1f in QOpenGLContext::create() () from /nix/store/lfxkhh1nnxvkdjmznwb1irdvxivsakam-qtbase-5.11.1/lib/libQt5Gui.so.5
#7  0x00007f144d0bf6d0 in ?? () from /nix/store/hihhjc4lpibcpd95p8dbr31wlfbgmx76-qtbase-5.11.1-bin/lib/qt-5.11/plugins/xcbglintegrations/libqxcb-glx-integration.so
#8  0x00007f144d0bfd19 in ?? () from /nix/store/hihhjc4lpibcpd95p8dbr31wlfbgmx76-qtbase-5.11.1-bin/lib/qt-5.11/plugins/xcbglintegrations/libqxcb-glx-integration.so
#9  0x00007f14626c86a5 in QSGRenderLoop::instance() () from /nix/store/1b4wlsgsvbp9v735sf6v7hlk3iyf3c23-qtdeclarative-5.11.1/lib/libQt5Quick.so.5
#10 0x00007f146273a20a in QQuickWindowPrivate::init(QQuickWindow*, QQuickRenderControl*) () from /nix/store/1b4wlsgsvbp9v735sf6v7hlk3iyf3c23-qtdeclarative-5.11.1/lib/libQt5Quick.so.5
#11 0x00007f14627cb3cd in QQuickView::QQuickView(QWindow*) () from /nix/store/1b4wlsgsvbp9v735sf6v7hlk3iyf3c23-qtdeclarative-5.11.1/lib/libQt5Quick.so.5
#12 0x00000000004a06c6 in ChatRoomWidget::ChatRoomWidget(QWidget*) ()
#13 0x000000000048cb1f in MainWindow::MainWindow() ()
#14 0x000000000046edd5 in main ()

Since it looks like a general Qt setup problem, I put it down to Qt being weird on NixOS.

Keep in mind since it's a Qt package, it does have to be installed to work properly, if you don't, you get warnings about:

Rendering QML with QQuickView
qrc:/qml/Timeline.qml:3:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/Timeline.qml: module "QtQuick" is not installed
qrc:/qml/Timeline.qml:1:1: module "QtQuick" is not installed
qrc:/qml/Timeline.qml:4:1: module "QtQuick.Layouts" is not installed
qrc:/qml/Timeline.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/Timeline.qml:3:1: module "QtQuick.Controls.Styles" is not installed

@thefloweringash
Copy link
Member Author

My segfaults are entirely about making GLX go, are likely caused by X forwarding, and they disappear if I run with QT_XCB_GL_INTEGRATION=none.

I kept getting segfaults.

What kind of segfaults were you seeing: on startup or during longer term use of the application? I haven't used it heavily, but it is able to send and receive messages.

@peterhoeg
Copy link
Member

@thefloweringash, I just get an immediate segfault with and without QT_XCB_GL_INTEGRATION=none:

peter@mildred:~ $ quaternion
Rendering QML with QQuickView
[1]    4230 segmentation fault (core dumped)  quaternion

coredumpctl -1 debug doesn't really reveal anything as I have truncated coredumps for some reason:

BFD: warning: /tmp/1000/coredump-ElQn6b is truncated: expected core file size >= 65007616, found: 32768000
[New LWP 9904]
[New LWP 9899]
[New LWP 9901]
[New LWP 9900]
[New LWP 9903]
[New LWP 9902]
Cannot access memory at address 0x7f2a0500d0e8
Cannot access memory at address 0x7f2a0500d0e0
Failed to read a valid object file image from memory.
Core was generated by `quaternion'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f2a03a0e5ba in ?? ()
[Current thread is 1 (LWP 9904)]
(gdb)

@thefloweringash
Copy link
Member Author

thefloweringash commented Nov 5, 2018

I don't suppose you could run quaternion under a debugger to extract a backtrace?

I wrote a simple test case to be a middle-ground between our environments, which results in this screenshot: screen

Test case:
import ./make-test.nix ({ pkgs, ...} : {
  name = "quaternion";

  machine =
    { pkgs, ... }: {
      imports = [ ./common/x11.nix ];
      environment.systemPackages = [ pkgs.quaternion ];
    };

  testScript =
    ''
      $machine->waitForX;

      $machine->execute("quaternion &");
      $machine->waitForWindow(qr/Login/);
      $machine->sendKeys('esc'); # dismiss login window

      # wait for focus to return to main window
      $machine->sleep(5);

      $machine->sendKeys('alt-h', 'a'); # open about screen
      $machine->waitForWindow(qr/^About/);
      $machine->sleep(1); # let the about screen render

      $machine->screenshot("screen");
    '';
})

@Mic92
Copy link
Member

Mic92 commented Nov 5, 2018

@peterhoeg you could still try type bt in this window for the backtrace.

@peterhoeg
Copy link
Member

Here you go:

[Switching to Thread 0x7fffcb2a8700 (LWP 30491)]                                                                                             [3/57]
0x00007ffff69ff5ba in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
(gdb) bt
#0  0x00007ffff69ff5ba in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#1  0x00007ffff6a021d4 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#2  0x00007ffff6a0236d in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#3  0x00007ffff69fda47 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#4  0x00007ffff6b32993 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#5  0x00007ffff6b391bd in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#6  0x00007ffff6b306ec in QQmlDataBlob::tryDone() () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#7  0x00007ffff6b3094e in QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#8  0x00007ffff6b3119a in QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#9  0x00007ffff6b320bb in QQmlTypeLoader::loadThread(QQmlDataBlob*) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#10 0x00007ffff6b4428c in void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#11 0x00007ffff6b32266 in QQmlTypeLoader::load(QQmlDataBlob*, QQmlTypeLoader::Mode) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#12 0x00007ffff6b33c00 in QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#13 0x00007ffff6b360f0 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#14 0x00007ffff6b36499 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#15 0x00007ffff6b309f9 in QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#16 0x00007ffff6b3119a in QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#17 0x00007ffff6b320bb in QQmlTypeLoader::loadThread(QQmlDataBlob*) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#18 0x00007ffff6b4428c in void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#19 0x00007ffff6b32266 in QQmlTypeLoader::load(QQmlDataBlob*, QQmlTypeLoader::Mode) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#20 0x00007ffff6b33c00 in QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#21 0x00007ffff6b360f0 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#22 0x00007ffff6b36499 in ?? () from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#23 0x00007ffff6b309f9 in QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#24 0x00007ffff6b3119a in QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) ()
   from /nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1/lib/libQt5Qml.so.5
#25 0x00007ffff6b320bb in QQmlTypeLoader::loadThread(QQmlDataBlob*) ()


@peterhoeg
Copy link
Member

you could still try type bt in this window for the backtrace.

I actually did try that with the truncated coredump but it was useless. Running it under gdb as @thefloweringash suggested seems to be of more use.

@thefloweringash
Copy link
Member Author

The main difference I see is that the dependencies as of this PR are:

/nix/store/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27
/nix/store/3v5r7fkrbkw2qajadvjbf6p6qriz9p1i-gcc-7.3.0-lib
/nix/store/lfxkhh1nnxvkdjmznwb1irdvxivsakam-qtbase-5.11.1
/nix/store/1b4wlsgsvbp9v735sf6v7hlk3iyf3c23-qtdeclarative-5.11.1
/nix/store/hihhjc4lpibcpd95p8dbr31wlfbgmx76-qtbase-5.11.1-bin
/nix/store/xmwy7bml6fwri29vj98hzcc6395g8s2z-qtsvg-5.11.1-bin
/nix/store/xmqimr3wd07nk2cmbzx3xn7n2phkimwl-qtdeclarative-5.11.1-bin
/nix/store/f5qk5a2a6nydq4q6ig2d6awai3dg5mnk-qtquickcontrols-5.11.1
/nix/store/zcym9hymp277hqagv7siwzx92734vbdb-quaternion-0.0.9.3

But your stack trace above includes:

/nix/store/b9hcxdqrrf931d41553xzqwjbc77g6ns-qtdeclarative-5.11.1

@peterhoeg
Copy link
Member

Are you using 18.09 or unstable?

@thefloweringash
Copy link
Member Author

The machines I'm using to test this on are on 18.09.

@Mic92
Copy link
Member

Mic92 commented Nov 10, 2018

@peterhoeg it might have loaded the wrong qt from your nix profile.

@worldofpeace
Copy link
Contributor

@peterhoeg Can you test this again, now that it's been a bit?

I can't reproduce this segfault. I've built it locally(on unstable) and installed it with nix-env.
I'm using (essentially) gnome3.

@worldofpeace
Copy link
Contributor

This currently fails to build on master https://hydra.nixos.org/build/85615374.
Tested locally and this bump fixes it so I'm going for the merge.

@worldofpeace worldofpeace merged commit b0dc7bc into NixOS:master Dec 13, 2018
@thefloweringash thefloweringash deleted the quaternion-update branch May 1, 2019 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants