Libelektra: 䞀郚のテストはOSXで倱敗したす

䜜成日 2016幎04月26日  Â·  57コメント  Â·  ゜ヌス: ElektraInitiative/libelektra

OS Xでtest_kdb.luaが倱敗するようです。

        Start  69: test_kdb.lua
 69/117 Test  #69: test_kdb.lua .......................***Failed    0.00 sec
        Start  70: test_key.lua
 70/117 Test  #70: test_key.lua .......................   Passed    0.00 sec
        Start  71: test_keyset.lua
 71/117 Test  #71: test_keyset.lua ....................   Passed    0.00 sec

lua ../src/bindings/swig/lua/tests/test_kdb.luaを実行するず、スクリプトは戻り倀0終了したす。 远加情報が必芁な堎合は、以䞋にコメントしおください。

党おのコメント57件

申し蚳ありたせんが、私はOS Xを持っおいたせん。しかし、 ctest -Vはあなたの友達です。

ずころで、 lua $file呌び出すこずは、テストを実行するこずず同じではありたせん。 テストでは明らかにビルドディレクトリにあるラむブラリを䜿甚しおいたすが、システムにむンストヌルされたkdbラむブラリを䜿甚しおいたす。 少なくずもLUA_CPATH蚭定する必芁がありたす。 https://github.com/ElektraInitiative/libelektra/blob/master/src/bindings/swig/lua/tests/CMakeLists.txt#L12を参照しお

スりィッグ関連のクラッシュの90は、ビルド環境の障害に関連しおいたした。 したがっお、最初にregenerate+ swigバむンディングを再コンパむルしおみおください。

この問題はad537b3に関連しおいる可胜性がありたす少なくずもLinuxではkdb * lua | pythonがクラッシュしおいたしたが、Linuxの修正はad537b3の䞀郚です。 テストの出力がなければ、実際にはわかりたせん。

make run_allを䜿甚するず、成功したテストケヌスの出力は抑制されたすが、倱敗したテストケヌスの出力は衚瀺されたす。

@sanssecoursこれに関する曎新はありたすか

この問題はad537b3に関連しおいる可胜性がありたす少なくずもLinuxではkdb * lua | pythonがクラッシュしおいたしたが、Linuxの修正はad537b3の䞀郚です。 テストの出力がなければ、実際にはわかりたせん。

@sanssecoursこれに関する曎新はありたすか

返事が遅くなっおごめん。 私はすでにこの問題に関する拡匵情報を含むコメントを曞いたず思いたした。 testpy2_kdb.pyも私のマシンで倱敗するずいうこずから始めたしょう。 したがっお、特定の蚭定に問題がある可胜性がありたす。 Homebrew経由でSWIGをむンストヌルし、珟圚次のcmakeコマンドを䜿甚しおElektraのビルドファむルを生成しおいたす。

cmake .. -GNinja -DENABLE_TESTING=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5 -DTOOLS='qt-gui;kdb' -DBUILD_PDF=ON -DBINDINGS=SWIG

ctest -V -R test_kdb.luaの出力は次のずおりです。

test 65
    Start 65: test_kdb.lua

65: Test command: /usr/local/bin/lua "/Users/rene/Dropbox/Studium/Master Thesis/Configuration Parsing/Source/Elektra/src/bindings/swig/lua/tests/test_kdb.lua"
65: Environment variables:
65:  LUA_CPATH=/Users/rene/Dropbox/Studium/Master Thesis/Configuration Parsing/Source/Elektra/build/src/bindings/swig/lua/?.so
65: Test timeout computed to be: 1500
65: /usr/local/bin/lua: kdb:1 Warning was issued:
65:  Warning number: 1
65:     Description: could not load module, dlopen failed
65:     Ingroup: modules
65:     Module: dl
65:     At: ../src/libs/loader/dl.c:82
65:     Reason: of module: libelektra-resolver.so, because: dlopen(libelektra-resolver.so, 2): image not found
65:     Mountpoint:
65:     Configfile:
65: Error (#40) occurred!
65: Description: Failed to open default backend (see warnings for more information)
65: Ingroup: kdb
65: Module:
65: At: ../src/libs/elektra/kdb.c:282
65: Reason: could not open default backend
65: Mountpoint:
65: Configfile:
65:
65: stack traceback:
65:     [C]: in ?
65:     [C]: in function 'KDB'
65:     .../Source/Elektra/src/bindings/swig/lua/tests/test_kdb.lua:20: in main chunk
65:     [C]: in ?
1/1 Test #65: test_kdb.lua .....................***Failed    0.00 sec

0% tests passed, 1 tests failed out of 1

Label Time Summary:
bindings    =   0.00 sec (1 test)
kdbtests    =   0.00 sec (1 test)
memleak     =   0.00 sec (1 test)

Total Test time (real) =   0.01 sec

The following tests FAILED:
     65 - test_kdb.lua (Failed)
Errors while running CTest

Luaは私のマシンのbuild/libず/usr/local/lib/elektraにあるlibelektra-resolver.soを芋぀けるこずができないようです。 これを機胜させるには、ラむブラリパスを蚭定する必芁がありたすか ちなみに、同じ問題が原因でtestpy2_kdb.pyも倱敗しおいるようです。

バむンディングは、実行時にelektraラむブラリをロヌドしたせん。 それらは単なるバむンディングです。 これは、正確な゚ラヌの堎所である../src/libs/loader/dl.c:82を確認するこずで確認できたす。

したがっお、これは環境の問題、OSXの䞀般的なelektraの問題、たたはOSXのビルドシステムの問題のいずれかです。 前者だず思いたす。 ping @ markus2330

dlopen(libelektra-resolver.so, 2): image not found実際にはluaずは䜕の関係もないように芋えたす。

libelektra-resolver.soは、 KDB_DEFAULT_RESOLVERで遞択したリゟルバヌぞのシンボリックリンクである必芁がありたす。セットアップ/むンストヌルが壊れおいる可胜性がありたすか シンボリックリンクが正しいかどうかを確認できたすか

奇劙なこずに、 libelektra-resolver.soはすべおのkdb関連のテストケヌスで䜿甚されおいたすが、なぜこのテストケヌスでは機胜しないのですか たぶん、このテストケヌスおよびPythonのものは、ビルドディレクトリ内のラむブラリではなく、むンストヌルされたラむブラリを䜿甚したす。 テストケヌスがロヌドしようずしおいるlibelektra-resolver.soをstraceで確認できたすか

image not foundは非垞に䞀般的ですが、ラむブラリ内にアヌキテクチャのむメヌゞが芋぀からない可胜性がありたすか ファットバむナリを䜿甚しおいたすか

libelektra-resolver.soは、 KDB_DEFAULT_RESOLVERで遞択したリゟルバヌぞのシンボリックリンクである必芁がありたす。セットアップ/むンストヌルが壊れおいる可胜性がありたすか

ロヌカルのElektraむンストヌルが壊れおいるかどうかを確認する簡単な方法はありたすか コマンドkdbは機胜しおいるようです。

シンボリックリンクが正しいかどうかを確認できたすか

䞡方のlibelektra-resolver.so゚むリアスは、゚むリアスず同じディレクトリにあるファむルlibelektra-resolver_fm_hpu_b.soにリンクしおいたす。 したがっお、それらは正しいように芋えたす。

テストケヌスがロヌドしようずしおいるlibelektra-resolver.soをstraceで確認できたすか

sudo dtruss ctest -V -R test_kdb.luaを詊したした。 出力は次のずおりです。
test_kdb.lua-dtrussOutput.txt 。 テストではビルドディレクトリのElektraバヌゞョンを䜿甚しおいるようです。 sudo ninja uninstallを介しおElektraをアンむンストヌルしたした。 その埌、もう䞀床テストを実行したした。 出力は同じです。

ファットバむナリを䜿甚しおいたすか

私が知っおいるこずではありたせん。

OSX El Capitanを䜿甚しおいたすか これは、奇劙なシステム敎合性保護の問題である可胜性がありたす。

kdb機胜するのはちょっず奇劙です。

python / luaのむンストヌルが原因でシステム敎合性保護に関係しおいる堎合は、それが理にかなっおいる可胜性がありたす。

OSX El Capitanを䜿甚しおいたすか これは、奇劙なシステム敎合性保護の問題である可胜性がありたす。

はい、OS X10.11.4を䜿甚しおいたす。 SIPを䞀時的に無効にしお、テストを再実行したした。 それでも同じ問題。 ただし、SIPを無効にした埌、倱敗する新しいテストtestscr_check_kdb_internal_suite 。 そしお今、 testscr_check_mergeももう機胜したせん😢。

0.8.16に戻り、ビルドディレクトリをクリヌンアップしお、 ninja test再床実行したした。 testscr_check_kdb_internal_suiteずtestscr_check_mergeはどちらも倱敗したすが、Elektra 0.8.16がリリヌスされたずき、少なくずもtestscr_check_kdb_internal_suite機胜したこずを芚えおいたす。 珟圚も倱敗しおいる远加のテストの出力は次のずおりです。
testscr_check_kdb_internal_suite.txt
testscr_check_merge.txt

タむトルを倉曎しお自分を削陀したした。 私はOSXマシンに盎接アクセスできず、深い知識が䞍足しおいたす。 突く機械がなければ、テキスト出力からは䜕もわかりたせん。

リンクの他のヒントも芋たしたか たずえば、python / luaを再むンストヌルしたすか

@ petermax2 @mpranjこれらの問題を再珟できたすか

リンクの他のヒントも芋たしたか たずえば、python / luaを再むンストヌルしたすか

申し蚳ありたせんが、そうではありたせん。 Python 2のむンストヌルは、システムに付属しおいるものです。 再むンストヌルするには、オペレヌティングシステム党䜓を再むンストヌルする必芁がありたす。

LuaElektraプラグむンをテストするためだけにLuaをむンストヌルしたした。 したがっお、再むンストヌルはあたり意味がないず思いたす。 ただし、数秒しかかからないため、 brew reinstall luaを実行したした。 その埌、クリヌンなビルドディレクトリから始めお、ビルドコマンドずctest -VV -R test_kdb.lua 。 テストでも同じ出力が衚瀺されたす。

ちなみに、 /etc/kdbからすべおのファむルを削陀した埌、テストtestscr_check_kdb_internal_suiteずtestscr_check_mergeも正しく機胜するようになりたした。

私は珟圚、別の考えを持っおいたせん。 時間のかかる問題の切り分けを陀くdlopen呌び出しを、機胜しない最小限の䟋に枛らすためしたがっお、誰かが問題を再珟できるかどうかを埅぀のが最善かもしれたせん。おそらく、問題に新たな光を圓おるでしょう。

自分のマシンでも同じ動䜜を確認できたす。

解決策ラむブラリパスを正しく蚭定したす。䟋
LD_LIBRARY_PATH="/Users/mpranj/workspace/libelektra/build/lib" ctest -V -R test_kdb.luaは私にずっおは問題なく動䜜したす。

OS Xのdlopenは$LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, current working directory, $DYLD_FALLBACK_LIBRARY_PATH怜玢したすが、この順序だず思いたす。

PR710で修正されたしたが、修正が非垞にクリヌンかどうかはわかりたせん。

いいえ、修正は間違いなくクリヌンではありたせん。

私が芚えおいる限り、私たちのテストはDT_RPATHがlibelektra-kdb.soに蚭定されおいるこずに䟝存しおいたす。 これがOSXで利甚できない堎合は、グロヌバルビルド環境の堎所でこれを定矩する必芁がありたす。

線集しかし、芋぀けおくれおありがずう

RPATHはすべおのコアラむブラリに蚭定されおいたすが、おそらくlibelektra-coreで十分です。この堎所でdlopenが発生したす。

image not found単にラむブラリが芋぀からないこずを意味したすか もしそうなら、なぜRPATHがluaずpythonのテスト以倖のすべおで機胜するのか考えおみおください。

参考たでにElektraは、 TARGET_PLUGIN_FOLDERを空の文字列に蚭定するだけで、 RPATHないシステムたずえば、libcずしおmuslを䜿甚するopenwrtもサポヌトしたす。

FreeBSDでも同様のこずが起こっおいるようです。

 66/118 Test  #66: test_kdb.py ........................***Failed    0.09 sec
..EEEE
======================================================================
ERROR: test_ctor (__main__.KDB)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mpranj/workspace/libelektra/src/bindings/swig/python/tests/test_kdb.py", line 25, in test_ctor
    self.assertIsInstance(kdb.KDB(), kdb.KDB)
  File "/home/mpranj/workspace/libelektra/build/src/bindings/swig/python/kdb.py", line 1742, in __init__
    _kdb.KDB_swiginit(self, _kdb.new_KDB(*args))
kdb.KDBException: 1 Warning was issued:
 Warning number: 1
    Description: could not load module, dlopen failed
    Ingroup: modules
    Module: dl
    At: /home/mpranj/workspace/libelektra/src/libs/loader/dl.c:82
    Reason: of module: libelektra-resolver.so, because: Shared object "libelektra-resolver.so" not found, required by "python3"
    Mountpoint:
    Configfile:
Error (#40) occurred!
Description: Failed to open default backend (see warnings for more information)
Ingroup: kdb
Module:
At: /home/mpranj/workspace/libelektra/src/libs/elektra/kdb.c:282
Reason: could not open default backend
Mountpoint:
Configfile:

FreeBSDでluaをただチェックできおいたせん。

@mpranjは知っおkdbテストケヌスずkdbコマンドラむンツヌルは機胜したすか

FreeBSDで動䜜しないテストケヌスに関する問題を開いたり、OpenBSDの問題に远加したりできたすか

あなたがこれらを意味するならば

        Start 115: testkdb_allplugins
115/118 Test #115: testkdb_allplugins .................   Passed    0.02 sec
        Start 116: testkdb_nested
116/118 Test #116: testkdb_nested .....................   Passed    0.27 sec
        Start 117: testkdb_conflict
117/118 Test #117: testkdb_conflict ...................   Passed    0.17 sec
        Start 118: testkdb_simple
118/118 Test #118: testkdb_simple .....................   Passed    0.42 sec

...そしおはい。 kdbツヌルは機胜しおいるようですlsで簡単に確認しおください。

そうでなければ、倚くのこずが倱敗しおいたすが、今日はすべおをチェック/報告するこずができたせん。 しかし、適切にテストできたら、必ずすべおを報告したす。

私の掚枬では、kdbテストは静的にリンクされおいるため、機胜したすよね
BUILD_STATICを無効にするず、テストも機胜したせん。

@ markus2330䞀郚のプラットフォヌムでLD_LIBRARY_PATH 、 TARGET_PLUGIN_FOLDERはどのように機胜しおいたすか たたは、より具䜓的には、これはダむナミックラむブラリ怜玢をどのように解決したすか

ありがずうございたす。 @ sanssecoursでBUILD_STATICずBUILD_FULLを無効にしお、すべおの testkdb テストを再実行できたすか

TARGET_PLUGIN_FOLDERが空の堎合、プラグむンはラむブラリがある堎所にむンストヌルされ、 RPATHたたはLD_LIBRARY_PATHは必芁ありたせん。 ただし、むンストヌルされおいるElektraを䜿甚する堎合にのみ圹立ちたすこれは、 python / luaテストの堎合に圓おはたりたす。

https://cmake.org/Wiki/CMake_RPATH_handlingには、「.. Mac OS XではRPATHが有効になりたす。ビルドツリヌずむンストヌルツリヌの䞡方で有効になりたす」ず蚘茉されおいるため、実際にはビルドツリヌバむナリにもRPATHを蚭定する必芁がありたす。 @sanssecoursこれを確認できたすか たずえば、 readelf -a lib/libelektra-core.so.0.8.16 | grep RPATHたす。

問題はRPATH自䜓に関するものではなく、LinuxでDT_RPATHず他のプラットフォヌムを読み取る堎合のdlopenに関するものです。

glibcからのman dlopen 

  • ELFのみ呌び出し偎プログラムの実行可胜ファむルにDT_RPATHタグが含たれおいお、DT_RUNPATHタグが含たれおいない堎合、DT_RPATHタグにリストされおいるディレクトリヌが怜玢されたす。
  • プログラムの開始時に、環境倉数LD_LIBRARY_PATHが、コロンで区切られたディレクトリヌのリストを含むように定矩されおいる堎合、これらが怜玢されたす。 セキュリティ察策ずしお、この倉数はset-user-IDおよびset-group-IDプログラムでは無芖されたす。
  • ELFのみ呌び出し偎プログラムの実行可胜ファむルにDT_RUNPATHタグが含たれおいる堎合、そのタグにリストされおいるディレクトリヌが怜玢されたす。
  • キャッシュファむル/etc/ld.so.cacheldconfig8によっお維持されるは、ファむル名の゚ントリが含たれおいるかどうかを確認するためにチェックされたす。
  • ディレクトリ/ libおよび/ usr / libがこの順序で怜玢されたす。

OSXのman dlopen 

パスにスラッシュ文字が含たれおいない堎合぀たり、単にリヌフ名である堎合、dlopenは、互換性のあるMach-Oファむルが芋぀かるたで、$ LD_LIBRARY_PATH、$ DYLD_LIBRARY_PATH、珟圚の䜜業ディレクトリ、$ DYLD_FALLBACK_LIBRARY_PATHを怜玢したす。

dlopenはここで絶察パスで機胜するか、䞊蚘のパスの1぀にある必芁がありたす

ただし、絶察パスは実行したせん。 したがっお、この情報がどのように圹立぀かわかりたせん

プラグむンぞの絶察RPATHたたは絶察パス CMakeは、ビルドツリヌRPATHをサポヌトしおいるず䞻匵しおいるため、必芁に応じお絶察RPATHを䜿甚する必芁がありたす。

プラグむンぞの絶察パスは倚くの人が行うこずであり、簡単に倉曎できたすが、ビルド内のテストケヌスにどのように圹立たないかはわかりたせん。

たず、実際の問題がここにあるのは興味深いこずです。 むンストヌルされたバヌゞョンは本圓に完党に機胜したすか たずえば、 kdb run_allも興味深いでしょう私がすでに䞊で曞いたものの隣に。

dlopenのマンペヌゞからの私の貌り付けは、問題が䜕であるかを明確に述べおいたす。
dlopenlibelektra-resolver.soの怜玢パスは、プラットフォヌムによっお異なりたす。 Linuxは、dlopenがlibelektra-kdb.soのDT_RPATHを尊重するために機胜したす。

LD_LIBRARY_PATHは、valveも行っおいるこずのようです。
https://github.com/ValveSoftware/steam-runtime/blob/master/runtime/run.sh

問題は圌らがドキュメントを曞かないずいうこずですか @rpathはそこにも蚀及されおいたせん。

むンストヌル時/ BUILD_SHAREDで実際に䜕が機胜するかがわからなくなるたで、これ以䞊掚枬するべきではないず思いたす。

@ markus2330
線集BUILD_STATICずBUILD_FULLを無効にする
testkdb *テストは正垞に実行されたす。

ドキュメントに぀いおは、ここで@rpathに぀いお蚀及しおいたす。

短い䟋で私のステヌトメントを怜蚌したした

  • runtimelib ...いく぀かのランダムな関数を提䟛するラむブラリ。 elektra-resolverのように
  • lib ... dlopenを䜿甚しお実行時にruntimelibをロヌドするラむブラリ。 DT_RPATHがruntimelibのディレクトリに蚭定されおいたす。 バむンディングのkdb.soのように
  • runner ... dlopenを䜿甚しお実行時にlibをロヌドする実行可胜ファむルlua / pythonなど

https://gist.github.com/manuelm/43a4fa9dd424b4dcf03bd1d773a0e122を参照しお

このシナリオはLinuxで機胜したすが、FreeBSDでは倱敗したす。

ラむブラリに蚭定されたRPATHは移怍性がないこずを知っおいたすmuslでも機胜したせんでした。 しかし、それはMac OS Xで機胜するようでした 機胜するこずも報告し、 @ omnidanはkdbがMac OS Xで機胜するこずを報告したした。 したがっお、なぜpython / luaテストだけが倱敗するのかを調査するように䟝頌したした。

Elektraをむンストヌルするためのポヌタブルな方法は、 TARGET_PLUGIN_FOLDERを蚭定するこずではなく、テストには提案されおいるように LD_LIBRARY_PATH䜿甚できたす。 run_memcheckずrun_all内でのみ蚭定する必芁がありたす。

@mpranjは、testkdb *テストが正垞にomn​​idanは、kdbがMac

testkdb*ずkdbは、DT_RPATHで自分で蚭定したす。 Pythonずluaむンタヌプリタヌはそうではありたせん。 それは根本的に異なりたす。

[...]そしおテストには提案されおいるようにLD_LIBRARY_PATHを䜿甚できたす。

次に远加しおください。 ありがずう

はい、あなたはビルドシステムに適しおいたす。CMakeはすべおの実行可胜ファむルにRPATHを蚭定しおいるようですが、明らかにpython / luaには蚭定されおいたせん。

ただし、むンストヌルするず蚭定されたせん。 したがっお、誰かがkdb機胜するかどうかを確認しおください TARGET_PLUGIN_FOLDER蚭定されおいたす。

@sanssecours BUILD_STATICずBUILD_FULLを無効にしお、すべおの testkdb テストを再実行できたすか

ninja testが実行するテストが少ない114ではなく54こずを陀いお、これはそれほど倉わらないように芋えたす。 テストtest_kdb.luaずtestpy2_kdb.pyただ倱敗したす。 他のすべおのテスト動䜜するようです。

https://cmake.org/Wiki/CMake_RPATH_handlingには、「.. Mac OS XではRPATHが有効になりたす。ビルドツリヌずむンストヌルツリヌの䞡方で有効になりたす」ず蚘茉されおいるため、実際にはビルドツリヌバむナリにもRPATHを蚭定する必芁がありたす。 たずえば、 readelf -a lib/libelektra-core.so.0.8.16 | grep RPATHたす。

コマンドotool -l lib/libelektra-resolver.soを䜿甚したした— libelektra-core.so.0.8.16は私のマシンに存圚したせん。 出力によるず



Load command 12
          cmd LC_RPATH
      cmdsize 104
         path /Users/rene/Dropbox/Studium/Master Thesis/Configuration Parsing/Source/Elektra/build/lib (offset 12)



RPATHが蚭定されたす。

たずえば、kdb run_allも興味深いでしょう私がすでに䞊で曞いたものの隣に。

私のマシンでは、655回のテストのうち5回が倱敗したす。 4぀のテスト testmod_crypto 、 testmod_iterate 、 testmod_semlock 、 testmod_template は、同じ基本゚ラヌのために倱敗したす。

dyld: Library not loaded: @rpath/libelektra-full.4.dylib
  Referenced from: /usr/local/lib/elektra/tool_exec/testmod_crypto
  Reason: Incompatible library version: testmod_crypto requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 76960 Trace/BPT trap: 5       "$KDB" $t
error: testmod_crypto

dyld: Library not loaded: @rpath/libelektra-full.4.dylib
  Referenced from: /usr/local/lib/elektra/tool_exec/testmod_iterate
  Reason: Incompatible library version: testmod_iterate requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 77093 Trace/BPT trap: 5       "$KDB" $t
error: testmod_iterate

dyld: Library not loaded: @rpath/libelektra-full.4.dylib
  Referenced from: /usr/local/lib/elektra/tool_exec/testmod_semlock
  Reason: Incompatible library version: testmod_semlock requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 77239 Trace/BPT trap: 5       "$KDB" $t
error: testmod_semlock

dyld: Library not loaded: @rpath/libelektra-full.4.dylib
  Referenced from: /usr/local/lib/elektra/tool_exec/testmod_template
  Reason: Incompatible library version: testmod_template requires version 4.0.0 or later, but libelektra-full.4.dylib provides version 0.0.0
/usr/local/lib/elektra/tool_exec/run_all: line 1070: 77272 Trace/BPT trap: 5       "$KDB" $t
error: testmod_template

テストtestmod_python2は、次の゚ラヌ出力を瀺しおいたす。

PYTHON      TESTS
==================

Testing simple variable passing...
There are 1 warnings
buffer is: warnings/#00
number: 11
description: open of plugin returned unsuccessfully (reason contains plugin, see other warnings for details)
ingroup: kdb
module:
file: ../src/libs/elektra/plugin.c
line: 297
reason: python2
reason:
reason:
../src/plugins/python2/../python/testmod_python.c:53: error in test_variable_passing: warnings in kdbOpen for plugin python2
number: 111
description: : python error
ingroup: : plugin
module: : python
at: ../src/plugins/python2/../python/python.cpp:245
reason: : Unable to import kdb module
mountpoint: :
configfile: :
../src/plugins/python2/../python/testmod_python.c:53: error in test_variable_passing: error in kdbOpen for plugin python2
../src/plugins/python2/../python/testmod_python.c:53: fatal in test_variable_passing: could not open python2 plugin
error: testmod_python2

以䞋はtestmod_luaの出力で、゚ラヌは報告されおいたせん。

--- running testmod_lua ---


LUA         TESTS
==================

Testing simple variable passing...
[LUA-1] open -->
[LUA-1] get
[LUA-1] <-- close
Testing loading of two active lua plugins...
[LUA-1] open -->
[LUA-2] open -->
[LUA-2] <-- close
[LUA-1] <-- close

========================================================================
NOTE: The following errors are intended. We're testing error conditions!
========================================================================
Testing return values from lua functions...
Testing lua script with syntax error...
There are 1 warnings
buffer is: warnings/#00
number: 11
description: open of plugin returned unsuccessfully (reason contains plugin, see other warnings for details)
ingroup: kdb
module:
file: ../src/libs/elektra/plugin.c
line: 297
reason: lua
reason:
reason:
number: 131
description: : lua error
ingroup: : plugin
module: : lua
at: ../src/plugins/lua/lua.cpp:80
reason: : /usr/local/share/elektra/test_data/lua/lua_plugin_wrong.lua:2: attempt to call global 'wrong' (a nil value)
mountpoint: :
configfile: :

test_lua RESULTS: 29 test(s) done. 0 error(s).

OS Xでは、.soではなくdylibが䜜成されたす。 間違いなくlibelektra-core.0.8.16.dylibたたは同様のものがありたす。

間違いなくlibelektra-core.0.8.16.dylibたたは同様のものがありたす。

あなたが正しいです。 otool -l lib/libelektra-core.0.8.16.dylib | grep RPATHは出力を衚瀺しないため、 RPATHがlibelektra-core.0.8.16.dylibに蚭定されおいないようです。

grepの出力が短い、たたはgrepの小文字のrpathを䜿甚しないでください

grepの出力が短い、たたはgrepの小文字のrpathを䜿甚しないでください

「出力をgrepしない、぀たり短い、たたは小文字のrpathをgrepしない」ずいう意味ですか もしそうなら、なぜですか 私はたた、怜玢RPATHの出力にotool -l lib/libelektra-core.0.8.16.dylibを経由しお、組み蟌みの私のタヌミナルアプリケヌションの怜玢。 これは、 LC_RPATHの発生も瀺しおいたせん。

私が怜玢した堎合rpath 、その埌、私は次のいずれか発生ご芧@rpath 

...
Load command 3
          cmd LC_ID_DYLIB
      cmdsize 56
         name @rpath/libelektra-core.4.dylib (offset 24)
   time stamp 1 Thu Jan  1 01:00:01 1970
      current version 0.0.0
compatibility version 0.0.0
...

私の知る限り、 @rpathはに栌玍されおいる倀 RPATHプレヌスホルダヌにすぎたせん。 このrpath出珟は、 RPATHが蚭定されおいるかどうかを教えおくれるずは思いたせん。

CMake wikiによるず、コマンドotool -l <file> | grep LC_RPATH -A2は、あるファむルのRPATHを衚瀺する1぀の可胜な方法です。 私が䜿甚したあたり掟手でないバヌゞョン– otool -l lib/libelektra-core.0.8.16.dylib | grep RPATH –も倚かれ少なかれうたくいくはずだず思いたす。

みんな、どうしおこれをチェックしおいるの

@sanssecours申し蚳ありたせんが、電話からすぐにメッセヌゞを送信したので、意味がないこずがわかりたせんでした。

䟝存関係を瀺し、 @rpathのみを衚瀺するotool -Lを@rpath 。 しかし、そうです、あなたは正しいですotool -lは正しいコマンドです。

ずころで、゚レクトラを陀いお、RPATHを䜿甚しおいるラむブラリがシステムに1぀も芋぀かりたせんでした。

/usr/local/lib/libelektra.0.8.13.dylib
          cmd LC_RPATH
      cmdsize 40
         path /usr/local/lib/elektra (offset 12)

@manuelmが述べおいるように、これらのチェックはかなり無意味かもしれたせん...

䞊蚘のすべおの問題を完党に理解しおいるずは思いたせんが、私たちが行っおいる皮類のリモヌトデバッグは効率的ではないこずに同意したす。 誰かが非glibcシステムをサポヌトするための最良の方法を調査しお文曞化する必芁がありたす。 䌚議でどのように進めるかに぀いお話し合いたしょう。

@ markus2330私はこの問題を完党に理解しおいたす。 テストを開始する前にLD_LIBRARY_PATHを蚭定するず、問題がなくなるこずを玄束したす。

他のすべおの蚀及された問題は、赀いニシンであるか、たたは単に間違っおいたす。

@manuelm玠敵になりたかったので、「私たち」ず蚀いたした。 明らかに、LD_LIBRARY_PATHは、ビルドディレクトリでラむブラリが芋぀からないずいう問題を修正したす少なくずもpython / lua GIテストの堎合のように、どこかでリセットされない限り。 しかし、RPATHをバむナリに蚭定する必芁があるずいう理論が正しければ、むンストヌルされおいるバヌゞョンも壊れおしたいたすが、これは珟圚実際には確認されおいたせん。 これは調査する必芁がありたす。

私の理論は、蚌明を行ったので、もはや単なる理論ではありたせん。

もう䞀床Linuxでは、バむンディングを実装するラむブラリlua / pythonの堎合はkdb.so libgelektra-4.0.so 、glibの堎合はDT_RPATH蚭定されおいるため、バむンディングは機胜したす_AND_ dlopenこれを尊重したす。

もちろん、バむンディングは、elektraがグロヌバルシステムラむブラリパスにむンストヌルされた埌に機胜したす。 これが突然機胜しなくなる理由はたったくわかりたせん。

バむンディングのテストは= linuxでは機胜したせん。 それで党郚です。

PSGIバむンディングテストにはLD_LIBRARY_PATHが必芁です。 そのため、GIケヌスを統合/远加するビルドシステムマクロを远加しおほしいず思いたした。

LD_LIBRARY_PATHが必芁なのはバむンディングテストだけのようですので、そこに远加したした。

@mpranjうたくいけば、それが機胜するかどうかを確認できるトラビスをすぐに入手できたすか

@ markus2330いいえそれは機胜したせん。 travisでも私のマシンでもありたせん

@mpranjテストしおくれおありがずう。 誰かに迷惑をかけずにtravisファむルを再床テストする準備ができおいたすか 䞡方のテストケヌスはただ倱敗しおいたすか LD_LIBRARY_PATHをどこかで忘れたしたか、それずもアプロヌチが機胜しおいたせんか

@ markus2330はい私は珟圚

あなたはここでそれを芋るこずができたす https 
ずころで、 @ manuelmは

はい、圌はそう蚀った。 䞻に、1぀のtravisファむルでMac OSXなどをビルドするためのマトリックスセットアップがありたせんでした。

すべおのご協力に感謝したす。問題は今すぐ修正されるはずです。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡