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

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

    <bug>
          <bug_id>22606</bug_id>
          
          <creation_ts>2009-12-23 17:38:10 +0300</creation_ts>
          <short_desc>ошибка блокировки файлов</short_desc>
          <delta_ts>2013-07-16 12:32:57 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>squidmill</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>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timur Batyrshin">erthad</reporter>
          <assigned_to name="manowar@altlinux.org">manowar</assigned_to>
          <cc>admin</cc>
    
    <cc>cas</cc>
    
    <cc>manowar</cc>
    
    <cc>mark35</cc>
    
    <cc>sproutella</cc>
    
    <cc>webdigi</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104717</commentid>
    <comment_count>0</comment_count>
    <who name="Timur Batyrshin">erthad</who>
    <bug_when>2009-12-23 17:38:10 +0300</bug_when>
    <thetext>Если при запущенном в резидентном режиме squidmill на сколько нибудь нагруженном squid-е делать запросы к базе, очень скоро они перестают проходить с ошибкой:

# squidmill -d /var/log/squid/squidmill.db -r -i
*** ERROR IN ##execute-program -- This object was raised: &quot;database is locked&quot;

После перезапуска резидентной части все снова начинает работать до повтора этой ситуации.

После выпадения ошибки файл .db расти перестает, рядом с базой возникает файл с расширением .db-journal, после чего продолжает расти только он, но толку от этого мало -- после перезапуска резидентной части размер файла .db остается тем же, что был до перезапуска -- расти начинает уже потом.

Система: p5
[root@alterator squid]# rpm -q squidmill libsqlite3
squidmill-2.0-alt4
libsqlite3-3.6.19-alt1

[root@alterator squid]# cat /etc/sysconfig/squidmill
SQUIDLOGUSER=squid
SQUIDLOGFILE=/var/log/squid/access.log

Squid и squidmill запускаются в отдельных контейнерах. Каталог с логами сквида подмонтирован между контейнерами через -o bind.
Все запуски squidmill (резидентный и ручной для отчета) производятся в одном и том же контейнере.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104722</commentid>
    <comment_count>1</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2009-12-23 22:34:46 +0300</bug_when>
    <thetext>Я исправил эксклюзивную транзакцию на разделяемую. Надеюсь, что это поможет.
Исправление лежит тут: git://git.altlinux.org/people/manowar/packages/squidmill.git

В Сизиф пока не собирается, а без него нельзя обновить и в ветках.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104734</commentid>
    <comment_count>2</comment_count>
    <who name="Timur Batyrshin">erthad</who>
    <bug_when>2009-12-24 12:05:33 +0300</bug_when>
    <thetext>Нет, такая же ситуация.

По-моему, дело не в этом:
Ключ -R (округление) в инитскрипте не используется, а приведенный патч меняет поведение только функции round-log.

bulk-insert же отрабатывает без отдельной транзакции, а он и становится проблемой.

В доказательство этого можно запустить squidmill в follow mode без ключа -B 1.
В этом случае запись на диск (и выполнение bulk-insert) производится гораздо реже, и у меня воспроизвести ошибку описанным образом сходу не получилось.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104735</commentid>
    <comment_count>3</comment_count>
    <who name="Timur Batyrshin">erthad</who>
    <bug_when>2009-12-24 12:10:47 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; В доказательство этого можно запустить squidmill в follow mode без ключа -B 1.
&gt; В этом случае запись на диск (и выполнение bulk-insert) производится гораздо
&gt; реже, и у меня воспроизвести ошибку описанным образом сходу не получилось.

Ну точнее, воспроизводится все-таки, но вероятность этого падения становится гораздо меньше, т.к. пишет на диск реже.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104736</commentid>
    <comment_count>4</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2009-12-24 12:25:21 +0300</bug_when>
    <thetext>Слушай, а можешь запустить сборщик в foreground и посмотреть, есть ли сообщение об ошибке, когда возникает .db-journal?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106222</commentid>
    <comment_count>5</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2010-02-01 15:50:52 +0300</bug_when>
    <thetext>squidmill-2.0-alt5 -&gt; sisyphus:

* Wed Dec 23 2009 Paul Wolneykien &lt;manowar@altlinux&gt; 2.0-alt5

- Use immediate transactions (closes: 22606)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109620</commentid>
    <comment_count>6</comment_count>
    <who name="">sproutella</who>
    <bug_when>2010-06-01 20:11:21 +0400</bug_when>
    <thetext>Положите squidmill-2.0-alt5 в p5/5.1, пожалуйста.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109645</commentid>
    <comment_count>7</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2010-06-02 13:32:08 +0400</bug_when>
    <thetext>Я собрал для 5.1. Попросите cas@ скопировать в p5 -- у меня прав на это нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129235</commentid>
    <comment_count>8</comment_count>
    <who name="ZMyk">mark35</who>
    <bug_when>2012-02-27 11:42:34 +0400</bug_when>
    <thetext># uname -a
В 6 платформе ошшибка вернулась
Linux rasib-srv.rasib 2.6.32-el-smp-alt27 #1 SMP Tue Sep 20 19:38:45 UTC 2011 x86_64 GNU/Linux

# squidmill -d /var/log/squid/squidmill.db -r -i
*** ERROR IN ##execute-program -- This object was raised: (sqlite3-err 5 &quot;database is locked&quot;)

# rpm -q squidmill libsqlite3
squidmill-2.1-alt0.M60P.1
libsqlite3-3.7.6.2-alt2

После перезапуска работает, но валится с завидной периодичностью.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129241</commentid>
    <comment_count>9</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-02-27 15:10:31 +0400</bug_when>
    <thetext>Да, я в курсе, что проблема есть. Единственный способ её побороть, как мне кажется, — это самостоятельно организовать доступ к БД через единственный поток. Сейчас между делом занимаюсь .тем, что добавляю поддержку доменных сокетов в Gambit. После этого можно будет через такой сокет обслуживать несколько клиентов, и ошибок блокировки не будет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129790</commentid>
    <comment_count>10</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-16 03:02:21 +0400</bug_when>
    <thetext>Тестируем осторожно http://git.altlinux.org/tasks/66371/ . Пока без доменных сокетов, но зато с небольшим исправлением в gambit-sqlite3 и самом squidmill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129793</commentid>
    <comment_count>11</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-16 03:08:25 +0400</bug_when>
    <thetext>Пакет gambit-sqlite3 тоже нужно обновить. Из Сизифа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129794</commentid>
    <comment_count>12</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-16 05:13:51 +0400</bug_when>
    <thetext>Также можно попробовать новый alterator-squidmill и новые переводы интерфейса к нему (alterator-l10n).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129796</commentid>
    <comment_count>13</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-16 05:21:28 +0400</bug_when>
    <thetext>*** Bug 26192 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129855</commentid>
    <comment_count>14</comment_count>
    <who name="ZMyk">mark35</who>
    <bug_when>2012-03-19 09:07:08 +0400</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Тестируем осторожно http://git.altlinux.org/tasks/66371/ . Пока без доменных
&gt; сокетов, но зато с небольшим исправлением в gambit-sqlite3 и самом squidmill.

Обновил из сизифа, теперь часто в альтераторе стало вылетать:
&quot;key=wrong-type-arg, args=(#f &quot;Wrong type (expecting ~A): ~S&quot; (&quot;pair&quot; ())
(()))&quot;
При # squidmill -d /var/log/squid/squidmill.db -r -i бывает задумывается на долго, но в итоге показывает статистику.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129980</commentid>
    <comment_count>15</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-22 17:34:33 +0400</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; (В ответ на комментарий №10)
&gt; &gt; Тестируем осторожно http://git.altlinux.org/tasks/66371/ . Пока без доменных
&gt; &gt; сокетов, но зато с небольшим исправлением в gambit-sqlite3 и самом squidmill.
&gt; 
&gt; Обновил из сизифа, теперь часто в альтераторе стало вылетать:
&gt; &quot;key=wrong-type-arg, args=(#f &quot;Wrong type (expecting ~A): ~S&quot; (&quot;pair&quot; ())
&gt; (()))&quot;

  Совсем забыл, что в Альтераторе у нас нельзя писать сообщение об ошибке, если часть данных уже ушла… Исправлено в alterator-squidmill.git=v2.0-alt5. Теперь, в случае ошибки squidmill, должно появляться нормально сообщение с кодом ошибки, а в /var/log/alteratord.log должно быть записана её причина.

&gt; При # squidmill -d /var/log/squid/squidmill.db -r -i бывает задумывается на
&gt; долго, но в итоге показывает статистику.

  Вот на это «задумывается, но показывает» я и понадеялся. Через Альтератор вызывается та же самая функция. Посмотрите, на всякий случай.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129981</commentid>
    <comment_count>16</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-22 17:36:54 +0400</bug_when>
    <thetext>И версии gambit-sqlite и squidmill, какие у вас установлены, напишите, пожалуйста.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130006</commentid>
    <comment_count>17</comment_count>
    <who name="ZMyk">mark35</who>
    <bug_when>2012-03-23 05:50:18 +0400</bug_when>
    <thetext>(В ответ на комментарий №16)
&gt; И версии gambit-sqlite и squidmill, какие у вас установлены, напишите,
&gt; пожалуйста.

gambit-4.6.3-alt1
gambit-sqlite3-1.2-alt1
squidmill-2.2-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130036</commentid>
    <comment_count>18</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-03-23 15:41:36 +0400</bug_when>
    <thetext>(В ответ на комментарий №17)
&gt; (В ответ на комментарий №16)
&gt; &gt; И версии gambit-sqlite и squidmill, какие у вас установлены, напишите,
&gt; &gt; пожалуйста.
&gt; 
&gt; gambit-4.6.3-alt1
&gt; gambit-sqlite3-1.2-alt1
&gt; squidmill-2.2-alt1

  Ага. С новым alterator-squidmill, в случае неудачной выборки из БД, вместо непереводимой игры слов, должно появляться сообщение «Squidmill error (&lt;код&gt;)». У вас так (и какой код)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135567</commentid>
    <comment_count>19</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-11-29 11:56:49 +0400</bug_when>
    <thetext>В p6 надо бэкпортировать в нынешнем виде?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135584</commentid>
    <comment_count>20</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-11-29 23:26:59 +0400</bug_when>
    <thetext>Пока деваться некуда: до реализации unit-сокетов для Gambit я ещё не добрался. Но сизифная версия не должна быть хуже p6, может быть даже она чем-то лучше: я добавил переоткрытие БД в случае ошибки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135596</commentid>
    <comment_count>21</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-11-30 11:00:52 +0400</bug_when>
    <thetext>(В ответ на комментарий №20)
&gt; Пока деваться некуда: до реализации unit-сокетов для Gambit я ещё не добрался.
&gt; Но сизифная версия не должна быть хуже p6, может быть даже она чем-то лучше: я
&gt; добавил переоткрытие БД в случае ошибки.
Хорошо, бэкпортирую пока что есть, ждём полной реализации.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137702</commentid>
    <comment_count>22</comment_count>
    <who name="Andrei">admin</who>
    <bug_when>2013-02-08 12:07:31 +0400</bug_when>
    <thetext>Ребят, может перенесете в основной репозиторий исправленные пакеты? А то ведь приходится вручную из сизифа подтаскивать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137703</commentid>
    <comment_count>23</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2013-02-08 13:15:05 +0400</bug_when>
    <thetext>
  А что, сизифная версия работает стабильно?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137704</commentid>
    <comment_count>24</comment_count>
    <who name="Andrei">admin</who>
    <bug_when>2013-02-08 13:47:24 +0400</bug_when>
    <thetext>Ну она  хотя бы работает. На одном сервере аптайм уже 67 дней. Версия лежащая в репозитории через каждые 5 минут умирает. Мне только одна проблема мешает - левые IP в статистике, а остальное - работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137705</commentid>
    <comment_count>25</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2013-02-08 13:51:53 +0400</bug_when>
    <thetext>
  Хорошо, сейчас отправлю в p6.

  А с &quot;левыми&quot; адресами нужно разобраться: вы утверждаете, что в /var/log/squid/access.log таких адресов нет, а в squidmill они есть?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137706</commentid>
    <comment_count>26</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2013-02-08 14:00:04 +0400</bug_when>
    <thetext>
  Позвольте, но версии &quot;v2.2-alt0.M60P.2&quot; и &quot;v2.2-alt3&quot; отличаются только адаптацией к systemd, а она не нужна в p6. Ну плюс ещё сизифная версия собрана более новым gambit, но это вряд ли принципиально. Расскажите, пожалуйста, что и как вы перенесли из Сизифа на ту машинку, которая уже 67 дней работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137708</commentid>
    <comment_count>27</comment_count>
    <who name="Andrei">admin</who>
    <bug_when>2013-02-08 14:23:27 +0400</bug_when>
    <thetext>(В ответ на комментарий №26)
&gt;   Позвольте, но версии &quot;v2.2-alt0.M60P.2&quot; и &quot;v2.2-alt3&quot; отличаются только
&gt; адаптацией к systemd, а она не нужна в p6. Ну плюс ещё сизифная версия собрана
&gt; более новым gambit, но это вряд ли принципиально. Расскажите, пожалуйста, что и
&gt; как вы перенесли из Сизифа на ту машинку, которая уже 67 дней работает.

Сервер, раздающий интернет. 
Проблема: постоянно падает squidmill, не работает статистика.
Решение: В репозитории прописываю sisyphus, устанавливаю оттуда 
squidmill
alterator-squidmill
gambit-4.6.3-alt1
gambit-sqlite3-1.2-alt1

Все начинает работать отлично.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137709</commentid>
    <comment_count>28</comment_count>
    <who name="Andrei">admin</who>
    <bug_when>2013-02-08 14:24:41 +0400</bug_when>
    <thetext>(В ответ на комментарий №25)
&gt;   Хорошо, сейчас отправлю в p6.
&gt; 
&gt;   А с &quot;левыми&quot; адресами нужно разобраться: вы утверждаете, что в
&gt; /var/log/squid/access.log таких адресов нет, а в squidmill они есть?

Верное замечание, сейчас детально смотрю логи - там есть упоминания об этих адресах. Теперь надо понять как они там оказались.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137901</commentid>
    <comment_count>29</comment_count>
    <who name="Andrei">admin</who>
    <bug_when>2013-02-14 16:28:26 +0400</bug_when>
    <thetext>Ну так как на счет обновления библиотек в репозитариях?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137904</commentid>
    <comment_count>30</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2013-02-14 17:02:19 +0400</bug_when>
    <thetext>(В ответ на комментарий №29)
&gt; Ну так как на счет обновления библиотек в репозитариях?
Тестирую.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137977</commentid>
    <comment_count>31</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2013-02-18 14:20:50 +0400</bug_when>
    <thetext>Так как gambit собирается бустрапом, с каждой предыдущей версии, собрать быстро не получится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141186</commentid>
    <comment_count>32</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2013-06-28 22:32:45 +0400</bug_when>
    <thetext>
  squidmill 2.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141547</commentid>
    <comment_count>33</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2013-07-16 12:32:57 +0400</bug_when>
    <thetext>(В ответ на комментарий №29)
&gt; Ну так как на счет обновления библиотек в репозитариях?
Пакет отправлен в p6 и p7. Во время тестирования выяснилось, что в случае запуска и сразу же остановки службы squidmill:

  # service squidmill status
  squidmill is dead, but subsystem is locked

нужно удалить файл с базой данных:

  rm -f /var/log/squid/squidmill.db

(при этом старые данные статистики будут утеряны!). Обычно это не критично.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>