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

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

    <bug>
          <bug_id>17806</bug_id>
          
          <creation_ts>2008-11-06 19:46:16 +0300</creation_ts>
          <short_desc>В новом glibc не работает futimes на kernel-image-ovz-smp-2.6.18</short_desc>
          <delta_ts>2008-11-14 23:17:57 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Branch 4.0</product>
          <component>kernel-image-ovz-smp</component>
          <version>4.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>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>aspsk</cc>
    
    <cc>mibori</cc>
    
    <cc>mike</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>80756</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2008-11-06 19:46:16 +0300</bug_when>
    <thetext>$ rpm -q glibc
glibc-2.8.90-alt2

В этой сборке функция futimes реализована через системный вызов utimensat (хотя glibc умеет и по-другому), который отсутствует в ядрах старее 2.6.22.

Получается, что новый glibc не полностью работоспособен на старых ядрах, причём узнать это малореально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80757</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-11-06 19:57:00 +0300</bug_when>
    <thetext>(In reply to comment #0)
&gt; $ rpm -q glibc
&gt; glibc-2.8.90-alt2
&gt; 
&gt; В этой сборке функция futimes реализована через системный вызов utimensat (хотя glibc
&gt; умеет и по-другому),

Там есть fallback на прежний метод, который работает через /proc.

&gt; который отсутствует в ядрах старее 2.6.22.
&gt; 
&gt; Получается, что новый glibc не полностью работоспособен на старых ядрах,

В чём это выражается?  Вывод strace, ещё чего-нибудь есть?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80766</commentid>
    <comment_count>2</comment_count>
    <who name="AntonRundnev">mibori</who>
    <bug_when>2008-11-06 20:27:51 +0300</bug_when>
    <thetext>есть.

исходник приаттачен.
 
испытание номер раз:
[mibori@builder glibct]$ ./a.out
fd = 4
futimes error, errno == 14
error is : Bad address
[mibori@builder glibct]$ uname -r
2.6.18-ovz-smp-alt24
[mibori@builder glibct]$ rpm -q glibc
glibc-2.8.90-alt2
[mibori@builder glibct]$

испытание номер два:
[mibori@atlant glibct]$ ./a.out
fd = 4
futimes normal
[mibori@atlant glibct]$ uname -r
2.6.25-std-def-alt6.M41.1
[mibori@atlant glibct]$ rpm -q glibc
glibc-2.5.1-alt7
[mibori@atlant glibct]$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80767</commentid>
    <comment_count>3</comment_count>
      <attachid>3043</attachid>
    <who name="AntonRundnev">mibori</who>
    <bug_when>2008-11-06 20:29:05 +0300</bug_when>
    <thetext>Created attachment 3043
исходник

исходник</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80768</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-11-06 20:37:37 +0300</bug_when>
    <thetext>(In reply to comment #2)
&gt; есть.
&gt; 
&gt; исходник приаттачен.
&gt; 
&gt; испытание номер раз:
&gt; [mibori@builder glibct]$ ./a.out
&gt; fd = 4
&gt; futimes error, errno == 14
&gt; error is : Bad address
&gt; [mibori@builder glibct]$ uname -r
&gt; 2.6.18-ovz-smp-alt24

В 2.6.18-std-smp этой проблемы нет.

В 2.6.18-ovz-smp есть системный вызов utimensat, портированный туда специально людьми из openvz.org (коммит 028stab051-10-g815bdcacf0138c3b677e46445dcc778d2cfcc251).

К сожалению, этот бэкпорт нерабочий, лучше бы его вообще не было.
Я думаю что в следующей сборке ovz-smp для 4.0, которая будет очень скоро, этот бэкпорт будет убран.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81099</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-11-14 02:04:46 +0300</bug_when>
    <thetext>Fixed in kernel-image-ovz-smp-2.6.18-alt26.M40.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81134</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2008-11-14 23:17:56 +0300</bug_when>
    <thetext>Спасибо!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3043</attachid>
            <date>2008-11-06 20:29:05 +0300</date>
            <delta_ts>2008-11-06 20:29:05 +0300</delta_ts>
            <desc>исходник</desc>
            <filename>glibct.c</filename>
            <type>application/octet-stream</type>
            <size>598</size>
            <attacher name="AntonRundnev">mibori</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxlcnJuby5oPgojaW5jbHVkZSA8ZmNudGwuaD4K
I2luY2x1ZGUgPHN5cy9zdGF0Lmg+CgptYWluKCl7CiAgICBpbnQgZmQ7CiAgICBzdHJ1Y3QgdGlt
ZXZhbCB0dlsyXTsKICAgIGludCByZXQ7CgogICAgZmQgPSBvcGVuKCJhLnR4dCIsCiAgICAgICAg
T19OT05CTE9DSyB8IE9fQ1JFQVQgfCBPX0VYQ0wgfCBPX1JEV1IsCiAgICAgICAgU19JUk9USCB8
IFNfSVdPVEggfCBTX0lSR1JQIHwgU19JV0dSUCB8IFNfSVJVU1IgfCBTX0lXVVNSKTsKCiAgICBw
cmludGYoImZkID0gJXhcbiIsIGZkKTsKCiAgICB0dlswXS50dl9zZWMgPSAwOyB0dlswXS50dl91
c2VjID0gMDsKICAgIHR2WzFdLnR2X3NlYyA9IDA7IHR2WzFdLnR2X3VzZWMgPSAwOwoKICAgIHJl
dCA9IGZ1dGltZXMoZmQsIHR2KTsKICAgIGlmKHJldCA9PSAtMSl7CiAgICAgICAgcHJpbnRmKCJm
dXRpbWVzIGVycm9yLCBlcnJubyA9PSAlaVxuIiwgZXJybm8pOwogICAgICAgIHBlcnJvcigiZXJy
b3IgaXMgIik7CiAgICB9CiAgICBlbHNlIHByaW50ZigiZnV0aW1lcyBub3JtYWxcbiIpOwoKICAg
IGNsb3NlKGZkKTsKICAgIHJldHVybiAwOwp9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>