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

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

    <bug>
          <bug_id>9805</bug_id>
          
          <creation_ts>2006-07-24 11:13:12 +0400</creation_ts>
          <short_desc>не поддерживает закачку больших файлов (&gt;2 Gb)</short_desc>
          <delta_ts>2006-12-13 11:12:08 +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>mldonkey-server</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>P2</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>10243</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Bulava">abulava</reporter>
          <assigned_to name="Aeliya Grevnyov">gray_graff</assigned_to>
          <cc>bga</cc>
    
    <cc>thresh</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>39275</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bulava">abulava</who>
    <bug_when>2006-07-24 11:13:12 +0400</bug_when>
    <thetext>Несмотря на &quot;explicitly enable largefile support&quot; в %changelog,
mldonkey-server-2.7.6-alt1 завершается с ошибкой &quot;File size limit exceeded&quot;
сразу после добавления, к примеру,
ed2k://|file|Cubase.SX.v3.1.1.944-H2O.with.ED.SX3.Video.Tutorials-DELiRiUM.DVDr.UNOX.iso|3627241472|880EF74CB6975D4A41892F4E8A6D621A|/

К сожалению, ocaml - слишком путаный для меня язык, особенно с части &quot;клея&quot;
между ocaml и c. Возможно, проблема не столько в mldonkey, сколько в
неправильной сборке ocaml? Других идей у меня нет...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41109</commentid>
    <comment_count>1</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2006-10-04 01:03:33 +0400</bug_when>
    <thetext>Как появится новый ocaml в сизифе, можно сделать повторный подход к снаряду :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41977</commentid>
    <comment_count>2</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2006-11-06 18:47:09 +0300</bug_when>
    <thetext>Без нового мантейнера он там не появится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42247</commentid>
    <comment_count>3</comment_count>
    <who name="Grigory Batalov">bga</who>
    <bug_when>2006-11-16 21:27:00 +0300</bug_when>
    <thetext>Добавил -D_FILE_OFFSET_BITS=64 в specfile OCaml, пакет можно собрать из моего
репозитария на git.alt.

Что касается mldonkey, есть вот такая дискуссия:
http://mldonkey.sourceforge.net/forums/viewtopic.php?p=23518#23518

Я проверил, симптомы совпадают:

[pid 16197] read(17, &quot;dllink ed2k://|file|Cubase.SX.v3&quot;..., 16384) = 143
[pid 16197] write(17, &quot;\33[46;1H\33[2K\n\33[2K\33[46;1H&quot;, 23) = 23
[pid 16197] open(&quot;temp/urn_ed2k_880EF74CB6975D4A41892F4E8A6D621A&quot;,
O_RDWR|O_CREAT, 0664) = 19
[pid 16197] fstat64(19, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
[pid 16197] _llseek(19, 3627241471, [3627241471], SEEK_SET) = 0
[pid 16197] write(19, &quot;\0&quot;, 1)          = -1 EFBIG (File too large)
[pid 16197] --- SIGXFSZ (File size limit exceeded) @ 0 (0) ---

Насколько я знаю, большие файлы следует открывать с помощью open64() или
open(... | O_LARGEFILE ), здесь этого нет. После упомянутой пересборки OCaml
требуемый флаг появляется:

[pid  5042] read(17, &quot;dllink ed2k://|file|Cubase.SX.v3&quot;..., 16384) = 143
[pid  5042] write(17, &quot;\33[46;1H\33[2K\n\33[2K\33[46;1H&quot;, 23) = 23
[pid  5042] open(&quot;temp/urn_ed2k_880EF74CB6975D4A41892F4E8A6D621A&quot;,
O_RDWR|O_CREAT|O_LARGEFILE, 0664) = 19
[pid  5042] fstat64(19, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
[pid  5042] _llseek(19, 3627241471, [3627241471], SEEK_SET) = 0
[pid  5042] write(19, &quot;\0&quot;, 1)          = 1

Так что вариант рабочий.
Смутило, что в configure от mldonkey предусмотрен ключ --enable-largefile
(AC_SYS_LARGEFILE), однако никакого влияния он не оказывает:
...
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for _LARGE_FILES value needed for large files... no
...
Ещё почитаю на эту тему, может, просто не понял.

Да, в mldonkey используется модуль LargeFile:
http://caml.inria.fr/pub/docs/manual-ocaml/libref/UnixLabels.LargeFile.html , но
он не содержит реализации open, так что и повлиять на способ открытия файла не
может. Так что моё мнение: нужно пересобрать OCaml в Сизиф с -D_FILE_OFFSET_BITS=64.

Прошу высказываться =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42267</commentid>
    <comment_count>4</comment_count>
    <who name="Andrei Bulava">abulava</who>
    <bug_when>2006-11-17 14:18:05 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; Добавил -D_FILE_OFFSET_BITS=64 в specfile OCaml, пакет можно собрать из моего
&gt; репозитария на git.alt.
&gt; 
&gt; Что касается mldonkey, есть вот такая дискуссия:
&gt; http://mldonkey.sourceforge.net/forums/viewtopic.php?p=23518#23518

&lt;skip /&gt;

&gt; Так что вариант рабочий.

Отлично!

&gt; Смутило, что в configure от mldonkey предусмотрен ключ --enable-largefile
&gt; (AC_SYS_LARGEFILE), однако никакого влияния он не оказывает:
&gt; ...
&gt; checking for special C compiler options needed for large files... no
&gt; checking for _FILE_OFFSET_BITS value needed for large files... 64
&gt; checking for _LARGE_FILES value needed for large files... no
&gt; ...
&gt; Ещё почитаю на эту тему, может, просто не понял.

AFAIR, сложность с Large File Support в glibc (вообще говоря, в GNU/Linux) как
раз и состоит в том, что все участвующие стороны (библиотеки и программы) должны
быть собраны с LFS, а иначе происходит &quot;откат&quot; на безопасный вариант.

&gt; Так что моё мнение: нужно пересобрать OCaml в Сизиф с -D_FILE_OFFSET_BITS=64.
&gt; 
&gt; Прошу высказываться =).

+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42873</commentid>
    <comment_count>5</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2006-12-09 12:30:11 +0300</bug_when>
    <thetext>че высказываться, собирать надо!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42884</commentid>
    <comment_count>6</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2006-12-09 17:17:48 +0300</bug_when>
    <thetext>Кстати, после пересборки ocaml с модификациями bga@ и обновлением до 3.09.3,
пересборки lablgtk2 и mldonkey с новым ocaml, все прекрасно заработало (в т.ч. и
BT).

Насчет ED2K и больших файлов все гораздо интереснее - текущая реализация
протокола в mldonkey поддерживает файлы до 4Gb, есть патчи для поддержки до
256Gb, но они считаются нестабильными (см. http://mldonkey.sourceforge.net/EDK4GB).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42950</commentid>
    <comment_count>7</comment_count>
    <who name="Konstantin A Lepikhov (L.A. Kostis)">lakostis</who>
    <bug_when>2006-12-12 00:41:34 +0300</bug_when>
    <thetext>Новая версия mldonkey, пересобранная с новым ocaml, отправлена в i/S (2.8.2-alt0.1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42999</commentid>
    <comment_count>8</comment_count>
    <who name="Andrei Bulava">abulava</who>
    <bug_when>2006-12-13 11:12:07 +0300</bug_when>
    <thetext>Полностью скачать не пробовал, но, по крайней мере, ничего не падает мгновенно
после добавления в очередь файла &gt; 2 Gb.

Спасибо!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>