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

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

    <bug>
          <bug_id>33018</bug_id>
          
          <creation_ts>2017-01-20 11:40:56 +0300</creation_ts>
          <short_desc>Ошибка osec: getgrgid_r: No such file or directory</short_desc>
          <delta_ts>2020-06-15 18:57:00 +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>osec</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="Гусев В.Ю.">VladGousev</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>VladGousev</cc>
    
    <cc>asy</cc>
    
    <cc>evg</cc>
    
    <cc>legion</cc>
    
    <cc>mike</cc>
    
    <cc>nbr</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>161398</commentid>
    <comment_count>0</comment_count>
    <who name="Гусев В.Ю.">VladGousev</who>
    <bug_when>2017-01-20 11:40:56 +0300</bug_when>
    <thetext>После обновления 13.01.2017 сломался скрипт проверки.
После запуска скрипта (хоть руками, хоть через cron) &quot;/usr/share/osec/osec.cron&quot; отображаются ошибки:

# ./osec.cron
osec: getgrgid_r: No such file or directory
Program (/usr/bin/osec) exited abnormally, exit code = 1
Use of uninitialized value $fields[4] in substitution (s///) at /usr/bin/osec_reporter line 107, &lt;STDIN&gt; line 2.
Use of uninitialized value $fields[4] in split at /usr/bin/osec_reporter line 112, &lt;STDIN&gt; line 2.

После этого на почту приходит письмо, что изменений не обнаружено, но видно, что проверка оборвалась не первом каталоге из /etc/osec/dirs.conf:

Processing /bin ...

This is a report generated by osec at &apos;Fri Jan 20 11:38:05 MSK 2017&apos;

No changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162074</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2017-02-22 10:32:28 +0300</bug_when>
    <thetext>Предлагаю перевесить на osec (поскольку взрывается именно он); на сизиф не перевешиваю, т.к. с osec-1.2.7-alt3.x86_64 и osec-cronjob-1.2.7-alt3.x86_64 у меня не воспроизводится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162079</commentid>
    <comment_count>2</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2017-02-22 12:13:09 +0300</bug_when>
    <thetext>Не воспроизводится
/usr/share/osec/osec.cron от рута просто отработало.

osec-1.2.7-alt2.M80P.1
osec-cronjob-1.2.7-alt2.M80P.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162122</commentid>
    <comment_count>3</comment_count>
    <who name="Гусев В.Ю.">VladGousev</who>
    <bug_when>2017-02-24 13:33:32 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; Не воспроизводится
&gt; /usr/share/osec/osec.cron от рута просто отработало.
&gt; 
&gt; osec-1.2.7-alt2.M80P.1
&gt; osec-cronjob-1.2.7-alt2.M80P.1

У меня два сервера. На одном всё ОК, на другом вышеуказанная ошибка.
Из существенных отличий между серверами - на одном стоит обычный syslog (тут с osec всё в порядке), на втором (проблемном) - syslog-ng.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162135</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-02-26 20:34:39 +0300</bug_when>
    <thetext>У меня тоже не воспроизводится, (In reply to comment #3)

&gt; У меня два сервера. На одном всё ОК, на другом вышеуказанная ошибка.

Надо найти разницу.

&gt; Из существенных отличий между серверами - на одном стоит обычный syslog (тут с
&gt; osec всё в порядке), на втором (проблемном) - syslog-ng.

Syslog никак не должен влиять, по идее. У меня тоже не воспроизводится, в том числе и там, где стоит syslog-ng.

Можно попробовать запустить /usr/bin/osec через strace, вдруг что-то видно будет. Как-то так:

strace /usr/bin/osec -X /etc/osec/exclude.conf -D /var/lib/osec -f /etc/osec/dirs.conf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162187</commentid>
    <comment_count>5</comment_count>
    <who name="Гусев В.Ю.">VladGousev</who>
    <bug_when>2017-02-28 16:55:24 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; У меня тоже не воспроизводится, (In reply to comment #3)
&gt; 
&gt; &gt; У меня два сервера. На одном всё ОК, на другом вышеуказанная ошибка.
&gt; 
&gt; Надо найти разницу.
&gt; 
&gt; &gt; Из существенных отличий между серверами - на одном стоит обычный syslog (тут с
&gt; &gt; osec всё в порядке), на втором (проблемном) - syslog-ng.
&gt; 
&gt; Syslog никак не должен влиять, по идее. У меня тоже не воспроизводится, в том
&gt; числе и там, где стоит syslog-ng.
&gt; 
&gt; Можно попробовать запустить /usr/bin/osec через strace, вдруг что-то видно
&gt; будет. Как-то так:
&gt; 
&gt; strace /usr/bin/osec -X /etc/osec/exclude.conf -D /var/lib/osec -f
&gt; /etc/osec/dirs.conf

strace заканчивается следующим блоком:
...
mprotect(0xb75c6000, 4096, PROT_READ)   = 0
mprotect(0xb75a7000, 4096, PROT_READ)   = 0
mprotect(0xb75ac000, 4096, PROT_READ)   = 0
mprotect(0xb75cd000, 4096, PROT_READ)   = 0
set_tid_address(0xb75f9768)             = 30683
set_robust_list(0xb75f9770, 12)         = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xb75b2960, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xb75b29e0, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sysname=&quot;Linux&quot;, nodename=&quot;alt-serv.smpbank&quot;, ...}) = 0
munmap(0xb75d4000, 45858)               = 0
lstat64(&quot;/var/run/samba/winbindd&quot;, 0xbf954c2c) = -1 ENOENT (No such file or directory)
write(2, &quot;osec: &quot;, 6osec: )                   = 6
write(2, &quot;getgrgid_r&quot;, 10getgrgid_r)              = 10
write(2, &quot;: No such file or directory\n&quot;, 28: No such file or directory
) = 28
write(1, &quot;/bin\tstat\tchanged\told&quot;, 21/bin     stat    changed old) = 21
_llseek(3, -122, [59], SEEK_CUR)        = 0
exit_group(1)                           = ?
+++ exited with 1 +++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162191</commentid>
    <comment_count>6</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-02-28 18:32:57 +0300</bug_when>
    <thetext>А зачем ему /var/run/samba/winbindd ? В сборочных зависимостях от Самбы ничего нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162193</commentid>
    <comment_count>7</comment_count>
    <who name="Гусев В.Ю.">VladGousev</who>
    <bug_when>2017-03-01 10:12:41 +0300</bug_when>
    <thetext>(In reply to comment #6)
&gt; А зачем ему /var/run/samba/winbindd ? В сборочных зависимостях от Самбы ничего
&gt; нет.

А бог его знает, зачем он туда лезет. Я не могу понять, откуда скрипт берёт этот файл.
Ещё заметил, что в каталоге /var/lib/osec все файлы osec.cdb.* от 17 января. Видимо это дата последнего удачного выполнения. 
Я удалил все эти файлы, после чего скрипт отработал без ошибок, пересоздав базы и отправив отчёт по почте.
Я конечно, потерял информацию по изменениям до этого момента, но это для меня не сильно принципиально. Главное, чтобы в дальнейшем скрипт работал без ошибок.
Посмотрю, как он отработает завтра уже в автоматическом режиме.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162196</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-03-01 13:22:53 +0300</bug_when>
    <thetext>(In reply to comment #7)

&gt; Я удалил все эти файлы, после чего скрипт отработал без ошибок,
&gt; пересоздав базы и отправив отчёт по почте.

Тогда, вероятно, надо таки на Сизиф перевешивать. Но ошибка, похоже, редко воспроизводится.

&gt; Я не могу понять, откуда скрипт берёт этот файл.

А в /etc/osec/dirs.conf не было ничего с /var когда-нибудь ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162199</commentid>
    <comment_count>9</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-03-01 13:28:51 +0300</bug_when>
    <thetext>(In reply to comment #7)

&gt; Посмотрю, как он отработает завтра уже в автоматическом режиме.

Можно, кстати, и сейчас: время в cron поправить, потом обратно вернуть. Или в новом файле задание в другое время описать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162217</commentid>
    <comment_count>10</comment_count>
    <who name="Гусев В.Ю.">VladGousev</who>
    <bug_when>2017-03-02 10:13:22 +0300</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; 
&gt; &gt; Я не могу понять, откуда скрипт берёт этот файл.
&gt; 
&gt; А в /etc/osec/dirs.conf не было ничего с /var когда-нибудь ?

Точно не было.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162218</commentid>
    <comment_count>11</comment_count>
    <who name="Гусев В.Ю.">VladGousev</who>
    <bug_when>2017-03-02 10:20:30 +0300</bug_when>
    <thetext>После вчерашнего удаления из каталога /var/lib/osec файлов osec.cdb.* и последующего из пересоздания сегодня скрипт отработал без ошибок, корректно описав произведённые за ночь изменения.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162266</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-03-05 12:41:10 +0300</bug_when>
    <thetext>(In reply to comment #11)

&gt; После вчерашнего удаления из каталога /var/lib/osec файлов osec.cdb.* и
&gt; последующего из пересоздания сегодня скрипт отработал без ошибок, корректно
&gt; описав произведённые за ночь изменения.

Я, пока, не заметил, чтобы у меня где-то osec отпал после обновления. Наверное, стоило сохранить /var/lib/osec/osec.cdb.* на всякий случай, для разбора...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162290</commentid>
    <comment_count>13</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-03-06 16:12:11 +0300</bug_when>
    <thetext>Кое-что попалось (причём база с непонятного времени - osec долго отсутствовал тут):

# /usr/share/osec/osec.cron
osec: /bin: osec_field(odata): Unable to get &apos;xattr&apos; from database value
Program (/usr/bin/osec) exited abnormally, exit code = 1

Ошибка другая, но связанная, тоже, с базой. Лечение аналогичное. Только вот вопрос... Стоит ли неопознанные ошибки исправлять автоматом ? Это ведь и результатом внешнего воздействия может быть.

/var/lib/osec/* сохранил пока.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162294</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2017-03-06 16:30:03 +0300</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; Кое-что попалось (причём база с непонятного времени - osec долго отсутствовал
&gt; тут):
&gt; 
&gt; # /usr/share/osec/osec.cron
&gt; osec: /bin: osec_field(odata): Unable to get &apos;xattr&apos; from database value
&gt; Program (/usr/bin/osec) exited abnormally, exit code = 1
&gt; 
&gt; Ошибка другая, но связанная, тоже, с базой. Лечение аналогичное. Только вот
&gt; вопрос... Стоит ли неопознанные ошибки исправлять автоматом ? Это ведь и
&gt; результатом внешнего воздействия может быть.
&gt; 
&gt; /var/lib/osec/* сохранил пока.

Такого случаться не должно. osec имеет инструменты для миграции базы. Возможно я чего-то не учёл. Расскажите подробнее о обновлении и о том что и как запускалось.
Думаю, лучше это в отдельную багу оформить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162303</commentid>
    <comment_count>15</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2017-03-06 17:20:43 +0300</bug_when>
    <thetext>(In reply to comment #14)

&gt; &gt; # /usr/share/osec/osec.cron
&gt; &gt; osec: /bin: osec_field(odata): Unable to get &apos;xattr&apos; from database value
&gt; &gt; Program (/usr/bin/osec) exited abnormally, exit code = 1

&gt; Думаю, лучше это в отдельную багу оформить.

Bug 33207. Этот баг тоже на Сизиф, наверное. Вряд ли это специфика p8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190679</commentid>
    <comment_count>16</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2020-06-15 18:57:00 +0300</bug_when>
    <thetext>osec-1.3.0-alt1 -&gt; sisyphus:

 Mon Jun 15 2020 Alexey Gladkov &lt;legion@altlinux.ru&gt; 1.3.0-alt1
 - New version (1.3.0);
 - Database creation is more error tolerant (ALT#38408, ALT#33207):
    - if osec failed to get the owner and user group by id, a numeric value will be used (ALT#33018).
    - if osec failed to read the file to calculate the checksum, an empty value will be used.
    - if osec failed to read symlink an empty value will be used.
 - The mtime field includes nanoseconds.
 - The basepath field has been added to the database.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>