ElektraInitiative / libelektra

Elektra serves as a universal and secure framework to access configuration settings in a global, hierarchical key database.
https://www.libelektra.org
BSD 3-Clause "New" or "Revised" License
206 stars 123 forks source link

typechecker: build fails on travis #2015

Closed markus2330 closed 6 years ago

markus2330 commented 6 years ago

https://travis-ci.org/ElektraInitiative/libelektra/jobs/381049513

cd /Users/travis/build/ElektraInitiative/build/src/plugins/typechecker && /usr/local/bin/cabal configure --enable-shared -v0 && /usr/local/bin/cabal build -v0
setup: Encountered missing dependencies:
haskell-src-exts -any,
hint >=0.7.0 && <0.8.0,
simple-logger -any,
spectranslator ==1.0.8.23,
text -any
[375/389] Generating dist/build/testhaskell_basic/testhaskell_basic, dist/build/testhaskell_basic_optimized/testhaskell_basic_optimized, dist/build/testhaskell_realworld/testhaskell_realworld, dist/build/testhaskell_realworld_optimized/testhaskell_realworld_optimized
In order, the following will be installed:
libfa-1.0.8.23 (via: specelektra-1.0.8.23) (reinstall)
specelektra-1.0.8.23 (reinstall)
ninja: build stopped: subcommand failed.
sanssecours commented 6 years ago

I think the error report above is missing an important part of the output:

dieVerbatim: user error (cabal: '/usr/bin/curl' exited with an error:
curl: (6) Could not resolve host: objects-us-west-1.dream.io
)

. Anyway, it seems the test testshell_markdown_typechecker does sometimes fail, even if Travis was able to install all dependencies. Below I included the output of one of the latest Travis failures from my copy of the repo:

Input: /Users/travis/build/sanssecours/elektra/src/plugins/typechecker/README.md
(kdb mount prelude.ini spec/tests/typechecker/elektra/spec ini &&
    kdb get spec/tests/typechecker/elektra/spec/fallback/#) ||
    (kdb umount spec/tests/typechecker/elektra/spec &&
        kdb mount "$PWD/src/plugins/typechecker/typechecker/prelude.ini" spec/tests/typechecker/elektra/spec ini)
kdb mount simplespecification.ini spec/tests/typechecker ini typechecker
echo 'kdbGet spec/tests/typechecker
keySetName spec/tests/typechecker/key1
keySetMeta check/range 0-5000
ksAppendKey
keyClear
keySetName spec/tests/typechecker/key2
keySetMeta check/range 7200-10000
ksAppendKey
keyClear
keySetName spec/tests/typechecker/key3
keySetMeta check/long
keySetMeta fallback/#1 spec/tests/typechecker/key1
ksAppendKey
keyClear
kdbSet spec/tests/typechecker' | kdb shell
kdb get spec/tests/typechecker/key1
kdb setmeta spec/tests/typechecker/key2 fallback/#1 spec/tests/typechecker/key1
ERROR - RET:
Return value “0” does not match “5”
kdb umount spec/tests/typechecker
kdb umount spec/tests/typechecker/elektra/spec
shell_recorder /var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/tmp.a5nCXwBV RESULTS: 7 test(s) done 1 error(s).
—— Protocol ————————————————————————————————————————————————————
CMD: (kdb mount prelude.ini spec/tests/typechecker/elektra/spec ini &&
    kdb get spec/tests/typechecker/elektra/spec/fallback/#) ||
    (kdb umount spec/tests/typechecker/elektra/spec &&
        kdb mount "$PWD/src/plugins/typechecker/typechecker/prelude.ini" spec/tests/typechecker/elektra/spec ini)
RET: 0
CMD: kdb mount simplespecification.ini spec/tests/typechecker ini typechecker
RET: 0
CMD: echo 'kdbGet spec/tests/typechecker
keySetName spec/tests/typechecker/key1
keySetMeta check/range 0-5000
ksAppendKey
keyClear
keySetName spec/tests/typechecker/key2
keySetMeta check/range 7200-10000
ksAppendKey
keyClear
keySetName spec/tests/typechecker/key3
keySetMeta check/long
keySetMeta fallback/#1 spec/tests/typechecker/key1
ksAppendKey
keyClear
kdbSet spec/tests/typechecker' | kdb shell
RET: 0
STDOUT: > return value: 1
> > Set meta check/range to 0-5000
> > > > Set meta check/range to 7200-10000
> > > > Set meta check/long to 
> Set meta fallback/#1 to spec/tests/typechecker/key1
> > > return value: 1
> 
CMD: kdb get spec/tests/typechecker/key1
RET: 0
CMD: kdb setmeta spec/tests/typechecker/key2 fallback/#1 spec/tests/typechecker/key1
RET: 0
=== FAILED return value does not match expected pattern 5
CMD: kdb umount spec/tests/typechecker
RET: 0
CMD: kdb umount spec/tests/typechecker/elektra/spec
RET: 0
————————————————————————————————————————————————————————————————

. Exactly the same code worked without problems in the PR I opened here.

e1528532 commented 6 years ago

I see. But i think this will be resolved with the changed build approach where you have to install the dependencies in advance in #2004 which i expect to get done very soon.

markus2330 commented 6 years ago

@sanssecours Thank you for improving the bug report.

@e1528532 Are you sure if #2004 fully fixes the problem even though the test case sometimes fails with all installed deps?

e1528532 commented 6 years ago

dieVerbatim: user error (cabal: '/usr/bin/curl' exited with an error: curl: (6) Could not resolve host: objects-us-west-1.dream.io ) Sometimes the mirror seems to be down, i've seen the same happen for some ubuntu repo as well on travis, there is not much we can do against that than restart the job.

Regarding the build failures, i think it should work now with the improvements form #2055 #1944 .