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

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

    <bug>
          <bug_id>10364</bug_id>
          
          <creation_ts>2006-12-04 11:03:10 +0300</creation_ts>
          <short_desc>Блокирование таймера созданного timer_create()</short_desc>
          <delta_ts>2007-05-23 18:24:16 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>5</classification_id>
          <classification>Archive</classification>
          <product>Branch 3.0</product>
          <component>glibc</component>
          <version>3.0</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roman Savochenko">rom_as</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          
          
          <qa_contact name="at@altlinux.org">at</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42705</commentid>
    <comment_count>0</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2006-12-04 11:03:10 +0300</bug_when>
    <thetext>Дистрибутив: ALTLinux 3.0
GLibC: glibc-2.3.5-alt5
Описание проблемы:
Проблема замечена при создании таймера функцией timer_create(), с методом
уведомления SIGEV_THREAD. Таймер создаётся периодическим, вызывающим создание
нового потока. На первый взгляд таймер работает нормально, т.е. потоки создаются
выполняются и завершаются. Но, если вызванный таймером поток выполняется
продолжительное время, то становится видимым блокирование таймера. Причем,
блокируется не только таймер вызвавший продолжительное время выполняющийся
поток, но и все таймеры созданные функцией timer_create()! Эта проблема
практически сводит на нет возможность использования POSIX таймеров, а учитывая и
неоднозначность в работе интервального таймера setitimer() на различных моделях
потоков, то и таймеров вообще!
На дистрибутиве SuSE Linux 10.1 с NPTL 2.4 в GlibC POSIX таймера работают
нормально и не приводят к взаимному блокированию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42752</commentid>
    <comment_count>1</comment_count>
      <attachid>1697</attachid>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2006-12-05 11:41:13 +0300</bug_when>
    <thetext>Created attachment 1697
Программка тестирования на блокировку прерываний

Написал программку для наглядной демонстрации и выявления данной проблемы. При
запуске её на ALTLinux3.0 и SuSe 10.1 четко видно блокирование быстрого таймера
в ALTLinux3.0 на момент исполнения потока медленного таймера.
//========== ALTLinux3.0 ==============
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Begin the slow and the long execution task call.
End the slow and the long execution task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Begin the slow and the long execution task call.
End the slow and the long execution task call.
Fast task call.
Fast task call.
Fast task call.
//=======================================
//============= SuSE 10.1 ===============
Fast task call.
Fast task call.
Fast task call.
Begin the slow and the long execution task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
End the slow and the long execution task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Begin the slow and the long execution task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
Fast task call.
End the slow and the long execution task call.
Fast task call.
Fast task call.
Fast task call.
//=======================================</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42753</commentid>
    <comment_count>2</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2006-12-05 12:06:08 +0300</bug_when>
    <thetext>Эта проблема, кстате, актуальна и для ALTLinux 2.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47672</commentid>
    <comment_count>3</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-04-02 18:27:59 +0400</bug_when>
    <thetext>Проблема не актуальна для glibc-2.5-alt4 из Сизифа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50629</commentid>
    <comment_count>4</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-05-23 18:24:15 +0400</bug_when>
    <thetext>Закрываю как не актуальный для 4.0</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1697</attachid>
            <date>2006-12-05 11:41:13 +0300</date>
            <delta_ts>2006-12-05 11:41:13 +0300</delta_ts>
            <desc>Программка тестирования на блокировку прерываний</desc>
            <filename>timer_test.cpp</filename>
            <type>text/plain</type>
            <size>1549</size>
            <attacher name="Roman Savochenko">rom_as</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHNpZ25hbC5o
PgojaW5jbHVkZSA8dGltZS5oPgoKdm9pZCBGYXN0VGFzayh1bmlvbiBzaWd2YWwgb2JqKQp7CiAg
ICBwcmludGYoIkZhc3QgdGFzayBjYWxsLlxuIik7IAp9Cgp2b2lkIFNsb3dUYXNrKHVuaW9uIHNp
Z3ZhbCBvYmopCnsKICAgIHByaW50ZigiQmVnaW4gdGhlIHNsb3cgYW5kIHRoZSBsb25nIGV4ZWN1
dGlvbiB0YXNrIGNhbGwuXG4iKTsKICAgIHNsZWVwKDEpOwogICAgcHJpbnRmKCJFbmQgdGhlIHNs
b3cgYW5kIHRoZSBsb25nIGV4ZWN1dGlvbiB0YXNrIGNhbGwuXG4iKTsKfQoKaW50IG1haW4oIGlu
dCBhcmdjLCBjaGFyICoqYXJndiApCnsKICAgIC8vQ3JlYXRlIGFuZCBzdGFydCB0aGUgZmFzdCB0
aW1lcgogICAgLy8tIENyZWF0ZSBmYXN0IHRpbWVyIC0KICAgIHRpbWVyX3QgdG1JZEZhc3Q7CiAg
ICBzdHJ1Y3Qgc2lnZXZlbnQgc2lnZXY7CiAgICBzaWdldi5zaWdldl9ub3RpZnkgPSBTSUdFVl9U
SFJFQUQ7CiAgICBzaWdldi5zaWdldl92YWx1ZS5zaXZhbF9wdHIgPSBOVUxMOwogICAgc2lnZXYu
c2lnZXZfbm90aWZ5X2Z1bmN0aW9uID0gRmFzdFRhc2s7CiAgICBzaWdldi5zaWdldl9ub3RpZnlf
YXR0cmlidXRlcyA9IE5VTEw7CiAgICB0aW1lcl9jcmVhdGUoQ0xPQ0tfUkVBTFRJTUUsJnNpZ2V2
LCZ0bUlkRmFzdCk7CiAgICAKICAgIC8vLSBTdGFydCB0aGUgZmFzdCB0aW1lciAtCiAgICBzdHJ1
Y3QgaXRpbWVyc3BlYyBpdHZhbDsKICAgIGl0dmFsLml0X2ludGVydmFsLnR2X3NlYyA9IGl0dmFs
Lml0X3ZhbHVlLnR2X3NlYyA9IDA7CiAgICBpdHZhbC5pdF9pbnRlcnZhbC50dl9uc2VjID0gaXR2
YWwuaXRfdmFsdWUudHZfbnNlYyA9IDIwMDAwMDAwMDsKICAgIHRpbWVyX3NldHRpbWUodG1JZEZh
c3QsIDAsICZpdHZhbCwgTlVMTCk7CgkJCgogICAgLy9DcmVhdGUgYW5kIHN0YXJ0IHRoZSBzbG93
IGFuZCB0aGUgbG9uZyBleGVjdXRpb24gdGltZXIKICAgIC8vLSBDcmVhdGUgdGhlIHNsb3cgYW5k
IHRoZSBsb25nIGV4ZWN1dGlvbiB0aW1lciAtCiAgICB0aW1lcl90IHRtSWRTbG93OwogICAgc2ln
ZXYuc2lnZXZfbm90aWZ5ID0gU0lHRVZfVEhSRUFEOwogICAgc2lnZXYuc2lnZXZfdmFsdWUuc2l2
YWxfcHRyID0gTlVMTDsKICAgIHNpZ2V2LnNpZ2V2X25vdGlmeV9mdW5jdGlvbiA9IFNsb3dUYXNr
OwogICAgc2lnZXYuc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMgPSBOVUxMOwogICAgdGltZXJfY3Jl
YXRlKENMT0NLX1JFQUxUSU1FLCZzaWdldiwmdG1JZFNsb3cpOyAgICAKIAogICAgLy8tIFN0YXJ0
IHRoZSBzbG93IGFuZCB0aGUgbG9uZyBleGVjdXRpb24gdGltZXIgLQogICAgaXR2YWwuaXRfaW50
ZXJ2YWwudHZfc2VjID0gaXR2YWwuaXRfdmFsdWUudHZfc2VjID0gMjsKICAgIGl0dmFsLml0X2lu
dGVydmFsLnR2X25zZWMgPSBpdHZhbC5pdF92YWx1ZS50dl9uc2VjID0gMDsKICAgIHRpbWVyX3Nl
dHRpbWUodG1JZFNsb3csIDAsICZpdHZhbCwgTlVMTCk7CgogICAgc2xlZXAoMTApOwoKICAgIHJl
dHVybiAwOwp9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>