Fcrypt 测试用例在 master 上失败:
122/131 MemCheck #93: testmod_fcrypt ...................***Failed 29.99 sec
OK closing connection
Terminating gpg-agent returned with status “256”FCRYPT TESTS
==================
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:161: error in test_gpg: failed to install the GPG test key
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:189: error in test_file_crypto_operations: kdb set failed
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:190: error in test_file_crypto_operations: file content did not change during encryption
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:193: error in test_file_crypto_operations: kdb get (pregetstorage) failed
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:197: error in test_file_crypto_operations: kdb get (postgetstorage) failed
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:198: error in test_file_crypto_operations: postgetstorage did not encrypt the file again
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:233: error in test_file_signature_operations: kdb set failed
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:234: error in test_file_signature_operations: file content did not change during encryption
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/src/plugins/fcrypt/testmod_fcrypt.c:237: error in test_file_signature_operations: kdb get failed
fcrypt Results: 39 Tests done — 9 errors.
@petermax2 有什么想法吗?
似乎 gpgme 也受到影响:
62/137 MemCheck #103: testmod_gpgme ....................***Failed 44.22 sec
GPGME TESTS
==================
[repetitions cut]
GPGME TESTS
==================
OK closing connection
Terminating gpg-agent returned with status “256”GPGME TESTS
==================
/home/jenkins/workspace/libelektra_PR-1950-LKQXQDFYJCAZVRKFRKER3H4ZYYVI5QHMP5O7HG5TCW7WRVITCO5A/src/plugins/gpgme/testmod_gpgme.c:227: error in test_encryption_decryption: kdb get failed
/home/jenkins/workspace/libelektra_PR-1950-LKQXQDFYJCAZVRKFRKER3H4ZYYVI5QHMP5O7HG5TCW7WRVITCO5A/src/plugins/gpgme/testmod_gpgme.c:243: error in test_encryption_decryption: key type not restored to string during decryption
/home/jenkins/workspace/libelektra_PR-1950-LKQXQDFYJCAZVRKFRKER3H4ZYYVI5QHMP5O7HG5TCW7WRVITCO5A/src/plugins/gpgme/testmod_gpgme.c:244: error in test_encryption_decryption: key content not restored during decryption
/home/jenkins/workspace/libelektra_PR-1950-LKQXQDFYJCAZVRKFRKER3H4ZYYVI5QHMP5O7HG5TCW7WRVITCO5A/src/plugins/gpgme/testmod_gpgme.c:254: error in test_encryption_decryption: key content not restored during decryption
gpgme Results: 45 Tests done — 4 errors.
@petermax2 有什么想法吗?
老实说,没有。 返回代码不是文档,但它们可能意味着:
./src/gpg-error.h.in:968:#define GPGRT_LOG_RUN_DETACHED 256
./src/gpg-error.h.in:1175:#define ARGPARSE_FLAG_STOP_SEEN 256 /* Set to true if a "--" has been seen. */
通过浏览代码,我无法找到256
的含义。
此外,我无法像往常一样在本地重现该问题。 :失望的:
感谢您的观看!
复制将相当困难,它似乎只是偶尔发生,并且只发生在 master 分支上( @sanssecours或者你是否也在 PR 中看到过?)。
谁打印
OK closing connection
和
Terminating gpg-agent returned with status “256”
?
我在做 PR 时偶然看到了这一点。 重建后就消失了。
我想我也在我的私人 jenkins 上在极高的负载下看到了它。 有什么可能在这里超时吗?
有什么可能在这里超时吗?
或许! 取决于 libassuan 的实现。
状态更新:我仍然不知道如何克服这个问题。 欢迎任何想法!
谢谢你的更新!
我认为前进的道路是将其报告给 GPG 人员。 我们已经知道所有相关的东西,比如退出代码。 但只有他们(如果有的话)才能解释这是如何发生的。
如果他们说:哦,是的,这个错误有时会发生,我们应该考虑如果发生这个错误,我们的插件会再次运行 gpg。
顺便提一句。 我不确定是否仍然出现此问题。 我最近没有看到他们。
顺便提一句。 我不确定是否仍然出现此问题。 我最近没有看到他们。
谢谢你提醒我。 而在其他构建系统上,问题从未发生过?
而在其他构建系统上,问题从未发生过?
它可能有,但根据问题 #2439 testmod_fcrypt
的描述,它只会在 Jenkins 构建服务器上定期失败。
如果有人注意到失败,请在此处发布。
我们还在上次 PR (#3395 ) 期间观察到由testmod_crypto
在 Debian Unstable 上引起的完全相同的错误。
如果错误再次发生,请随时重新打开此问题。
错误再次发生,我还在研究中。
如果错误再次发生,请 ping 我。
再次发生在
80/137 MemCheck #87: testmod_gpgme ....................***Failed 43.49 sec
GPGME TESTS
==================
[... mpranj truncated a little bit here ...]
GPGME TESTS
==================
/home/jenkins/workspace/libelektra_PR-3419/src/plugins/gpgme/testmod_gpgme.c:227: error in test_encryption_decryption: kdb get failed
/home/jenkins/workspace/libelektra_PR-3419/src/plugins/gpgme/testmod_gpgme.c:243: error in test_encryption_decryption: key type not restored to string during decryption
/home/jenkins/workspace/libelektra_PR-3419/src/plugins/gpgme/testmod_gpgme.c:244: error in test_encryption_decryption: key content not restored during decryption
/home/jenkins/workspace/libelektra_PR-3419/src/plugins/gpgme/testmod_gpgme.c:254: error in test_encryption_decryption: key content not restored during decryption
gpgme Results: 45 Tests done — 4 errors.
我不知道我们是否应该为每个插件打开单独的问题,还是只保留这个元问题?
我认为这是与 gpg 相关的相同(或非常相似)错误。 我认为没有必要打开另一个问题。
如果 stdout 和 stderr 的输出被重定向,gpgme(或 gpgme 与 valgrind 结合)似乎会导致问题。
GPGME TESTS
==================
==155492== Warning: invalid file descriptor 1012 in syscall close()
==155492== Warning: invalid file descriptor 1013 in syscall close()
==155492== Warning: invalid file descriptor 1014 in syscall close()
==155492== Warning: invalid file descriptor 1015 in syscall close()
==155492== Use --log-fd=<number> to select an alternative log fd.
==155492== Warning: invalid file descriptor 1016 in syscall close()
==155492== Warning: invalid file descriptor 1017 in syscall close()
==155492== Warning: invalid file descriptor 1018 in syscall close()
==155491==
==155491== HEAP SUMMARY:
==155491== in use at exit: 25,235 bytes in 176 blocks
==155491== total heap usage: 802 allocs, 626 frees, 119,751 bytes allocated
==155491==
==155491== LEAK SUMMARY:
==155491== definitely lost: 0 bytes in 0 blocks
==155491== indirectly lost: 0 bytes in 0 blocks
==155491== possibly lost: 0 bytes in 0 blocks
==155491== still reachable: 23,146 bytes in 163 blocks
==155491== suppressed: 2,089 bytes in 13 blocks
==155491== Reachable blocks (those to which a pointer was found) are not shown.
==155491== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==155491==
==155491== For counts of detected and suppressed errors, rerun with: -v
==155491== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
GPGME TESTS
==================
gpgme Results: 45 Tests done — 0 errors.
==155462==
==155462== HEAP SUMMARY:
==155462== in use at exit: 4,833 bytes in 39 blocks
==155462== total heap usage: 955 allocs, 916 frees, 698,713 bytes allocated
==155462==
==155462== LEAK SUMMARY:
==155462== definitely lost: 0 bytes in 0 blocks
==155462== indirectly lost: 0 bytes in 0 blocks
==155462== possibly lost: 0 bytes in 0 blocks
==155462== still reachable: 3,241 bytes in 35 blocks
==155462== suppressed: 1,592 bytes in 4 blocks
==155462== Reachable blocks (those to which a pointer was found) are not shown.
==155462== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==155462==
==155462== For counts of detected and suppressed errors, rerun with: -v
==155462== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
我想这可以解释为什么测试输出会多次写入日志文件。
GPGME TESTS
==================
[truncated output]
GPGME TESTS
==================
GPGME TESTS
==================
gpgme Results: 45 Tests done — 0 errors.
这个问题现在解决了吗?
@petermax2重写了部分加密测试并将它们移到单独的 CI 作业( debian-buster-cryptoplugins
和debian-stretch-cryptoplugins
)。
自从这些改进以来,我还没有看到这些测试失败。 我认为它可以安全地关闭。
很高兴听到,它现在正在工作。 感谢您的反馈!
最有用的评论
@petermax2重写了部分加密测试并将它们移到单独的 CI 作业(
debian-buster-cryptoplugins
和debian-stretch-cryptoplugins
)。自从这些改进以来,我还没有看到这些测试失败。 我认为它可以安全地关闭。