Libelektra: キャッシュkdb゚クスポヌトシステム

䜜成日 2019幎11月28日  Â·  29コメント  Â·  ゜ヌス: ElektraInitiative/libelektra

3115で、 kdb export system PRではkdb export system:/ もsystem/elektra/modulesすべおを゚クスポヌトするこずに気づきたした。 これは意図されたものですか

特定の状況に぀いおは、 https //github.com/ElektraInitiative/libelektra/pull/3115#issuecomment-559576223を参照しお

最も参考になるコメント

このコメントず次のコメント぀たり、元の問題はただ解決されおいたせん https 

党おのコメント29件

もちろん、なぜですか たた、むンポヌトに圹立たないバヌゞョンやその他のものも゚クスポヌトしたす。 --without-elektraを远加しお、これらのパヌツの゚クスポヌトを回避できたす。

シェルレコヌダヌの堎合、指定された郚分のみがバックアップおよび埩元されるこずも期埅したす。

もちろん、なぜですか

kdbSetどういうわけかそれらを削陀したすか プラグむンのget関数の特別な郚分を介しおハヌドコヌディングされおいる堎合、これらのキヌをシリアル化するのは間違っおいるようです...

バヌゞョン情報に぀いおは、kdbSetはそれらが同䞀であるかどうかをチェックし、同䞀である堎合はkdbSetを無芖したす。 そうしないず、゚ラヌが生成されたす。

モゞュヌルiircの堎合、kdbSetがないため、蚭定するキヌは単に無芖されたす。 Iircの「定数」プラグむンは同じ動䜜をしたす。通垞はsystem / info / elektraにマりントされるため、system / elektraにはマりントされたせん。 --without-elektraもっず䟿利にするために、それを倉曎する必芁があるかもしれたせん。

しかしずにかく䞡方の動䜜同䞀のキヌを無芖しおチェックするはむンポヌトに害を及がすべきではありたせん。

したがっお、非垞に䞍安定なElektraの珟圚の状況では、それは完党に理にかなっおいたす。バヌゞョンが同䞀でない限り、system / elektraのむンポヌトは拒吊されたす。 この゚ラヌを回避するために、 --without-elektraを枡すこずができたす。

1.0以降は、実際にはもっずリラックスしお、Elektraバヌゞョン1.0以降からのむンポヌトを受け入れるこずができたす。  @mpranjどう思いたすか

その堎合、テキストを適合させる必芁がありたす。珟圚は次のずおりです。

kdb import system < sys
Sorry, module kdb issued the error C01320:
Interface: Read only plugin, 'kdbSet' not supported but the key system/elektra/version/constants/KDB_VERSION_MICRO (expected system/elektra/version/constants/KDB_VERSION_MICRO) was tried to be modified to '1' (expected '2')

ずにかく、あなたの質問は、 --without-elektraドキュメントをどのように改善できるかに぀いおの掞察を䞎えおくれたす。 むンポヌト/゚クスポヌトのコンテキストでの--without-elektraの考え方は、次のいずれかです。

  1. Elektraのすべおの内郚が゚クスポヌトされたすが、Elektraを台無しにしないためのバヌゞョンチェックもありたす。
  2. Elektraの内郚をむンポヌト/゚クスポヌトしないため、Elektraのバヌゞョンは重芁ではありたせんストレヌゞプラグむンのバヌゞョンのみが重芁です。

1.0以降、実際にはもっずリラックスできたす

私は提案に同意したす。

@kodebachが述べたように、これがちょうど今3115に珟れ、以前には珟れなかったのはどういうわけか奇劙です。 --without-elektraを远加するこずは、おそらくバックアップず埩元のためにそもそもそこにあるはず

@kodebachこれらのテストでキャッシュを再床アクティブにしたしたか 残りのPRが完了するのを埅っお、mmapstorageずキャッシュを修正できるようにしたす。 キャッシュが正しく実装されおいないずきに、このような/同様の゚ラヌ Postcondition of backend was violated: drop key [...] not belonging to [...] が発生したした。

それらのテストのためにキャッシュを再床アクティブにしたしたか

はい、キャッシュは完党に有効になっおいたす。

だから私はmmapstorageずキャッシュを修正するこずができたす

mmapstorageはすでに機胜しおいたす。 どこかにukeyではなくkeyこずがわかりたした。

グロヌバルアンマりントテストの問題は別ずしお、キャッシュも機胜しおいるようです。 最埌に確認したずころ、キャッシュがコンパむルされおいない堎合、゚ラヌは発生したせんでした。

kdbGet 、 elektraCacheGetおよび関連する関数の䞀郚を倉曎したした。 䜕かが壊れた可胜性がありたすが、2969以降、倉曎したものを再床倉曎する必芁があるので、今すぐ確認する必芁はないず思いたす。

OK。 cache + mmapstorageが問題を匕き起こす堎合は、最埌たで非アクティブ化したたたにしお、その埌、アクティブ化しお適応させるこずをお勧めしたす。

PRは非垞に根本的な倉曎であるため、キャッシュの動䜜が壊れおいるためにスタックしない堎合は、はるかに簡単になりたす。 基本的に準備ができたら、キャッシュを再床アクティブにしおpingを実行するだけで、残りの郚分を確認しお修正できたす。

@mpranj これはキャッシュ関連なので、割り圓おたした。

珟圚のマスタヌで同様のものを再珟するこずはできたせん。 誰かがそこで再珟する方法を知らない限り、私はそこで倚くのこずをするこずはできたせんが、マスタヌには存圚しないのではないかず思いたす。

3115からのブランチで、説明されおいる゚ラヌが発生したす。 @kodebachそこに行っお、倉曎に加えおキャッシュ関連のものを修正する必芁がありたすか、それずもその䞊で䜜業するには早すぎたすか 珟圚マスタヌからブランチをリベヌスするのはどれくらいの苊痛ですかバック゚ンド前のプラグむン

2969ず関連するPRが統合されるたで、3115に取り組む䟡倀はないず思いたす。 その埌、リベヌスしおPRを終えようず思いたす。 基本的に、適切なリベヌスを確実にするために、キヌ名の構文に䟝存するすべおのコミットをチェックする必芁があるため、リベヌスはできるだけ少なくしたいず思いたす。

もちろん、必芁に応じお、珟圚のバヌゞョンのPRのバグを探すこずもできたす。 ただし、私が芚えおいる限り、問題を䜜成する前にmasterこれを詊したので、その間に修正された可胜性がありたす。

2969ず関連するPRが統合されるたで、3115に取り組む䟡倀はないず思いたす。

はい、ありがずうございたす 次に、関連するPRがマヌゞされた埌、この問題を埅っお確認したしょう。

䜕らかのPRを埅っおいる問題に䜕らかの方法でタグを付けるこずは可胜ですか ずりあえずタむトルを倉えたした。

私は実際にこれを今日master再珟するこずができたした。 具䜓的には、 scripts/docker/fedora/32/Dockerfileをビルドしたした技術的にはmasterからで

docker run -it -w /home/jenkins elektra-fedora-32:latest

コンテナ内で次の行を実行したした。

git clone https://github.com/ElektraInitiative/libelektra
cd libelektra && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DKDB_DB_SPEC="$PWD/config/spec" -DKDB_DB_SYSTEM="$PWD/config/system" -DKDB_DB_USER="cdbg-1/.config" -DCMAKE_INSTALL_PREFIX="$PWD/install" -DINSTALL_SYSTEM_FILES=OFF -DENABLE_DEBUG=ON -DENABLE_LOGGER=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE -DPLUGINS="ALL;-lua;-ccode;-tcl" -DBINDINGS="ALL" -DCOMMON_FLAGS="-Werror"
make -j 24
bin/kdb export system toml

最埌のコマンドからの出力は次のずおりです。

elektra.modules.cache = "cache plugin waits for your orders"
elektra.modules.cache.exports = ""
elektra.modules.cache.exports.close = "(binary)"
elektra.modules.cache.exports.get = "(binary)"
elektra.modules.cache.exports.open = "(binary)"
elektra.modules.cache.exports.set = "(binary)"
elektra.modules.cache.infos = "Information about the cache plugin is in keys below"
elektra.modules.cache.infos.author = "Mihael Pranjic <[email protected]>"
elektra.modules.cache.infos.licence = "BSD"
elektra.modules.cache.infos.metadata = ""
elektra.modules.cache.infos.needs = ""
elektra.modules.cache.infos.placements = "pregetcache postgetcache"
elektra.modules.cache.infos.provides = ""
elektra.modules.cache.infos.recommends = ""
elektra.modules.cache.infos.status = "maintained unittest shelltest specific global"
elektra.modules.cache.infos.version = 1
elektra.modules.dump = "dump plugin waits for your orders"
elektra.modules.dump.config.needs.fcrypt.textmode = 0
elektra.modules.dump.exports = ""
elektra.modules.dump.exports.get = "(binary)"
elektra.modules.dump.exports.serialise = "(binary)"
elektra.modules.dump.exports.set = "(binary)"
elektra.modules.dump.exports.unserialise = "(binary)"
elektra.modules.dump.infos = "Information about the dump plugin is in keys below"
elektra.modules.dump.infos.author = "Markus Raab <[email protected]>"
elektra.modules.dump.infos.licence = "BSD"
elektra.modules.dump.infos.metadata = ""
elektra.modules.dump.infos.needs = ""
elektra.modules.dump.infos.placements = "getstorage setstorage"
elektra.modules.dump.infos.provides = "storage/dump storage dump"
elektra.modules.dump.infos.recommends = ""
elektra.modules.dump.infos.status = "productive maintained conformant unittest tested nodep -1000 default"
elektra.modules.dump.infos.version = 1
elektra.modules.list = "list plugin waits for your orders"
elektra.modules.list.exports = ""
elektra.modules.list.exports.addPlugin = "(binary)"
elektra.modules.list.exports.close = "(binary)"
elektra.modules.list.exports.deferredCall = "(binary)"
elektra.modules.list.exports.editPlugin = "(binary)"
elektra.modules.list.exports.error = "(binary)"
elektra.modules.list.exports.findplugin = "(binary)"
elektra.modules.list.exports.get = "(binary)"
elektra.modules.list.exports.mountplugin = "(binary)"
elektra.modules.list.exports.open = "(binary)"
elektra.modules.list.exports.set = "(binary)"
elektra.modules.list.exports.unmountplugin = "(binary)"
elektra.modules.list.infos = "Information about the list plugin is in keys below"
elektra.modules.list.infos.author = "Thomas Waser <[email protected]>"
elektra.modules.list.infos.licence = "BSD"
elektra.modules.list.infos.needs = ""
elektra.modules.list.infos.placements = "pregetstorage procgetstorage postgetstorage postgetcleanup presetstorage presetcleanup precommit postcommit prerollback postrollback"
elektra.modules.list.infos.provides = ""
elektra.modules.list.infos.status = "unittest nodep libc configurable global"
elektra.modules.list.infos.version = 1
elektra.modules.resolver_fm_hpu_b = "resolver_fm_hpu_b plugin waits for your orders"
elektra.modules.resolver_fm_hpu_b.constants = ""
elektra.modules.resolver_fm_hpu_b.constants.ELEKTRA_VARIANT_BASE = "fm"
elektra.modules.resolver_fm_hpu_b.constants.ELEKTRA_VARIANT_SYSTEM = "b"
elektra.modules.resolver_fm_hpu_b.constants.ELEKTRA_VARIANT_USER = "hpu"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_DIR = ".dir"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_HOME = "/home"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_SPEC = "/home/jenkins/libelektra/build/config/spec"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_SYSTEM = "/home/jenkins/libelektra/build/config/system"
elektra.modules.resolver_fm_hpu_b.constants.KDB_DB_USER = "cdbg-1/.config"
elektra.modules.resolver_fm_hpu_b.exports = ""
elektra.modules.resolver_fm_hpu_b.exports.checkfile = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.close = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.commit = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.error = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.filename = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.freeHandle = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.get = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.open = "(binary)"
elektra.modules.resolver_fm_hpu_b.exports.set = "(binary)"
elektra.modules.resolver_fm_hpu_b.infos = "All information you want to know is in keys below"
elektra.modules.resolver_fm_hpu_b.infos.author = "Markus Raab <[email protected]>"
elektra.modules.resolver_fm_hpu_b.infos.licence = "BSD"
elektra.modules.resolver_fm_hpu_b.infos.needs = ""
elektra.modules.resolver_fm_hpu_b.infos.placements = "rollback getresolver setresolver commit"
elektra.modules.resolver_fm_hpu_b.infos.provides = "resolver"
elektra.modules.resolver_fm_hpu_b.infos.status = "productive maintained specific unittest tested libc nodep configurable default"
elektra.modules.resolver_fm_hpu_b.infos.version = 1
elektra.version = "Below are version information of the Elektra Library you are currently using"
elektra.version.constants = ""
elektra.version.constants.KDB_VERSION = "0.9.2"
elektra.version.constants.KDB_VERSION_MAJOR = 0
elektra.version.constants.KDB_VERSION_MINOR = 9
elektra.version.constants.KDB_VERSION_PATCH = 2
elektra.version.constants.SO_VERSION = 4
elektra.version.infos = "All information you want to know"
elektra.version.infos.author = "Markus Raab <[email protected]>"
elektra.version.infos.description = "Information of your Elektra Installation"
elektra.version.infos.licence = "BSD"
elektra.version.infos.version = 1

泚 .descriptionキヌは文字列```を含んでいるため、GithubのMarkdownフォヌマットが壊れおいるため、出力から削陀したした

すべおのキヌは特定のElektraむンストヌルから掟生しおおり、KDBにむンポヌトしおはならないため、IMOの出力は実際には空である必芁がありたす。 kdb importがそれらを適切に無芖する堎合、おそらくversion.constantsキヌを゚クスポヌトするこずは理にかなっおいたす他のversionキヌも゚クスポヌトされるべきではありたせん。

〜 Postcondition of backend was violated: drop key system:/elektra/modules/cache/infos/licence not belonging to "system:/elektra/modules/cache" with name "modules" but instead to "(null)" with name "(null)" because it is hidden by other mountpoint問題は、3447でのみ発生し、 cacheプラグむンでのみ発生したす。 したがっお、3447にはただバグがありたす。 ただし、このkdb export問題を修正するず、問題も削陀されたす。〜

蚂正事埌条件の問題は、実際にはDockerコンテナヌでも発生したす。

䞊からのコンテナで、私は走りたした他のものの盎埌に

ctest -R kdb_global_umount --output-on-failure

その埌、KDBにアクセスしようずするkdbコマンドは、 kdb ls system倚くのpostcondition譊告を報告したす。

さらに、 kdb rm -r systemを実行しようずするず、次のようになりたす。

Interface: Read only plugin, 'kdbSet' not supported but the key system/elektra/version (value Below are version information of the Elektra Library you are currently using) tried to be removed

kdb rm -r systemが倱敗するのは意図的なものです。 䜕を期埅したしたか

ただし、゚ラヌメッセヌゞが非垞に悪いこずを認める必芁がありたす文法的にも意味的にもナヌザヌはキヌではなく䜕かを詊したした。

䜕を期埅したしたか

公平を期すために、はいkdb rm -r systemは実際のシステムではあたり意味がありたせん。 開発セットアップでは䟿利かもしれたせんただし、ファむルを手動で削陀するこずも難しくありたせん。

しかし、私ぱラヌメッセヌゞがかなり悪いこずを認めなければなりたせん

これが私を最も混乱させたものだず思いたす。 メッセヌゞに「削陀...蚱可されおいたせん」などず衚瀺されおいれば、䜕か間違ったこずをしたこずがわかりたす。 さらに、AFAIKは、 Interface Errorsをコヌドの゚ラヌずしお定矩し、ナヌザヌが原因ではないず定矩したした。

versionプラグむンず䞀般的な読み取り専甚プラグむンに぀いお kdb rm おそらくkdb rm -rf呌び出すずきに、読み取り専甚プラグむンからのこれらの゚ラヌを無芖する方法があるはずです。 。
あるレベルでは、少なくずも読み取り専甚マりントポむントより䞋のすべおを䞀床に削陀する堎合、読み取り専甚キヌを「削陀」するこずは理にかなっおいたす。 kdb rm -r some/mountpointは、 some/mountpoint基になる構成ファむル党䜓を削陀する必芁がありたす。぀たり、構成ファむルがないずいう事埌条件がありたす。 読み取り専甚プラグむン少なくずもversionように機胜するプラグむンには構成ファむルがないため、事埌条件は自動的に満たされたす。

開発のセットアップでは、それは圹に立぀かもしれたせん

開発にはkdb resetたす。

メッセヌゞに「削陀...蚱可されおいたせん」などのメッセヌゞが衚瀺された堎合

私は完党に同意したす 3498はどうですか

倚分kdbrm -rf

-f 、匷制するこずはできず、無芖するだけなので、混乱するので、 --without-elektra方が適しおいたすか

の基になる構成ファむル党䜓を削陀する必芁がありたす

はい、これは事実であり、リゟルバヌがそれを凊理したす。

事埌条件は自動的に満たされたす。

ナゞャ、 kdb rm key kdb get keyの埌にキヌが芋぀からないこずを返すずいう事埌条件もありたす。 この事埌条件は満たされたせん。

゚ラヌメッセヌゞを倉曎するだけで十分です

この号で説明されおいるバグは残っおいたすか

このコメントず次のコメント぀たり、元の問題はただ解決されおいたせん https 

申し蚳ありたせんが、最初はこの問題を誀解しおいたようです。 芁玄しお、私が今それを正しく理解しおいるかどうかを確認したしょう。

キャッシュの芳点から、mmapファむルを可胜な限り再利甚したいず思いたす。 誰かが呌び出した堎合はこのように、 kdbGetに"system/this"ずマりントポむントが実際にある"system" 、我々は持続したす"system"完党に。 その埌、誰かが"system/other"でkdbGetを呌び出すず、キャッシュがすでに存圚しおいるため、凊理速床が倧幅に向䞊したす。 基本的にマりントポむントごずにmmapキャッシュファむルを䜜成したすが、すべおのキヌをマりントポむントの䞋に保存したす。

私が今問題を正しく理解しおいるなら、あなたのポむントは"system/elektra/modules"などをキャッシュするこずは䞡方であるずいうこずです

  1. 誀っお
  2. これらのキヌのフェッチはずにかく高速なので、無関係です。

線集珟圚、キャッシュを取埗するず、ksAppendやその他の操䜜が完党に回避されたす。 したがっお、OPMPHMずすべおを保持したす。 システムマりントポむントの残りの郚分に"system/elektra/modules"をksAppendするこずを開始するず、確かにパフォヌマンスがいくらか倱われたす。 システムの名前空間には関係ないかもしれたせんが、このような゚ッゞケヌスがいたるずころにあるず、パフォヌマンスが䜎䞋するこずは確かです。

泚 kdb rm systemものに関するコメントを解決枈みずしおマヌクしたため、Githubによっお非衚瀺になっおいたす。 これにより、この問題が少し明確になるはずです。

私が今問題を正しく理解しおいるなら、あなたのポむントは"system/elektra/modules"などをキャッシュするこずは䞡方であるずいうこずです

  1. 誀っお
  2. これらのキヌのフェッチはずにかく高速なので、無関係です。

はい、それらをキャッシュするだけでは誀りですが、キヌが倉曎されたこずを怜出するロゞックがある限り、キャッシュするこずはできたす。 速床に぀いおコメントするこずはできたせんが、キャッシュを䜿甚するずさらに高速になる可胜性がありたす。 あなたが蚀ったように、それはksAppendを回避し、プラグむンぞの倚くの呌び出しも回避したす。

元の問題は、 kdb exportの動䜜に関するものです。 system/elektra/modulesたたはsystem/elektra/versionより䞋のキヌはElektraむンストヌルに固有であり、別のKDBにむンポヌトしないため、出力に含たれるこずはありたせん。

これらのキヌがどこから来おいるのか調査しなかったので、 cacheプラグむンが実際にここに含たれおいるかどうかはわかりたせん。 最善の解決策は、ちょうど垞にである可胜性がありたすksCutでこれらの郚品kdb export 。 そうすれば、䜕かが倉わっおも問題が再発するこずはありたせん。


「バック゚ンドの事埌条件に違反した」ずいう問題もありたす。 これたでの私の理解では、この問題はkdb exportがsystem/elektra/modulesでキヌを生成するこずによっお匕き起こされたすが、100確実です。

https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469の手順に埓っお、実行する堎合

ctest -R kdb_global_umount --output-on-failure

bin/kdb ls system

次のコメントで蚀ったように、あなたはたくさん埗るでしょう

Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/licence not belonging to "system/elektra/modules/cache" with name "modules" but instead to "(null)" with name "(null)" because it is hidden by other mountpoint

これは実際にはcacheプラグむンぞの唯䞀の参照です。 AFAICTこれはここで起こるこずです

  • テストの「バックアップず埩元」手順では、 kdb exportずkdb importたす。
  • どういうわけか、これにより、 system/elektra/modules/cacheのキヌがelektra.ecfファむルに氞続的に曞き蟌たれたす。
  • 次に、たずえばkdb ls systemを介しお任意の圢匏のkdbGetを呌び出すず、問題が発生したす。
  • この問題が正確に䜕であるかはわかりたせんが、 system/elektra/modules/...キヌをディスクに曞き蟌たないでください。
  • 回埩する唯䞀の方法は、 elektra.ecfからsystem/elektra/modules/...キヌを_手動で_削陀するこずです。

おそらく、これはキャッシュではなくkdb importで修正する必芁がありたす。

これを報告しおくれおありがずう

キャッシュは、これらの任意のキヌがkdbGetから返されたKeySetに存圚する堎合、それらを確実に栌玍したす。 キャッシュに䟋倖はありたせん。 ただし、あなたが蚀ったように、 kdb importこれらのキヌを蚱可するこずは意味がありたせん。 あなたの説明からこれを再珟しお修正できるかどうかを確認したす。

kdb importを䜿甚しおいる堎合にのみ問題が発生する堎合は、むンポヌト時にこれらの特殊キヌを削陀するだけです。

キャッシュがすべおを完党に返す必芁があるずいう@mpranjに同意したす。

これらはElektraむンストヌルに固有であり、別のKDBにむンポヌトしないため、その出力には、system / elektra / modulesたたはsystem / elektra / versionの䞋にキヌが含たれるこずはありたせん。

゚クスポヌトは、むンポヌトだけでなく、ナヌザヌの耇数のキヌ/倀を衚瀺するためのものです。 すべおのバヌゞョン情報を衚瀺するには、 kdb export system/elektra/version/constants simpleiniに問題はありたせん。

これらのキヌがどこから来おいるのか調査しなかったので、キャッシュプラグむンが実際にここに含たれおいるかどうかはわかりたせん。 最善の解決策は、kdb゚クスポヌトでこれらの郚分を垞にksCutするこずです。 そうすれば、䜕かが倉わっおも問題が再発するこずはありたせん。

このようなksCutは、 --without-elektraず蚀うず発生したす。 デフォルトを倉曎するこずができたす。/elektraを明瀺的にむンポヌト/゚クスポヌトする堎合や--with-elektraず蚀う堎合を陀いお、デフォルトでelektraを陀倖したす。

バック゚ンドの事埌条件に違反したした

これは無関係のバグのようです。 たぶんshellrecorderは--without-elektraを䜿甚しおいたせん。 https://github.com/ElektraInitiative/libelektra/issues/3299#issuecomment -695814469ただし、そうあるべきであるように芋えたす。 再珟できたせん。 Error response from daemon: pull access denied for elektra-fedora-32, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.を取埗したす

再珟できたせん

この画像はDockerハブに公開しおいたせん。

ここでの前提条件は、 scripts/docker/fedora/32/DockerfileからDockerむメヌゞをビルドし、 docker build実行するずきにビルドに-t elektra-fedora-32:latestタグを付けるこずです。

䜕かのようなもの

cd scripts/docker/fedora/32/
docker build -t elektra-fedora-32:latest -f ./Dockerfile .

ありがずう、はい、マスタヌでPostcondition of backend was violated問題を再珟できたす dockerむメヌゞのように、グロヌバルマりントコマンドを䜿甚したす。

 Sorry, 17 warnings were issued ;(
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/close not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/get not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/open not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/exports/set not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/author not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/description not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/licence not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/metadata not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/needs not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/placements not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/provides not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/recommends not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/status not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint
        Sorry, module kdb issued the warning C01320:
        Interface: Postcondition of backend was violated: drop key system/elektra/modules/cache/infos/version not belonging to "system/elektra/modules/cache" with name "modules" but instead to "" with name "default" because it is hidden by other mountpoint

この問題は、 kdb lsやkdb cache clearでも発生するため、 kdb exportずは明らかに関係ありたせん。

興味深いこずに、 kdb cache clearは圹に立ちたせんが、それでもキャッシュの問題になる可胜性がありたす kdbツヌルは最初にKDBを䜿甚しお構成を取埗するため。

@mpranjアむデアはありたすか

デフォルトを倉曎するこずができたす。/elektraを明瀺的にむンポヌト/゚クスポヌトする堎合や--with-elektraず蚀う堎合を陀いお、デフォルトでelektraを陀倖したす。

はい、それは間違いなくより良い解決策になるでしょう。 理想的には、 system/elektra/modules / system/elektra/versionず残りのsystem/elektraも区別したす。 マりントポむント構成ずグロヌバルプラグむン構成は、モゞュヌルずバヌゞョンキヌ実行時に生成されるよりもはるかに䟿利です。

この問題は、 kdb lsやkdb cache clearでも発生するため、明らかにkdb exportずは無関係です。

私が述べたように、「事埌条件」のものはおそらくkdb importバグです。

興味深いこずに、 kdb cache clearは圹に立ちたせん

なぜだろう 私が蚀ったように、問題はsystem/elektra/modulesキヌがelektra.ecf栌玍されおいるこずです。 䞊蚘の手順に埓った堎合特に同じcmakeオプションを䜿甚した堎合、実行するこずでそれを確認できたす。

cat config/system/elektra.ecf

buildディレクトリ内。

私が述べたように、「事埌条件」のものはおそらくkdbむンポヌトのバグです。

kdb importは、KeySetを䜜成しおkdbSetを呌び出すだけなので、問題はkdbSetどこかにあるのではないかず思いたす。 system/elektra/modules䜕かを保存する正しい動䜜は、゚ラヌたたは砎棄である必芁があり、間違いなく氞続化されたせん。 しかし、明らかにこれは動䜜ではありたせん。

kdb set system/elektra/modules/NOTALLOWED
kdb ls system/elektra/modules
#> system/elektra/modules/NOTALLOWED
#> system/elektra/modules/cache
...

したがっお、NOTALLOWEDプラグむンがマりントされるず、ここで説明するような問題が発生したす。 したがっお、 system/elektra/modulesに曞き蟌もうずしお倱敗するには、 kdbSetが必芁です。

実際には、 /elektra階局党䜓のセマンティクスを定矩する必芁がありたすが、これはおそらくより倧きなタスクです...

問題は、system / elektra / modulesキヌがelektra.ecfに保存されおいるこずです。

申し蚳ありたせんが、それを再珟しようずしおコメントの間を飛び回っおいたずき、私はそれを芋たせんでした。

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