<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>22583</bug_id>
          
          <creation_ts>2009-12-20 21:00:46 +0300</creation_ts>
          <short_desc>libcryptopp-5.6.0-alt3 broken on x86_64 (SHA256 infinite loop)</short_desc>
          <delta_ts>2021-07-01 14:30:59 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libcryptopp</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>22582</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Vlasov">vsu</reporter>
          <assigned_to name="Vitaly Lipatov">lav</assigned_to>
          <cc>lav</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104608</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2009-12-20 21:00:46 +0300</bug_when>
    <thetext>Пакет libcryptopp-5.6.0-alt3 на x86_64 получился нерабочим из-за ошибки https://bugzilla.altlinux.org/show_bug.cgi?id=22582 в binutils; в результате сейчас, например, amule при запуске практически сразу зависает с 100% CPU.

Ошибка обнаруживается при запуске &quot;./cryptest v&quot; после сборки библиотеки (тест SHA256 тоже зависает либо завершается с segmentation fault); этот тест следовало бы выполнять при сборке пакета, чтобы не пропускать в Сизиф заведомо сломанные сборки.

В качестве объезда до исправления binutils можно, например, добавить в config.h #define CRYPTOPP_DISABLE_X86ASM.

Вот этот способ тестирования, кстати, неправильный:

./cryptest v 2&gt;&amp;1 | tee cryptest.log
grep -qs &apos;^FAILED&apos; cryptest.log &amp;&amp; exit 1 || :

Проблема в том, что не обнаруживается аварийное завершение теста (например, segmentation fault), если тест не успел выдать FAILED.  Нужно, например, так:

( ./cryptest v 2&gt;&amp;1 || printf &quot;\nFAILED: exit %%s\n&quot; &quot;$?&quot; ) | tee cryptest.log
grep -qs &apos;^FAILED&apos; cryptest.log &amp;&amp; exit 1 || :</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104611</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2009-12-20 21:37:55 +0300</bug_when>
    <thetext>Хм, с CRYPTOPP_DISABLE_X86ASM тест libcryptopp проходит, но amule при запуске падает с SIGSEGV в CryptoPP::SHA256::Transform ().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104613</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2009-12-20 22:49:03 +0300</bug_when>
    <thetext>Оказывается, отключить ассемблерные реализации через CRYPTOPP_DISABLE_X86ASM в этой прекрасной библиотеке просто так нельзя, поскольку от этого у неё ломается ABI (config.h там мало того что торчит наружу, так ещё и параметры его используются в куче прочих заголовков). Так что отключение неработающего ассемблерного кода возможно только вместе с пересборкой всех клиентов (и с простановкой каких-то жёстких зависимостей на этот вариант конфигурации), либо придётся ждать исправления binutils.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104614</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2009-12-21 01:11:58 +0300</bug_when>
    <thetext>(В ответ на комментарий №0)
...
&gt; Ошибка обнаруживается при запуске &quot;./cryptest v&quot; после сборки библиотеки (тест
&gt; SHA256 тоже зависает либо завершается с segmentation fault); этот тест
&gt; следовало бы выполнять при сборке пакета, чтобы не пропускать в Сизиф заведомо
&gt; сломанные сборки.
Я пытался его выполнять, но он настолько затянулся по времени, что я не решился его включить. Возможно, у меня он тоже зависал... Хотя я на 32-битах проверял.

&gt; Проблема в том, что не обнаруживается аварийное завершение теста (например,
&gt; segmentation fault), если тест не успел выдать FAILED.  Нужно, например, так:
&gt; 
&gt; ( ./cryptest v 2&gt;&amp;1 || printf &quot;\nFAILED: exit %%s\n&quot; &quot;$?&quot; ) | tee cryptest.log
&gt; grep -qs &apos;^FAILED&apos; cryptest.log &amp;&amp; exit 1 || :
Спасибо, исправлю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108692</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2010-04-18 20:11:56 +0400</bug_when>
    <thetext>Ping!
https://bugzilla.altlinux.org/show_bug.cgi?id=22582 в binutils давно исправлено.

Поправка к коду проверки результатов теста:

( ./cryptest v 2&gt;&amp;1 || printf &apos;\nFAILED: exit %%s\n&apos; &quot;$?&quot; ) | tee cryptest.log
grep -qs &apos;^FAILED&apos; cryptest.log &amp;&amp; exit 1 || :</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199845</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-07-01 14:30:59 +0300</bug_when>
    <thetext>В Сизифе 8.5.0, о проблемах неизвестно. Тест во время сборки проходит.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>