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

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

    <bug>
          <bug_id>20694</bug_id>
          
          <creation_ts>2009-07-06 19:44:50 +0400</creation_ts>
          <short_desc>Некорректно работают POSIX-блокировки</short_desc>
          <delta_ts>2011-01-05 12:19:24 +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>kernel-image-std-def</component>
          <version>unstable</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>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Morozov">amorozov</reporter>
          <assigned_to name="Vitaly Chikunov">vt</assigned_to>
          <cc>barabashka</cc>
    
    <cc>kernelbot</cc>
    
    <cc>lav</cc>
    
    <cc>piastry</cc>
    
    <cc>piastryyy</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94286</commentid>
    <comment_count>0</comment_count>
      <attachid>3644</attachid>
    <who name="Alexander Morozov">amorozov</who>
    <bug_when>2009-07-06 19:44:50 +0400</bug_when>
    <thetext>Created attachment 3644
Программы для воспроизведения проблемы

1-я машина:
Linux lav.office.etersoft.ru 2.6.30-std-def-alt1 #1 SMP Thu Jun 25 07:23:18 UTC 2009 i686 GNU/Linux

2-я машина:
Linux atlant.office.etersoft.ru 2.6.30-std-def-alt3 #1 SMP Sat Jul 4 07:09:22 UTC 2009 i686 GNU/Linux

На 2-й машине монтируется директория по nfs:
# mount -t nfs lav:/net/exports/test /mnt/test

На 1-й машине устанавливаем read-блокировку:
$ ./linlock r test_file
press Ctrl-C...

На 2-й машине пытаемся установить write-блокировку:
$ ./linlock w test_file
fcntl: Resource temporarily unavailable
Всё как и должно быть.
Но при этом F_GETLK говорит, что ничего не должно мешать поставить write-блокировку:
$ ./lockinfo test_file
F_UNLCK SEEK_SET start 0 len 0

Если устанавливать read-блокировку на 2-й машине, то на 1-й она с помощью F_GETLK видна.

linlock и lockinfo в аттаче.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110445</commentid>
    <comment_count>1</comment_count>
    <who name="Michail Yakushin">silicium</who>
    <bug_when>2010-07-08 12:42:14 +0400</bug_when>
    <thetext>буду думать.
А в инете на тему пишут?
Вопрос кстати, там надеюсь lockd запущен везде?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110467</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Morozov">amorozov</who>
    <bug_when>2010-07-09 15:47:28 +0400</bug_when>
    <thetext>&gt; А в инете на тему пишут?
Не видел.

&gt; Вопрос кстати, там надеюсь lockd запущен везде?
Повторил эксперимент. Проверил, что lockd присутствует в списке, выдаваемом ps aux. В этот раз 1-й машина:
Linux altlinux.lin-test 2.6.32-std-def-alt16 #1 SMP Tue Jul 6 22:29:03 UTC 2010 i686 GNU/Linux
2-я машина:
Linux atlant.office.etersoft.ru 2.6.32-std-def-alt15 #1 SMP Wed Jun 23 15:13:44 UTC 2010 i686 GNU/Linux
Всё по-прежнему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110485</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2010-07-10 00:46:14 +0400</bug_when>
    <thetext>Возможно, стоит проверить на Ubuntu или CentOS.

2piastry: возьмёшься подтвердить ситуацию, и, быть может, обсудить в lkml, вплоть до исправляющего патча.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115819</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Morozov">amorozov</who>
    <bug_when>2010-11-28 18:03:45 +0300</bug_when>
    <thetext>Выяснил, что проблема появилась между 2.6.21 и 2.6.22-rc1, а также то, что баг зависит только от версии ядра на клиентской стороне.
Создал баг в багзилле ядра:
https://bugzilla.kernel.org/show_bug.cgi?id=23892</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115864</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2010-11-29 21:10:12 +0300</bug_when>
    <thetext>Кстати, лучше всего проверить наличие всего необходимого в выводе
# rpcinfo -p localhost

У меня иногда не хватало nlockmgr при всём запущенном.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115866</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Shilovsky">piastryyy</who>
    <bug_when>2010-11-29 22:03:11 +0300</bug_when>
    <thetext>http://lxr.free-electrons.com/source/fs/lockd/clntproc.c?a=m68knommu#L439

Вот тут мы явно выставляем его в ноль. Что довольно странно. Напрашивается:

fl-&gt;fl_pid = req-&gt;a_res.lock.fl.fl_pid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116493</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Shilovsky">piastryyy</who>
    <bug_when>2010-12-20 22:54:31 +0300</bug_when>
    <thetext>Патч, решающий багу добавлен в 32 и 33 ядра. Так же он уже в upstream разработчика NFS клиента ядра.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116507</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2010-12-21 16:25:28 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; Патч, решающий багу добавлен в 32 и 33 ядра. Так же он уже в upstream
&gt; разработчика NFS клиента ядра.
Идёт ли речь о ядрах в Сизифе? В любом случае, как я понимаю, есть более точная адресация для ядер (вида 2.6.33.X).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116555</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Shilovsky">piastryyy</who>
    <bug_when>2010-12-23 09:46:56 +0300</bug_when>
    <thetext>Так. Цифру 33 следует читать как 36 :)
Патч добавлен в очередь, из которой патчится stable релизы.
В долгоподдерживаемое 32 ядро тут:
http://git.kernel.org/?p=linux/kernel/git/longterm/longterm-queue-2.6.32.git;a=commitdiff;h=3858761cadee2b9bbb19695a33ec6dcd2f496b87
В текущее стабильное 36 ядро тут:
http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=commit;h=0c2956ff492e99e11a95ddcdae84054a85971590
В какой номер релиза этих ядер войдёт патч - неизвестно. Так же следует ожидать его в грядущем 38 ядре.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116556</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Shilovsky">piastryyy</who>
    <bug_when>2010-12-23 10:15:58 +0300</bug_when>
    <thetext>Так же судя по:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21ac19d484a8ffb66f64487846c8d53afef04d2b
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=38971ce2fac484249d697fe48a9b0851a0b62572
патч уже в основной ветке. Самый первый таг после этих коммитов - http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tag;h=refs/tags/v2.6.37-rc7

То есть, начиная с 2.6.37-rc7, патч уже в ядре.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116858</commentid>
    <comment_count>11</comment_count>
    <who name="Pavel Shilovsky">piastryyy</who>
    <bug_when>2011-01-05 12:19:24 +0300</bug_when>
    <thetext>(В ответ на комментарий №9)
...
&gt; В какой номер релиза этих ядер войдёт патч - неизвестно. Так же следует ожидать
&gt; его в грядущем 38 ядре.
37 ядре.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3644</attachid>
            <date>2009-07-06 19:44:50 +0400</date>
            <delta_ts>2009-07-06 19:44:50 +0400</delta_ts>
            <desc>Программы для воспроизведения проблемы</desc>
            <filename>test.tar.bz2</filename>
            <type>application/x-tbz</type>
            <size>1052</size>
            <attacher name="Alexander Morozov">amorozov</attacher>
            
              <data encoding="base64">QlpoOTFBWSZTWRKp5KoABXj/hMzwBAB7d/+fL6++ju/v374AAQAIUAR+AAB0AADhppghkNNMjJhA
NNAGE0aZMACBocNNMEMhppkZMIBpoAwmjTJgAQNBKkIA0ABoAB6gAAAAAAAcNNMEMhppkZMIBpoA
wmjTJgAQNBIkEE0ZTGqek9JpmRKbSaek8UNqZ6JD0j0Meqj2mqfIO4927nXT4L4g9Q0A7gQinT09
fWkXQGVKcLALQM0km02gbE0ChQCTZf+31O1nmYyI883KlAYwYykEI7xpcTMZAKQ2xuCCKMUmSsAr
RlrbqqldAXpJB8wYkIKpCC/1n5fjHp/Q/iVI5fPYUXwQGk+eK9ZT+gWpSInedhgIrgP5ElGhxUrA
uzReNof1GQhkF5ASZ45G+s0YEy1Dvtfx6JU2bHhQpbcTo5Ez76pWrKhhp3Bv9a5FkhMWf02EyomM
F0rwGiSCTW0CwH9Igh6sdFUzCAkQQlIsrJn8Py8xsXyN/8pHYGfZ24nvuNb6Cw5yPExbc4nFZD0x
tMzE1YXDtJFgcScBsyv/P3HXxwrcRM3TEiCidEdRcvHoBQmAvMG74fr8ZgUDywEBYKZ98pg/VX0h
JTDgEsAuRcpEWez2Ewkita2XBUvdldAVSsYW1CxWB/UKtFlArYDjBRZIJcNm7gbt0+EuaDrIOoiu
id9TezQVulYDQcGBR2mwQfcPuggaaS/8I/Q9/nEcgp+5xS4AWAUID9XXztNjan+06SD7Urxq0CLv
RoG4hm8+X+LCFhpR1S+ZiQyWpGooFhPK1ttVR6bgkF5j+5ARVaDEwLzIoGk0+9Azt0IlYliZIqnu
JDtGBRCwsCoHqmJBA+C6IvIUP8nL0dzKht2q8Gdi4ia5ExS7vGakXpTPUCPbgTEeo9ou9ZgcjvmD
3SciTMS2B2CJBCpuMj8/wERAwakjxsUpaydfZkvcJzmiwGHOlszl4NaSqNIZ5BEJbEB+EwW5n2HQ
fAZzDDUdLPoTIGOcDUQQoRzpZjwbWlHkI5Tmg8ojV6F5D/aW3Pa8sWliQDKI6lkfQR5Usd6W0vL/
ISgoJdBrW0060LS0pnMzEtpIkCNLNoI4G67SeJsch6kz+7OYwgvMkoCjVNd5vEMRlQuPEwmUKJMN
feQRA4NQ6vi0EhDJKEpuXYQklaLZkzOIHMah5giz01qp9ZkYo7Q7aGXaFAobPADWEBxv6MISmmcx
u8QtlbkRgPWcLC68LhKlBJ9/Olci8L0ixQ6rlQOvrNZv4eYxy9pvEZYjDn21M7/sltRYFOdcTylp
aXf6IhMzXaHEiAjBqW8jnB0IAPJ90cpiXGqgWdtV3NaEtexi0rcIxOpK76h4BgGKD7dBoFzXAajd
aFhmLpjoRLmkQDc36GgX/xdyRThQkBKp5Ko=
</data>

          </attachment>
      

    </bug>

</bugzilla>