Avant bc804c207df391c339d880d3487ea3c16eb4ee4e, les tests suivants échouaient dans certains environnements lors de la construction de packages Debian:
EDIT markus: Vous pouvez également reproduire les problèmes de résolution de bloc et de fcrypt en manipulant HOME et TMPDIR. Aucune création de package n'est nécessaire.
[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]
En 1965, nous avons eu des discussions sur la recherche de bogues pointant finalement vers https://github.com/ElektraInitiative/libelektra/commit/356317a6ab811f524ebaa1dbf40f19477b966fc1 comme le commit qui faisait apparaître les erreurs. Cependant, le nettoyage de l'environnement ne devrait pas avoir pour effet secondaire de faire passer les tests.
Si les tests nécessitent certains paramètres environnementaux, ils doivent les définir.
Merci de le signaler séparément!
En guise d'effet secondaire, https://build.libelektra.org/jenkins/job/elektra-git-buildpackage-jessie/ semble fonctionner à nouveau depuis hier ...
GPG semble avoir un problème avec l'environnement dégagé. Je vais essayer de définir la variable GNUPGHOME
sur /tmp
. GPG s'appuie sur ce répertoire (la valeur par défaut est ~/.gnupg/
) pour rechercher son porte-clés. Je pense que les informations gpg-agent
sont également stockées dans ce répertoire. Le définir dans le même répertoire pour tous les tests peut également corriger l'erreur de plusieurs gpg-agents
apparaissant pour chaque test (voir # 1928).
Oui, je pensais aussi que les cas de test cryptographiques défaillants étaient liés à # 1928. Il semble que gpg utilise .gnupg sous le TMPDIR. (Au moins, vous voyez un .gnupg restant après avoir exécuté TMPDIR=`pwd`/x ctest --output-on-failure -R fcrypt
).
Les cas de test fcrypt qui échouent peuvent montrer un bogue dans la gestion des fichiers temporaires, également liés à TMPDIR.
il semble que gpg utilise .gnupg sous le TMPDIR
c'est une fausse hypothèse. gpg utilise ~ / .gnupg par défaut donc il n'est pas lié à TMPDIR mais à HOME.
Veuillez également noter que définir GNUPGHOME dans le même répertoire pour tous les tests peut influencer l'exécution des tests parallèles.
c'est une fausse hypothèse
De quelle hypothèse parlez-vous? Je faisais simplement référence au fait que j'obtiens un dossier .gnupg
dans 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
c'est parce que quelque chose dans les tests (ctest?) définit le répertoire personnel de chaque suite de tests sur un tmpdir dans TMPDIR.
GPG crée les fichiers dans HOME, mais HOME est défini sur TMPDIR / randomdir / par la suite de tests.
D'où mon point est que ce n'est pas la seule faute de tmpdir et l'effort de débogage ne devrait pas être limité à lui.
Je pense que c'est une bonne idée d'avoir des répertoires personnels séparés pour chaque test afin qu'ils ne s'influencent pas les uns les autres (parallélisation) et ne pense donc pas que remplacer les répertoires gpg pour partager un seul répertoire est une bonne idée.
Oui je suis d'accord.
Est-ce que # 1977 a du sens? Ou devrait-il être fait après que ctest
complètement terminé?
Ou demandé différemment: le gpg-agent survit-il à une exécution d'une seule suite de tests ou est-il réapparu pour chaque suite de tests?
@ markus2330 Comme mentionné dans # 2040. J'ai suivi les instructions pour créer les images Docker. À l'intérieur du conteneur Docker, j'ai couru:
# 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
Donc (une partie du) problème est que les cas de test supposent que le TMPDIR est présent. Et vous n'avez pas pu le reproduire car vous avez toujours créé le répertoire avant d'exécuter les tests: smile:
Mais, pour moi, fcrypt échoue néanmoins, même lorsque x est présent (vous n'avez pas exécuté fcrypt). Mais avec d'autres messages:
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
Mais ça marche dans mon container (j'attendais depuis longtemps pour laisser tomber cette ligne: rire:) ...
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$
des trucs plus intéressants:
eh bien ... vérifiez les avertissements pour tests.c et tout devient beaucoup plus clair ...
Je prépare un PR pour cela, ce qui devrait résoudre certains des problèmes.
Si quelqu'un pouvait découvrir si fcrypt a des chemins durs spécifiés quelque part qui pourraient conduire à l'échec des tests, ce serait bien.
Ìn # 2056 Je nettoie correctement le TMPDIR généré. Cela résout le problème persistant de gpg-agent.
Il corrige également un problème avec les nouvelles versions de la glibc qui n'activaient pas mkdtemp.
Cependant, le test fcrypt échoue toujours dès que TMPDIR est défini manuellement et je pense qu'il pourrait y avoir un vrai bug dans le code quelque part.
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
Cependant, le test fcrypt échoue toujours dès que TMPDIR est défini manuellement et je pense qu'il pourrait y avoir un vrai bug dans le code quelque part.
Tu as raison!
getTemporaryFileName
in fcrypt.c
ne vérifie pas l'environnement. Donc, si aucun tmpdir
n'est spécifié dans la configuration du plugin, il utilise /tmp
comme solution de secours par défaut.
Je suppose que la bonne hiérarchisation serait:
$TMPDIR
/tmp
Êtes-vous d'accord?
ISO / CEI 9945 (POSIX): Le chemin fourni par la première variable d'environnement trouvée dans la liste TMPDIR, TMP, TEMP, TEMPDIR. Si aucun de ceux-ci n'est trouvé, "/ tmp".
Puisque nous utilisons de toute façon mkdtemp (POSIX 2008), vous pourriez probablement l'utiliser également et vous débarrasser d'un peu de code.
Merci pour l'info! Avez-vous pu vérifier que le correctif proposé dans # 2090 corrige le problème de test fcrypt
sur le serveur de compilation?
s'il fonctionne sur votre système avec TMPDIR = dir / qui / existe ctest -R fcrypt, il devrait également fonctionner sur le serveur de construction.
Le problème devrait être résolu maintenant.
Je suis d'accord
Il semble encore y avoir une sorte de bizarrerie avec les tests. Je lance certaines versions de master principalement pour affiner l'exécuteur et les paramètres parallèles puisque nous ne faisons plus d'hyperthreading. Et dans un cas, les tests ont soudainement échoué avec le même problème `` Impossible d'installer la clé '' à nouveau:
https://build.libelektra.org/jenkins/blue/organizations/jenkins/libelektra/detail/master/122/pipeline/410
Désolé de m'empiler ici, mais j'ai aussi rencontré l'erreur failed to install the GPG test key
. J'utilise une vm artful32 vagrant et je peux reproduire systématiquement ces erreurs (branche principale):
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.
Je peux fournir le fichier vagrant via PR si cela aide à reproduire les erreurs.
Merci d'avoir signalé! Pouvez-vous nous dire votre TMPDIR et HOME? Essayez de le reproduire avec env -i
.
@ petermax2 Avez-vous le temps de l'examiner?
Pour les erreurs ci-dessus:
TMPDIR: vide
MAISON: /home/jenkins/workspace/elektra-master-full-artful32/user
Comme pour env -i
, un autre test échoue alors:
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.
Je ne sais pas s'il s'agit d'une coïncidence, mais c'était la première fois que ce test échouait.
Je peux enquêter pendant le week-end. @mpranj pouvez-vous m'envoyer le fichier vagrant s'il vous plaît?
@ petermax2 le fichier Vagrant et les étapes à suivre pour se reproduire se trouvent dans # 2211. J'espère que cela aide à déboguer le problème plus facilement. C'est peut-être juste un problème ENV.
$HOMEDIR
n'est pas supprimé une fois le cas de test terminé, donc le gpg-agent
continue de fonctionner, ce qui cause le problème. Si GNUPGHOME
est défini sur un répertoire différent, le scénario de test réussit à nouveau.
EDIT: $HOMEDIR
est supprimé correctement, mais gpgagent
ne se ferme pas comme prévu.
MODIFIER 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$
Merci pour l'enquête!
Existe-t-il une vue d'ensemble dans quelle version des variables d'environnement font quoi et depuis quand l'agent gpg se ferme lorsque les fichiers sont supprimés?
Quelle est la meilleure façon de résoudre ce problème?
Désolé pour le retard, je n'ai pas eu le temps d'enquêter plus avant jusqu'à présent.
Existe-t-il une vue d'ensemble dans quelle version des variables d'environnement font quoi et depuis quand l'agent gpg se ferme lorsque les fichiers sont supprimés?
Toute la documentation que j'ai pu trouver était
_ (GNUPGHOME) Si le répertoire défini est utilisé à la place de "~ / .gnupg" ._ [1]
Quelle est la meilleure façon de résoudre ce problème?
Je ne suis pas sûr. Il ne semble pas qu'il existe une solution unique qui résout tous les problèmes auxquels nous sommes confrontés avec GnuPG. Une fois, j'ai essayé de sauvegarder les PID des agents GnuPG startetd mais cela ne s'est pas bien passé.
Avez-vous des idées?
Peut-être ne devrions-nous pas essayer de résoudre tous les problèmes possibles et ne prendre en charge que certaines versions de gnupg?
Quelles versions de gnupg ne se nettoient pas après avoir supprimé leurs fichiers? Sont-ils suffisamment pertinents pour continuer à les soutenir? Peut-être que nous désactivons simplement les tests pour eux?
Quelles versions de gnupg ne se nettoient pas après avoir supprimé leurs fichiers?
La version de gpg d'Ubuntu Artful (17.10) est la seule version à ce jour où l'agent ne s'arrête pas après avoir supprimé le GNUPGHOME
. Je n'ai pas vu ce comportement dans d'autres versions de gpg.
Le GPG dans Ubuntu Artful est 2.1.15. Dans Ubuntu 18.04.1 gpg, la version 2.2.4 est utilisée. La dernière version est la 2.2.10.
Nous pourrions ajouter une note de dépendance indiquant que la version gpg> = 2.2 est requise.
Si vous comprenez correctement les notes de publication, la terminaison est implémentée dans la version gpg 2.1.16. Voir les notes de version .
EDIT: la note de publication indique que la terminaison n'est implémentée que pour Linux. Cela signifie que sur d'autres OS, nous devrions avoir le même problème. Je vais le tester sur FreeBSD.
Je vais le tester sur FreeBSD.
Oui, gpg-agent
est toujours en cours d'exécution après la suppression de GNUPGHOME
.
ATM Je teste une autre solution. L'exécution de gpg-connect-agent KILLAGENT
arrête l'agent dans la version gpg 2.2.4. Si nous execv
cette commande une fois le test unitaire terminé, le gpg-agent
devrait s'arrêter. Je vais tester cette solution sous Linux et FreeBSD. Veuillez attendre un commentaire ou, espérons-le, un PR!
Veuillez rouvrir ce problème si le problème se reproduit.
Commentaire le plus utile
@ petermax2 le fichier Vagrant et les étapes à suivre pour se reproduire se trouvent dans # 2211. J'espère que cela aide à déboguer le problème plus facilement. C'est peut-être juste un problème ENV.