Libelektra: Pengujian berperilaku aneh di lingkungan tertentu (paket debian)

Dibuat pada 11 Mei 2018  ·  35Komentar  ·  Sumber: ElektraInitiative/libelektra

Sebelum bc804c207df391c339d880d3487ea3c16eb4ee4e, pengujian berikut gagal di beberapa lingkungan saat membuat paket debian:

  • testmod_blockresolver
  • testmod_crypto_openssl
  • testmod_crypto_gcrypt
  • testmod_crypto_botan
  • testmod_fcrypt

EDIT markus: Anda juga dapat mereproduksi masalah blockresolver dan fcrypt dengan memanipulasi HOME dan TMPDIR. Tidak diperlukan pembuatan paket.

errorlogs

blockresolver

[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.

crypto_openssl

[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.

crypto_gcrypt

[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

crypto_botan

[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

fcrypt

[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] 

diskusi

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.

bug

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.

Semua 35 komentar

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:

  • mengapa mkdtemp gagal?
  • clean_temp_home tampaknya telah ditulis untuk membersihkan hal-hal gnupg. Mengapa tidak berhasil?

    • sepertinya namanya berubah

  • bahkan ketika dir di TMPDIR ada saya memiliki fcrypt gagal (tes lain lulus)

    • ketika tidak menentukan lulus fcrypt TMPDIR

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:

  1. konfigurasi plugin
  2. lingkungan $TMPDIR
  3. penggantian default /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

Sumber

  • [1] [https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration.html](https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration.html)

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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

mpranj picture mpranj  ·  4Komentar

sanssecours picture sanssecours  ·  4Komentar

e1528532 picture e1528532  ·  4Komentar

markus2330 picture markus2330  ·  4Komentar

markus2330 picture markus2330  ·  3Komentar