Sebelum bc804c207df391c339d880d3487ea3c16eb4ee4e, pengujian berikut gagal di beberapa lingkungan saat membuat paket debian:
EDIT markus: Anda juga dapat mereproduksi masalah blockresolver dan fcrypt dengan memanipulasi HOME dan TMPDIR. Tidak diperlukan pembuatan paket.
[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]
Di # 1965 kami memiliki beberapa diskusi penemuan bug yang pada akhirnya mengarah ke https://github.com/ElektraInitiative/libelektra/commit/356317a6ab811f524ebaa1dbf40f19477b966fc1 sebagai komit yang membuat kesalahan muncul. Namun membersihkan lingkungan seharusnya tidak memiliki efek samping membuat tes lulus.
Jika pengujian membutuhkan pengaturan lingkungan tertentu, mereka harus mengaturnya.
Terima kasih telah melaporkannya secara terpisah!
Sebagai efek samping https://build.libelektra.org/jenkins/job/elektra-git-buildpackage-jessie/ sepertinya bisa berfungsi lagi sejak kemarin ...
GPG tampaknya memiliki masalah dengan lingkungan yang dibersihkan. Saya akan bereksperimen dengan mengatur variabel GNUPGHOME
menjadi /tmp
. GPG bergantung pada direktori ini (defaultnya adalah ~/.gnupg/
) untuk mencari key-chain-nya. Saya pikir gpg-agent
info juga disimpan di direktori ini. Menyetelnya ke direktori yang sama untuk semua pengujian mungkin juga memperbaiki kesalahan beberapa gpg-agents
muncul untuk setiap pengujian yang dijalankan (lihat # 1928).
Ya, saya juga berpikir bahwa kasus pengujian crypto yang gagal terkait dengan # 1928. Tampaknya gpg menggunakan .gnupg di bawah TMPDIR. (Setidaknya Anda melihat sisa .gnupg setelah menjalankan TMPDIR=`pwd`/x ctest --output-on-failure -R fcrypt
).
Kasus uji fcrypt yang gagal mungkin menunjukkan bug dalam penanganan file sementara, juga terkait dengan TMPDIR.
tampaknya gpg menggunakan .gnupg di bawah TMPDIR
ini adalah asumsi yang salah. gpg menggunakan ~ / .gnupg sebagai default sehingga tidak terkait dengan TMPDIR tetapi ke HOME.
Harap perhatikan juga bahwa menyetel GNUPGHOME ke direktori yang sama untuk semua pengujian mungkin memengaruhi eksekusi pengujian paralel.
ini adalah asumsi yang salah
Asumsi apa yang Anda maksud? Saya hanya merujuk bahwa saya mendapatkan folder .gnupg
dalam 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
itu karena sesuatu dalam tes (ctest?) menyetel direktori home untuk setiap rangkaian pengujian ke tmpdir di TMPDIR.
GPG membuat file di HOME, tetapi HOME disetel ke TMPDIR / randomdir / oleh testsuite.
Oleh karena itu, maksud saya adalah bahwa ini bukan satu-satunya kesalahan tmpdir dan upaya debugging tidak boleh dibatasi padanya.
Saya pikir itu adalah ide yang baik untuk memiliki direktori home terpisah untuk setiap tes sehingga mereka tidak saling mempengaruhi (paralelisasi) dan oleh karena itu jangan berpikir bahwa menimpa direktori gpg untuk berbagi satu direktori adalah ide yang bagus.
Ya saya setuju.
Apakah # 1977 masuk akal? Atau haruskah dilakukan setelah ctest
selesai seluruhnya?
Atau ditanya secara berbeda: Apakah gpg-agent bertahan dari satu rangkaian pengujian atau apakah mereka respaw untuk setiap rangkaian pengujian?
@ markus2330 Seperti disebutkan di # 2040. Saya mengikuti instruksi untuk membuat image Docker. Di dalam kontainer buruh pelabuhan saya berlari:
# 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
Jadi (bagian dari) masalahnya adalah bahwa kasus uji mengasumsikan TMPDIR ada. Dan Anda tidak dapat mereproduksinya karena Anda selalu membuat direktori sebelum menjalankan tes: smile:
Tapi, bagi saya fcrypt tetap gagal, bahkan ketika x ada (Anda tidak menjalankan fcrypt). Tetapi dengan pesan lain:
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
Tapi itu berhasil di wadah saya (saya sudah menunggu lama untuk menjatuhkan baris itu: tertawa:) ...
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$
beberapa hal yang lebih menarik:
baik ... periksa peringatan untuk tes.c dan semuanya menjadi lebih jelas ...
Saya sedang mempersiapkan PR untuk itu meskipun yang seharusnya menyelesaikan beberapa masalah.
Jika seseorang dapat mengetahui apakah fcrypt memiliki beberapa jalur keras yang ditentukan di suatu tempat yang dapat menyebabkan pengujian gagal, itu akan menyenangkan.
Ìn # 2056 Saya membersihkan TMPDIR yang dihasilkan dengan benar. Ini menyelesaikan masalah gpg-agent yang masih ada.
Ini juga memperbaiki masalah dengan versi glibc yang lebih baru yang tidak mengaktifkan mkdtemp.
Namun uji fcrypt masih gagal segera setelah TMPDIR diatur secara manual dan saya pikir mungkin ada bug nyata dalam kode di suatu tempat.
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
Namun uji fcrypt masih gagal segera setelah TMPDIR diatur secara manual dan saya pikir mungkin ada bug nyata dalam kode di suatu tempat.
Kamu benar!
getTemporaryFileName
di fcrypt.c
tidak memeriksa lingkungan. Jadi jika tidak ada tmpdir
yang ditentukan dalam konfigurasi plugin, itu menggunakan /tmp
sebagai cadangan default.
Saya kira prioritas yang benar adalah:
$TMPDIR
/tmp
Apa kamu setuju?
ISO / IEC 9945 (POSIX): Jalur yang disediakan oleh variabel lingkungan pertama yang ditemukan dalam daftar TMPDIR, TMP, TEMP, TEMPDIR. Jika tidak ada yang ditemukan, "/ tmp".
Karena kami menggunakan mkdtemp (POSIX 2008), Anda mungkin bisa menggunakannya juga dan membuang beberapa kode.
Terima kasih atas informasinya! Apakah Anda dapat memverifikasi bahwa perbaikan yang diusulkan di # 2090 memperbaiki masalah tes fcrypt
di server build?
jika berfungsi di sistem Anda dengan TMPDIR = dir / that / existing ctest -R fcrypt, ini juga akan berfungsi di server build.
Masalahnya harus diperbaiki sekarang.
saya setuju
Tampaknya masih ada keanehan dengan tes tersebut. Saya menjalankan beberapa build master sebagian besar ke pelaksana finetune dan pengaturan paralel karena kami tidak melakukan hyperthreading lagi. Dan dalam satu kasus, pengujian tiba-tiba gagal dengan masalah 'tidak dapat menginstal kunci' yang sama lagi:
https://build.libelektra.org/jenkins/blue/organizations/jenkins/libelektra/detail/master/122/pipeline/410
Maaf menumpuk di sini, tapi saya juga mengalami kesalahan failed to install the GPG test key
. Saya menggunakan vagrant artful32 vm dan dapat secara konsisten mereproduksi kesalahan ini (cabang master):
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.
Saya dapat memberikan vagrantfile melalui PR jika membantu mereproduksi kesalahan.
Terima kasih telah melaporkan! Bisakah Anda memberi tahu kami TMPDIR dan HOME Anda? Cobalah untuk mereproduksinya dengan env -i
.
@ petermax2 Apakah Anda punya waktu untuk melihatnya?
Untuk kesalahan di atas:
TMPDIR: kosong
BERANDA: /home/jenkins/workspace/elektra-master-full-artful32/user
Adapun env -i
, satu tes lagi gagal:
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.
Tidak yakin apakah ini kebetulan, tetapi ini adalah pertama kalinya tes ini gagal.
Saya bisa menyelidikinya selama akhir pekan. @mpranj bisakah anda mengirimkan saya file gelandangan?
@ petermax2 the Vagrantfile & langkah-langkah untuk mereproduksi ada di # 2211. Saya harap ini membantu melakukan debug masalah dengan lebih mudah. Mungkin ini benar-benar hanya masalah ENV.
$HOMEDIR
tidak dihapus setelah kasus uji selesai, sehingga gpg-agent
tetap berjalan, yang menyebabkan masalah. Jika GNUPGHOME
diset ke direktori yang berbeda, kasus uji berhasil lagi.
EDIT: $HOMEDIR
sedang dihapus dengan benar, namun gpgagent
tidak berhenti seperti yang diharapkan.
EDIT v2:
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$
Terima kasih atas penyelidikannya!
Apakah ada gambaran umum di versi mana env vars melakukan apa dan sejak kapan agen gpg menutup saat file dihapus?
Apa cara terbaik untuk memperbaikinya?
Maaf atas keterlambatannya, sejauh ini saya tidak punya waktu untuk menyelidiki lebih lanjut.
Apakah ada gambaran umum di versi mana env vars melakukan apa dan sejak kapan agen gpg menutup saat file dihapus?
Semua dokumentasi yang bisa saya temukan adalah
_ (GNUPGHOME) Jika direktori set digunakan sebagai pengganti "~ / .gnupg" ._ [1]
Apa cara terbaik untuk memperbaikinya?
Saya tidak yakin. Sepertinya tidak ada solusi tunggal yang menyelesaikan semua masalah yang kita hadapi dengan GnuPG. Saya pernah mencoba untuk menyimpan PID dari agen GnuPG awal tetapi tidak berhasil dengan baik.
Apakah kamu punya ide
Mungkin kita sebaiknya tidak mencoba menyelesaikan setiap masalah yang mungkin terjadi dan hanya mendukung beberapa versi gnupg?
Versi gnupg mana yang tidak membersihkan dirinya sendiri setelah menghapus filenya? Apakah mereka cukup relevan untuk tetap mendukung mereka? Mungkin kita hanya menonaktifkan tes untuk mereka?
Versi gnupg mana yang tidak membersihkan dirinya sendiri setelah menghapus filenya?
Versi Ubuntu Artful (17.10) dari gpg sejauh ini adalah satu-satunya versi di mana agen tidak menghentikannya setelah menghapus GNUPGHOME
. Saya belum pernah melihat perilaku ini di versi gpg lainnya.
GPG di Ubuntu Artful adalah 2.1.15. Di Ubuntu 18.04.1 gpg versi 2.2.4 digunakan. Versi terbaru adalah 2.2.10.
Kami mungkin menambahkan catatan ketergantungan bahwa versi gpg> = 2.2 diperlukan.
Jika memahami catatan rilis dengan benar, penghentian diimplementasikan dalam gpg versi 2.1.16. Lihat Catatan Rilis .
EDIT: catatan rilis menyatakan bahwa penghentian hanya diterapkan untuk Linux. Artinya di OS lain kita harus mendapatkan masalah yang sama. Saya akan mengujinya di FreeBSD.
Saya akan mengujinya di FreeBSD.
Ya, gpg-agent
masih berjalan setelah GNUPGHOME
dihapus.
ATM Saya sedang menguji solusi lain. Menjalankan gpg-connect-agent KILLAGENT
akan mematikan agen di gpg versi 2.2.4. Jika kita execv
perintah ini setelah pengujian unit selesai, gpg-agent
harus dimatikan. Saya akan menguji solusi ini di Linux dan FreeBSD. Silahkan tunggu komentar atau semoga menjadi PR!
Silakan buka kembali masalah ini jika masalah terjadi lagi.
Komentar yang paling membantu
@ petermax2 the Vagrantfile & langkah-langkah untuk mereproduksi ada di # 2211. Saya harap ini membantu melakukan debug masalah dengan lebih mudah. Mungkin ini benar-benar hanya masalah ENV.