Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
Control: forwarded -1 https://github.com/equalsraf/neovim-qt/issues/289 On Fri, Jun 02, 2017 at 07:27:36PM -0400, James McCoy wrote: > On Fri, Jun 02, 2017 at 05:39:34PM -0400, Aaron M. Ucko wrote: > > "Aaron M. Ucko"writes: > > > > Thanks for looking into this bug. neovim-qt now builds successfully on > > kfreebsd-amd64, but still fails on kfreebsd-i386, with nearly the same > > error; per > > https://buildd.debian.org/status/fetch.php?pkg=neovim-qt=kfreebsd-i386=0.2.7-1=1496290825=0 > > the only difference is that > > > > > FAIL! : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' > > > returned FALSE. () > > > Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)] > > > > has changed to > > > > FAIL! : NeovimQt::Test::connectToNeovimTCP() Compared values are not > > the same > >Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(65)] > > Yeah, this is a separate failure. I'll look into it. Full details on my investigation are in the upstream bug report. The short version is, it seems like Qt's non-blocking socket handling isn't reacting to EINPROGRESS properly all the time on kFreeBSD. Cheers, -- James GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7 2D23 DFE6 91AE 331B A3DB
Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
On Fri, Jun 02, 2017 at 05:39:34PM -0400, Aaron M. Ucko wrote: > "Aaron M. Ucko"writes: > > Thanks for looking into this bug. neovim-qt now builds successfully on > kfreebsd-amd64, but still fails on kfreebsd-i386, with nearly the same > error; per > https://buildd.debian.org/status/fetch.php?pkg=neovim-qt=kfreebsd-i386=0.2.7-1=1496290825=0 > the only difference is that > > > FAIL! : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned > > FALSE. () > > Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)] > > has changed to > > FAIL! : NeovimQt::Test::connectToNeovimTCP() Compared values are not the > same >Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(65)] Yeah, this is a separate failure. I'll look into it. Cheers, -- James GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7 2D23 DFE6 91AE 331B A3DB
Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
notfixed 845685 0.2.7-1 found 845685 0.2.7-1 thanks "Aaron M. Ucko"writes: Thanks for looking into this bug. neovim-qt now builds successfully on kfreebsd-amd64, but still fails on kfreebsd-i386, with nearly the same error; per https://buildd.debian.org/status/fetch.php?pkg=neovim-qt=kfreebsd-i386=0.2.7-1=1496290825=0 the only difference is that > FAIL! : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned > FALSE. () > Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)] has changed to FAIL! : NeovimQt::Test::connectToNeovimTCP() Compared values are not the same Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(65)] Could you please take another look? Thanks! -- Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org) http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu
Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
On Thu, Dec 15, 2016 at 11:03:40PM -0500, Aaron M. Ucko wrote: > James McCoywrites: > > > As far as I can tell, what's happening is the async network connection > > that's started by the connectToNeovim call has already errored out by > > the time the onError SPY is created. The test then times out waiting > > for the error to occur. > > That's an unfortunate design. Perhaps you could compensate by > conditionalizing the SPYWAIT line on > > c->errorCause() != NeovimConnector::NoError Looks like that does help. The code is still racy, but that does get the test to pass. Cheers, -- James GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7 2D23 DFE6 91AE 331B A3DB
Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
James McCoywrites: > As far as I can tell, what's happening is the async network connection > that's started by the connectToNeovim call has already errored out by > the time the onError SPY is created. The test then times out waiting > for the error to occur. That's an unfortunate design. Perhaps you could compensate by conditionalizing the SPYWAIT line on c->errorCause() != NeovimConnector::NoError ? -- Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org) http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu
Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
On Fri, Nov 25, 2016 at 03:24:23PM -0500, Aaron M. Ucko wrote: > The kFreeBSD build of neovim-qt failed: > > Start 2: tst_neovimconnector >2/12 Test #2: tst_neovimconnector ..***Failed 15.12 sec > * Start testing of NeovimQt::Test * > Config: Using QtTest library 5.7.1, Qt 5.7.1 (x86_64-little_endian-lp64 > shared (dynamic) release build; by GCC 6.2.0 20161109) > PASS : NeovimQt::Test::initTestCase() > QWARN : NeovimQt::Test::reconnect() MsgpackIO fatal error "IO device needs > to be sequential" > PASS : NeovimQt::Test::reconnect() > QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array > vim_get_api_info()" > QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array > vim_get_api_info()" > QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array > vim_get_api_info()" > PASS : NeovimQt::Test::isReady() > QWARN : NeovimQt::Test::encodeDecode() Encoding String into > MsgpackIODevice without an encoding (defaulting to utf8) > QWARN : NeovimQt::Test::encodeDecode() Decoding String from > MsgpackIODevice without an encoding (defaulting to utf8) > QDEBUG : NeovimQt::Test::encodeDecode() Unknown Neovim function "Array > vim_get_api_info()" > PASS : NeovimQt::Test::encodeDecode() > FAIL! : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned > FALSE. () > Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)] I did look into this, and have an idea of what the problem is. However, I'm not sure what the right way to fix it is. The test in question is: void connectToNeovimTCP() { // These 2 cases WILL FAIL because there is no Neovim instance running NeovimConnector *c = NeovimConnector::connectToNeovim("127.0.0.1:64999"); QCOMPARE(c->connectionType(), NeovimConnector::HostConnection); QSignalSpy onError(c, SIGNAL(error(NeovimError))); QVERIFY(onError.isValid()); QVERIFY(SPYWAIT(onError)); QCOMPARE(c->errorCause(), NeovimConnector::SocketError); c->deleteLater(); } As far as I can tell, what's happening is the async network connection that's started by the connectToNeovim call has already errored out by the time the onError SPY is created. The test then times out waiting for the error to occur. I've mentioned this to upstream, but they haven't been very active lately. Cheers, -- James GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7 2D23 DFE6 91AE 331B A3DB
Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails
Source: neovim-qt Version: 0.2.4-1 Severity: important Justification: fails to build from source The kFreeBSD build of neovim-qt failed: Start 2: tst_neovimconnector 2/12 Test #2: tst_neovimconnector ..***Failed 15.12 sec * Start testing of NeovimQt::Test * Config: Using QtTest library 5.7.1, Qt 5.7.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 6.2.0 20161109) PASS : NeovimQt::Test::initTestCase() QWARN : NeovimQt::Test::reconnect() MsgpackIO fatal error "IO device needs to be sequential" PASS : NeovimQt::Test::reconnect() QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array vim_get_api_info()" QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array vim_get_api_info()" QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array vim_get_api_info()" PASS : NeovimQt::Test::isReady() QWARN : NeovimQt::Test::encodeDecode() Encoding String into MsgpackIODevice without an encoding (defaulting to utf8) QWARN : NeovimQt::Test::encodeDecode() Decoding String from MsgpackIODevice without an encoding (defaulting to utf8) QDEBUG : NeovimQt::Test::encodeDecode() Unknown Neovim function "Array vim_get_api_info()" PASS : NeovimQt::Test::encodeDecode() FAIL! : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned FALSE. () Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)] QWARN : NeovimQt::Test::connectToNeovimSocket() Neovim fatal error "QLocalSocket::connectToServer: Invalid name" PASS : NeovimQt::Test::connectToNeovimSocket() QDEBUG : NeovimQt::Test::connectToNeovimEnvEmpty() Unknown Neovim function "Array vim_get_api_info()" PASS : NeovimQt::Test::connectToNeovimEnvEmpty() QWARN : NeovimQt::Test::metadataTimeout() Request 0 timed out: 159 QWARN : NeovimQt::Test::metadataTimeout() Neovim fatal error "Neovim is taking too long to respond" PASS : NeovimQt::Test::metadataTimeout() PASS : NeovimQt::Test::cleanupTestCase() Totals: 8 passed, 1 failed, 0 skipped, 0 blacklisted, 15111ms * Finished testing of NeovimQt::Test * [...] 92% tests passed, 1 tests failed out of 12 Could you please take a look? Thanks! -- Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org) http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu