قبل bc804c207df391c339d880d3487ea3c16eb4ee4e ، فشلت الاختبارات التالية في بعض البيئات عند إنشاء حزم دبيان:
تحرير علامة: يمكنك أيضًا إعادة إنتاج مشاكل blockresolver و fcrypt عن طريق معالجة HOME و TMPDIR. ليست هناك حاجة لبناء الحزمة.
[package/stretch] 42/118 Test #48: testmod_blockresolver ............***Failed 0.00 sec
[package/stretch] BLOCKRESOLVER TESTS
[package/stretch] ==================
[package/stretch]
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/blockresolver/testmod_blockresolver.c:70: error in test_BlockresolverWrite: blockresolver->kdbSet failed
[package/stretch] Compare <key = only the inside has changed
[package/stretch] >, with <key = inside block
[package/stretch] >
[package/stretch] in file /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/blockresolver/blockresolver/compare.block, line 5.
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/tests/cframework/tests.c:157: error in compare_line_files: comparing lines failed
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/blockresolver/testmod_blockresolver.c:72: error in test_BlockresolverWrite: files do not match as expected
[package/stretch]
[package/stretch] testmod_blockresolver Results: 15 Tests done — 3 errors.
[package/stretch] 48/118 Test #60: testmod_crypto_openssl ...........***Failed 5.32 sec
[package/stretch] CYPTO TESTS
[package/stretch] ==================
[package/stretch]
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/crypto/test_internals.h:263: error in test_gpg: failed to install the GPG test key
[package/stretch]
[package/stretch] crypto_openssl Results: 65 Tests done — 1 error.
[package/stretch] 49/118 Test #61: testmod_crypto_gcrypt ............***Failed 5.18 sec
[package/stretch] CYPTO TESTS
[package/stretch] ==================
[package/stretch]
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/crypto/test_internals.h:263: error in test_gpg: failed to install the GPG test key
[package/stretch] 50/118 Test #62: testmod_crypto_botan .............***Failed 5.41 sec
[package/stretch] CYPTO TESTS
[package/stretch] ==================
[package/stretch]
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/crypto/test_internals.h:263: error in test_gpg: failed to install the GPG test key
[package/stretch] 57/118 Test #73: testmod_fcrypt ...................***Failed 15.03 sec
[package/stretch] FCRYPT TESTS
[package/stretch] ==================
[package/stretch]
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:159: error in test_gpg: failed to install the GPG test key
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:187: error in test_file_crypto_operations: kdb set failed
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:188: error in test_file_crypto_operations: file content did not change during encryption
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:191: error in test_file_crypto_operations: kdb get (pregetstorage) failed
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:195: error in test_file_crypto_operations: kdb get (postgetstorage) failed
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:196: error in test_file_crypto_operations: postgetstorage did not encrypt the file again
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:231: error in test_file_signature_operations: kdb set failed
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:232: error in test_file_signature_operations: file content did not change during encryption
[package/stretch] /home/jenkins/workspace/elektra-jenkinsfile/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:235: error in test_file_signature_operations: kdb get failed
[package/stretch]
في # 1965 ، كان لدينا بعض المناقشات حول اكتشاف الأخطاء التي تشير في النهاية إلى https://github.com/ElektraInitiative/libelektra/commit/356317a6ab811f524ebaa1dbf40f19477b966fc1 باعتباره الالتزام الذي أدى إلى ظهور الأخطاء. ومع ذلك ، لا ينبغي أن يكون لتنظيف البيئة الآثار الجانبية لإجراء الاختبارات.
إذا احتاجت الاختبارات إلى إعدادات بيئية معينة ، فيجب عليهم ضبطها.
شكرا لك على الإبلاغ عنها بشكل منفصل!
كأثر جانبي ، يبدو أن https://build.libelektra.org/jenkins/job/elektra-git-buildpackage-jessie/ يعمل مرة أخرى منذ أمس ...
يبدو أن GPG لديها مشكلة مع البيئة النظيفة. سأجرب ضبط المتغير GNUPGHOME
على /tmp
. يعتمد GPG على هذا الدليل (الافتراضي هو ~/.gnupg/
) للبحث عن سلسلة المفاتيح الخاصة به. أعتقد أن معلومات gpg-agent
مخزنة أيضًا في هذا الدليل. قد يؤدي تعيينه إلى نفس الدليل لجميع الاختبارات أيضًا إلى إصلاح خطأ gpg-agents
إنتاجه لكل تشغيل اختبار (انظر # 1928).
نعم ، اعتقدت أيضًا أن حالات اختبار التشفير الفاشلة مرتبطة بـ # 1928. يبدو أن gpg يستخدم .gnupg أسفل TMPDIR. (على الأقل ترى بقايا .gnupg بعد تشغيل TMPDIR=`pwd`/x ctest --output-on-failure -R fcrypt
).
قد تظهر حالات اختبار fcrypt الفاشلة خطأ في معالجة الملفات المؤقتة ، والتي تتعلق أيضًا بـ TMPDIR.
يبدو أن gpg يستخدم .gnupg أسفل TMPDIR
هذا افتراض خاطئ. يستخدم gpg ~ / .gnupg كإعداد افتراضي لذلك لا يرتبط بـ TMPDIR بل بـ HOME.
يرجى أيضًا ملاحظة أن تعيين GNUPGHOME على نفس الدليل لجميع الاختبارات قد يؤثر على تنفيذ الاختبار المتوازي.
هذا افتراض خاطئ
أي افتراض تقصد؟ كنت أشير فقط إلى أنني حصلت على مجلد .gnupg
داخل TMPDIR.
mkdir x && env TMPDIR=`pwd`/x ctest --output-on-failure -R fcrypt; find x
Test project /home/markus/Projekte/Elektra/build
Start 64: testmod_fcrypt
1/1 Test #64: testmod_fcrypt ...................***Failed 0.02 sec
FCRYPT TESTS
==================
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:187: error in test_file_crypto_operations: kdb set failed
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:188: error in test_file_crypto_operations: file content did not change during encryption
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:191: error in test_file_crypto_operations: kdb get (pregetstorage) failed
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:195: error in test_file_crypto_operations: kdb get (postgetstorage) failed
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:196: error in test_file_crypto_operations: postgetstorage did not encrypt the file again
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:231: error in test_file_signature_operations: kdb set failed
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:232: error in test_file_signature_operations: file content did not change during encryption
/home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:235: error in test_file_signature_operations: kdb get failed
fcrypt Results: 39 Tests done — 8 errors.
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 0.03 sec
The following tests FAILED:
64 - testmod_fcrypt (Failed)
Errors while running CTest
x
x/elektra-test.qPoz5P
x/elektra-test.qPoz5P/.gnupg
x/elektra-test.qPoz5P/.gnupg/random_seed
x/elektra-test.qPoz5P/.gnupg/trustdb.gpg
x/elektra-test.qPoz5P/.gnupg/pubring.kbx~
x/elektra-test.qPoz5P/.gnupg/pubring.kbx
ذلك لأن شيئًا ما في الاختبارات (ctest؟) يعيّن الدليل الرئيسي لكل مجموعة اختبار إلى tmpdir في TMPDIR.
ينشئ GPG الملفات في HOME ، لكن HOME مضبوط على TMPDIR / randomdir / بواسطة مجموعة الاختبار.
ومن هنا فإن وجهة نظري هي أنه ليس خطأ tmpdir الوحيد ويجب ألا يقتصر جهد التصحيح عليه.
أعتقد أنه من الجيد أن يكون لديك قوائم منزلية منفصلة لكل اختبار حتى لا تؤثر على بعضها البعض (الموازاة) وبالتالي لا تعتقد أن تجاوز أدلة gpg لمشاركة دليل واحد فكرة جيدة.
نعم اوافق.
هل # 1977 منطقي؟ أم يجب أن يتم ذلك بعد انتهاء ctest
بالكامل؟
أو يُسأل بشكل مختلف: هل ينجو وكيل gpg أثناء تشغيل مجموعة اختبار واحدة أم يتم إعادة نشرها لكل مجموعة اختبار؟
@ markus2330 كما هو مذكور في # 2040. لقد اتبعت التعليمات الخاصة ببناء صور Docker. ركضت داخل حاوية الرصيف:
# cmake -DBUILD_DOCUMENTATION=OFF -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
# make -j16
# mkdir x
# TMPDIR=`pwd`/x ctest -R crypt .
Test project /elektra/build
Start 46: testmod_crypto_openssl
1/3 Test #46: testmod_crypto_openssl ........... Passed 1.32 sec
Start 47: testmod_crypto_gcrypt
2/3 Test #47: testmod_crypto_gcrypt ............ Passed 1.16 sec
Start 48: testmod_crypto_botan
3/3 Test #48: testmod_crypto_botan ............. Passed 1.52 sec
100% tests passed, 0 tests failed out of 3
Label Time Summary:
memleak = 1.16 sec (1 test)
Total Test time (real) = 4.01 sec
لذا (جزء من) المشكلة هي أن حالات الاختبار تفترض وجود TMPDIR. ولا يمكنك إعادة إنتاجه لأنك دائمًا ما أنشأت الدليل قبل إجراء الاختبارات: ابتسم:
لكن بالنسبة لي ، فإن fcrypt مع ذلك يفشل ، حتى عندما يكون x موجودًا (لم تقم بتشغيل fcrypt). لكن مع رسائل أخرى:
64: FCRYPT TESTS
64: ==================
64:
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:187: error in test_file_crypto_operations: kdb set failed
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:188: error in test_file_crypto_operations: file content did not change during encryption
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:191: error in test_file_crypto_operations: kdb get (pregetstorage) failed
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:195: error in test_file_crypto_operations: kdb get (postgetstorage) failed
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:196: error in test_file_crypto_operations: postgetstorage did not encrypt the file again
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:231: error in test_file_signature_operations: kdb set failed
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:232: error in test_file_signature_operations: file content did not change during encryption
64: /home/markus/Projekte/Elektra/current/src/plugins/fcrypt/testmod_fcrypt.c:235: error in test_file_signature_operations: kdb get failed
64:
64: fcrypt Results: 39 Tests done — 8 errors.
1/1 Test #64: testmod_fcrypt ...................***Failed 0.02 sec
لكنها تعمل في الحاوية الخاصة بي (كنت أنتظر وقتًا طويلاً لإسقاط هذا الخط: يضحك :) ...
jenkins<strong i="6">@924c627f07b8</strong>:/elektra/build$ ctest --output-on-failure -R fcrypt
Test project /elektra/build
Start 59: testmod_fcrypt
1/1 Test #59: testmod_fcrypt ................... Passed 1.07 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 1.08 sec
jenkins<strong i="7">@924c627f07b8</strong>:/elektra/build$ TMPDIR=`pwd`/x ctest --output-on-failure -R fcrypt
Test project /elektra/build
Start 59: testmod_fcrypt
1/1 Test #59: testmod_fcrypt ...................***Failed 0.01 sec
FCRYPT TESTS
==================
/elektra/tests/cframework/tests.c:80: error in init: mkdtemp failed
/elektra/tests/cframework/tests.c:90: error in init: mkstemp failed
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:159: error in test_gpg: failed to install the GPG test key
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:71: error in writeTestFile: can not write to temporary file
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:187: error in test_file_crypto_operations: kdb set failed
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:99: error in isTestFileCorrect: can not read from temporary file
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:191: error in test_file_crypto_operations: kdb get (pregetstorage) failed
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:99: error in isTestFileCorrect: can not read from temporary file
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:192: error in test_file_crypto_operations: file content could not be restored during decryption
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:195: error in test_file_crypto_operations: kdb get (postgetstorage) failed
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:99: error in isTestFileCorrect: can not read from temporary file
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:71: error in writeTestFile: can not write to temporary file
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:231: error in test_file_signature_operations: kdb set failed
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:99: error in isTestFileCorrect: can not read from temporary file
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:235: error in test_file_signature_operations: kdb get failed
/elektra/src/plugins/fcrypt/testmod_fcrypt.c:80: error in writeFaultySignatureFile: can not write to temporary file
fcrypt Results: 32 Tests done — 16 errors.
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 0.02 sec
The following tests FAILED:
59 - testmod_fcrypt (Failed)
Errors while running CTest
jenkins<strong i="8">@924c627f07b8</strong>:/elektra/build$ mkdir x
jenkins<strong i="9">@924c627f07b8</strong>:/elektra/build$ TMPDIR=`pwd`/x ctest --output-on-failure -R fcrypt
Test project /elektra/build
Start 59: testmod_fcrypt
1/1 Test #59: testmod_fcrypt ................... Passed 1.06 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 1.07 sec
jenkins<strong i="10">@924c627f07b8</strong>:/elektra/build$
بعض الأشياء الأكثر إثارة للاهتمام:
حسنًا ... تحقق من التحذيرات الخاصة بالاختبارات. c وسيصبح كل شيء أكثر وضوحًا ...
أنا أستعد للعلاقات العامة لذلك على الرغم من أنه يجب أن يحل بعض المشكلات.
إذا تمكن شخص ما من معرفة ما إذا كان لدى fcrypt بعض المسارات الصعبة المحددة في مكان ما والتي قد تؤدي إلى فشل الاختبارات ، فسيكون ذلك رائعًا.
Ìn # 2056 أقوم بتنظيف TMPDIR الذي تم إنشاؤه بشكل صحيح. هذا يحل مشكلة وكيل gpg العالقة.
يعمل أيضًا على إصلاح مشكلة في إصدارات glibc الأحدث التي لم تقم بتنشيط mkdtemp.
ومع ذلك ، لا يزال اختبار fcrypt يفشل بمجرد ضبط TMPDIR يدويًا وأعتقد أنه قد يكون هناك خطأ حقيقي في الكود في مكان ما.
jenkins<strong i="8">@0585a86e6f5f</strong>:~/workspace/build$ pidof gpg-agent
jenkins<strong i="9">@0585a86e6f5f</strong>:~/workspace/build$ TMPDIR=`pwd`/tmp ctest --output-on-failure -R crypt
Test project /home/jenkins/workspace/build
Start 51: testmod_crypto_openssl
1/4 Test #51: testmod_crypto_openssl ........... Passed 1.58 sec
Start 52: testmod_crypto_gcrypt
2/4 Test #52: testmod_crypto_gcrypt ............ Passed 1.34 sec
Start 53: testmod_crypto_botan
3/4 Test #53: testmod_crypto_botan ............. Passed 1.83 sec
Start 64: testmod_fcrypt
4/4 Test #64: testmod_fcrypt ...................***Failed 1.17 sec
FCRYPT TESTS
==================
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:187: error in test_file_crypto_operations: kdb set failed
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:188: error in test_file_crypto_operations: file content did not change during encryption
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:191: error in test_file_crypto_operations: kdb get (pregetstorage) failed
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:195: error in test_file_crypto_operations: kdb get (postgetstorage) failed
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:196: error in test_file_crypto_operations: postgetstorage did not encrypt the file again
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:231: error in test_file_signature_operations: kdb set failed
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:232: error in test_file_signature_operations: file content did not change during encryption
/home/jenkins/workspace/src/plugins/fcrypt/testmod_fcrypt.c:235: error in test_file_signature_operations: kdb get failed
fcrypt Results: 39 Tests done — 8 errors.
75% tests passed, 1 tests failed out of 4
Label Time Summary:
memleak = 1.34 sec (1 test)
Total Test time (real) = 5.98 sec
The following tests FAILED:
64 - testmod_fcrypt (Failed)
Errors while running CTest
jenkins<strong i="10">@0585a86e6f5f</strong>:~/workspace/build$ pidof gpg-agent
jenkins<strong i="11">@0585a86e6f5f</strong>:~/workspace/build$ ls -l tmp
total 0
ومع ذلك ، لا يزال اختبار fcrypt يفشل بمجرد ضبط TMPDIR يدويًا وأعتقد أنه قد يكون هناك خطأ حقيقي في الكود في مكان ما.
أنت على صواب!
getTemporaryFileName
in fcrypt.c
لا يتحقق من البيئة. لذلك إذا لم يتم تحديد tmpdir
في تكوين المكون الإضافي ، فإنه يستخدم /tmp
كبديل افتراضي.
أفترض أن تحديد الأولويات الصحيح هو:
$TMPDIR
/tmp
هل توافق؟
ISO / IEC 9945 (POSIX): المسار الموفر بواسطة متغير البيئة الأول الموجود في القائمة TMPDIR و TMP و TEMP و TEMPDIR. إذا لم يتم العثور على أي من هذه ، "/ tmp".
نظرًا لأننا نستخدم mkdtemp (POSIX 2008) على أي حال ، يمكنك على الأرجح استخدام ذلك أيضًا والتخلص من بعض التعليمات البرمجية.
شكرا لك على المعلومات! هل تمكنت من التحقق من أن الإصلاح المقترح في # 2090 يعمل على إصلاح مشكلة الاختبار fcrypt
على خادم الإنشاء؟
إذا كان يعمل على نظامك باستخدام TMPDIR = dir / that / موجود ctest -R fcrypt ، فيجب أن يعمل على خادم الإنشاء أيضًا.
يجب إصلاح المشكلة الآن.
أنا اتفق
لا يزال يبدو أن هناك نوعًا من الغرابة في الاختبارات. أقوم بتشغيل بعض البنيات الرئيسية في الغالب لضبط المنفذ والإعدادات المتوازية لأننا لم نعد نفعل فرط مؤشرات الترابط. وفي إحدى الحالات فشلت الاختبارات فجأة مع نفس مشكلة "تعذر تثبيت المفتاح" مرة أخرى:
https://build.libelektra.org/jenkins/blue/organizations/jenkins/libelektra/detail/master/122/pipeline/410
آسف للتراكم هنا ، لكنني واجهت الخطأ failed to install the GPG test key
أيضًا. أنا أستخدم vagrant artful32 vm ويمكنني إعادة إنتاج هذه الأخطاء باستمرار (الفرع الرئيسي):
55/198 Test #55: testmod_crypto_gcrypt ....................***Failed 0.60 sec
CYPTO TESTS
==================
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/crypto/test_internals.h:273: error in test_gpg: failed to install the GPG test key
crypto_gcrypt Results: 65 Tests done — 1 error.
66/198 Test #66: testmod_fcrypt ...........................***Failed 0.03 sec
FCRYPT TESTS
==================
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:160: error in test_gpg: failed to install the GPG test key
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:188: error in test_file_crypto_operations: kdb set failed
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:189: error in test_file_crypto_operations: file content did not change during encryption
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:192: error in test_file_crypto_operations: kdb get (pregetstorage) failed
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:196: error in test_file_crypto_operations: kdb get (postgetstorage) failed
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:197: error in test_file_crypto_operations: postgetstorage did not encrypt the file again
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:232: error in test_file_signature_operations: kdb set failed
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:233: error in test_file_signature_operations: file content did not change during encryption
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/fcrypt/testmod_fcrypt.c:236: error in test_file_signature_operations: kdb get failed
fcrypt Results: 39 Tests done — 9 errors.
يمكنني تقديم ملف vagrantfile عبر العلاقات العامة إذا كان ذلك يساعد في إعادة إنتاج الأخطاء.
شكرا على الإبلاغ! هل يمكنك إخبارنا بـ TMPDIR و HOME؟ حاول إعادة إنتاجها بـ env -i
.
@ petermax2 هل لديك الوقت للنظر في ذلك؟
للأخطاء أعلاه:
TMPDIR: فارغ
المنزل: /home/jenkins/workspace/elektra-master-full-artful32/user
بالنسبة إلى env -i
، يفشل اختبار آخر بعد ذلك:
54/198 Test #54: testmod_crypto_openssl ...................***Failed 0.31 sec
CYPTO TESTS
==================
/home/jenkins/workspace/elektra-master-full-artful32/src/plugins/crypto/test_internals.h:273: error in test_gpg: failed to install the GPG test key
crypto_openssl Results: 65 Tests done — 1 error.
لست متأكدًا مما إذا كانت هذه مصادفة ، لكن هذه كانت المرة الأولى التي يفشل فيها هذا الاختبار.
يمكنني التحقيق خلال عطلة نهاية الأسبوع. mpranj هل يمكن أن ترسل لي ملف المتشرد من فضلك؟
@ petermax2 the Vagrantfile & خطوات إعادة الإنتاج موجودة في # 2211. آمل أن يساعد هذا في تصحيح المشكلة بسهولة أكبر. ربما هي في الحقيقة مجرد مشكلة ENV.
لم يتم حذف $HOMEDIR
بعد انتهاء حالة الاختبار ، وبالتالي فإن gpg-agent
يحافظ على التشغيل ، مما يسبب المشكلة. إذا تم تعيين GNUPGHOME
إلى دليل مختلف ، تنجح حالة الاختبار مرة أخرى.
تحرير: يتم حذف $HOMEDIR
بشكل صحيح ، ولكن لا يتم إنهاء gpgagent
كما هو متوقع.
تحرير الإصدار 2:
vagrant@ubuntu-artful:~/libelektra/build$ gpg --list-key
gpg: directory '/home/vagrant/.gnupg' created
gpg: new configuration file '/home/vagrant/.gnupg/dirmngr.conf' created
gpg: new configuration file '/home/vagrant/.gnupg/gpg.conf' created
gpg: keybox '/home/vagrant/.gnupg/pubring.kbx' created
gpg: /home/vagrant/.gnupg/trustdb.gpg: trustdb created
vagrant@ubuntu-artful:~/libelektra/build$ pgrep agent
3630
vagrant@ubuntu-artful:~/libelektra/build$ rm -rf /home/vagrant/.gnupg
vagrant@ubuntu-artful:~/libelektra/build$ pgrep agent
3630
vagrant@ubuntu-artful:~/libelektra/build$
شكرا على التحقيق!
هل هناك نظرة عامة على الإصدار الذي يقوم env vars بعمل ماذا ومنذ متى يغلق وكيل gpg عند إزالة الملفات؟
ما هي أفضل طريقة لإصلاح هذا؟
آسف على التأخير ، لم يكن لدي وقت لإجراء مزيد من التحقيق حتى الآن.
هل هناك نظرة عامة على الإصدار الذي يقوم env vars بعمل ماذا ومنذ متى يغلق وكيل gpg عند إزالة الملفات؟
كل الوثائق التي وجدتها كانت
_ (GNUPGHOME) إذا تم استخدام دليل المجموعة بدلاً من "~ / .gnupg" ._ [1]
ما هي أفضل طريقة لإصلاح هذا؟
لست متأكدا. لا يبدو أن هناك حلًا واحدًا يحل جميع المشكلات التي نواجهها مع GnuPG. حاولت مرة حفظ PIDs لوكلاء Startetd GnuPG لكن الأمر لم ينجح.
هل لديك أي أفكار؟
ربما لا يجب أن نحاول حل كل مشكلة ممكنة وأن ندعم فقط بعض إصدارات gnupg؟
ما هي إصدارات gnupg التي لا تنظف نفسها بعد إزالة ملفاتها؟ هل هي ذات صلة بما يكفي لاستمرار دعمهم؟ ربما نقوم ببساطة بتعطيل الاختبارات لهم؟
ما هي إصدارات gnupg التي لا تنظف نفسها بعد إزالة ملفاتها؟
إصدار Ubuntu Artful (17.10) من gpg هو الإصدار الوحيد حتى الآن حيث لا ينتهي الوكيل بعد حذف GNUPGHOME
. لم أر هذا السلوك في الإصدارات الأخرى من gpg.
GPG في Ubuntu Artful هو 2.1.15. في Ubuntu 18.04.1 ، يتم استخدام إصدار gpg 2.2.4. الإصدار الأحدث هو 2.2.10.
قد نضيف ملاحظة تبعية مفادها أن إصدار gpg> = 2.2 مطلوب.
إذا فهمت ملاحظات الإصدار بشكل صحيح ، فسيتم تنفيذ الإنهاء في إصدار gpg 2.1.16. انظر ملاحظات الإصدار .
تحرير: تنص ملاحظة الإصدار على أن الإنهاء يتم تنفيذه فقط لنظام التشغيل Linux. بمعنى أنه في أنظمة تشغيل أخرى يجب أن نحصل على نفس المشكلة. سأختبرها على FreeBSD.
سأختبرها على FreeBSD.
نعم ، لا يزال gpg-agent
قيد التشغيل بعد إزالة GNUPGHOME
.
ATM أنا أختبر حلاً آخر. يؤدي تنفيذ gpg-connect-agent KILLAGENT
إلى إيقاف تشغيل الوكيل في إصدار gpg 2.2.4. إذا كان الأمر execv
هذا الأمر بعد اكتمال اختبار الوحدة ، فيجب إيقاف تشغيل gpg-agent
. سأختبر هذا الحل في نظام Linux و FreeBSD. يرجى انتظار تعليق أو نأمل في العلاقات العامة!
الرجاء إعادة فتح هذه المشكلة إذا حدثت المشكلة مرة أخرى.
التعليق الأكثر فائدة
@ petermax2 the Vagrantfile & خطوات إعادة الإنتاج موجودة في # 2211. آمل أن يساعد هذا في تصحيح المشكلة بسهولة أكبر. ربما هي في الحقيقة مجرد مشكلة ENV.