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

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

    <bug>
          <bug_id>14027</bug_id>
          
          <creation_ts>2008-01-16 03:47:42 +0300</creation_ts>
          <short_desc>Не работают моды в стабильной ветке - проблема с mmap()</short_desc>
          <delta_ts>2014-11-05 20:15:36 +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>quake3</component>
          <version>4.0</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeny Sinelnikov">sin</reporter>
          <assigned_to name="Nobody&apos;s working on this, feel free to take it">nobody</assigned_to>
          <cc>erthad</cc>
    
    <cc>lakostis</cc>
    
    <cc>ldv</cc>
    
    <cc>silicium</cc>
    
    <cc>vsu</cc>
          
          <qa_contact name="Q.A. 4.0">qa-4.0</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>61173</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2008-01-16 03:47:42 +0300</bug_when>
    <thetext>При попытке загрузки модов, например osp 1.03a, возникает сбой. Лог консоли:
..............
..............
..............
--------------------------------
Loading vm file vm/ui.qvm...
VM malloc return 0xb025a000 for 585280
Received signal 11, exiting...
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------

Ошибка происходит сразу после вызова mmap2 (строка 1084) в файле vm_x86.c во
время вызова memcpy (строка 1096).

Экспериментальным методом удалось запустить моды... Для этого пришлось побайтно
записать в замапленную область нули.

--- a/quake3/code/qcommon/vm_x86.c
+++ b/quake3/code/qcommon/vm_x86.c
@@ -1093,6 +1093,11 @@ void VM_Compile( vm_t *vm, vmHeader_t *header ) {
        vm-&gt;codeBase = malloc(compiledOfs);
 #endif

+       char e = 0;
+       int ii;
+       for (ii = 0; ii &lt; compiledOfs; ii++)
+               vm-&gt;codeBase[ii] = e;
+
        Com_Memcpy( vm-&gt;codeBase, buf, compiledOfs );

 #ifdef VM_X86_MMAP

Забавно, что в текущем Сизифе это работает. Причём апдейты quake3, Glibc,
libgcc4.1 и SDL из Сизифа не помогают. Один и тот же бинарий на бранче работает
иначе, хотя на вид это совпадение. Проблема, скорее всего, в ядре...
Steps to Reproduce:
1. Готовим паки
2. Запускаем мод
3. Получаем сбой</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61175</commentid>
    <comment_count>1</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2008-01-16 08:30:40 +0300</bug_when>
    <thetext>Если просто развернуть osp в ~/.q3a/osp, запустить quake3 и попытаться применить
мод osp, вываливается на 
&quot;Failed loading /usr/lib/games/quake3/osp/uii386.so:
/usr/lib/games/quake3/osp/uii386.so: cannot open shared object file: No such
file or directory&quot;

Если подсунуть uii386.so из baseq3, мод как бы стартует:
Sys_LoadDll(/home/vvk/.q3a/osp/uii386.so): succeeded ...
Sys_LoadDll(ui) found **vmMain** at  0xaf11779c
Sys_LoadDll(ui) succeeded!

Но при попытке запуска сервера вываливается:
***Loading vm file vm/qagame.qvm...
Received signal 11, exiting...

Мне казалось что для osp нужен какой-то свой uii386.so, и поэтому она не
работает. Или это не так?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61203</commentid>
    <comment_count>2</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2008-01-16 13:41:56 +0300</bug_when>
    <thetext>(In reply to comment #1)
Тут проблема от распаковки не решалась, да и костыль это не удобный... К тому же
по вашей ошибке видно, что движок не смог загрузить следующий архив...

В общем эта бага повторяется на бранче и не поворяется не Сизифе с одними и теми
же бинарниками (паки, моды, сам quake3, glibc, libgcc4.1, libSDL, kernel -
2.6.18-std-smp-alt10)... Объяснить это трудно... Сборку с вышеописанным патчем
можно найти здесь:
http://mastersin.vfose.ru/Local/i686/SRPMS.sisyphus/
http://mastersin.vfose.ru/Local/i686/RPMS.sisyphus/

&gt; Но при попытке запуска сервера вываливается:
&gt; ***Loading vm file vm/qagame.qvm...
&gt; Received signal 11, exiting...
&gt; 
&gt; Мне казалось что для osp нужен какой-то свой uii386.so, и поэтому она не
&gt; работает. Или это не так?

Нет, проблема в том, что почему-то механизм распаковки и предкомпиляции кода
(Just in time compiler имени автора Quake3) на последнем этапе копирования
скомпилированного кода в замапленную область памяти падает...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62149</commentid>
    <comment_count>3</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2008-01-28 19:54:06 +0300</bug_when>
    <thetext>Исправлено в 1.34-alt7.svn1114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65605</commentid>
    <comment_count>4</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2008-03-12 04:27:33 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; Исправлено в 1.34-alt7.svn1114

Не совсем понятно как конкретно это исправлено...
С одной стороны в бранче обновлённого пакета нет, а сдругой стороны не понятно
выявлена ли проблема появления этого бага в ядре. Надеюсь это не проявится в
новых ядрах серии 2.6.24... До последнего времени эту проблему можно было решить
выкачав собранную версию у меня... теперь из сизифа (надеюсь по зависимостям ещё
не разошлось) или установив новое ядро из сизифа...

В самом сизифе исправление имеет смысл, только при работе с ядрами серии 2.6.18,
ибо проявляется только на них и, соотвественно, в основном у обычных
пользователей дистрибутива...

К сожалению модули для 2.6.24-std-def уже не пособираешь не переехав на Сизиф
из-за зависимостей. Я думаю, что вопрос об этой проблеме в ядре стоит как
поставить...

Так или иначе обновившись из бранча, quake3 сейчас всё равно не запустишь...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148411</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-11-05 20:15:36 +0300</bug_when>
    <thetext>В 4.0/branch исправления не будут вноситься уже технически (заглушена очередь на сборку), поэтому прошу ошибки, актуальные для sisyphus/p7/t7, перевесить на текущие ветки или сизиф.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>