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

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

    <bug>
          <bug_id>41816</bug_id>
          
          <creation_ts>2022-01-27 15:42:13 +0300</creation_ts>
          <short_desc>libapt кэширует информацию о подключенных репозиториях без API для её удаления или обновления</short_desc>
          <delta_ts>2024-07-09 11:36:37 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Branch p9</product>
          <component>apt</component>
          <version>не указана</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41651</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aleksei Nikiforov">darktemplaralt</reporter>
          <assigned_to name="Ivan Zakharyaschev">imz</assigned_to>
          <cc>amakeenk</cc>
    
    <cc>belayaav</cc>
    
    <cc>boyarsh</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>zerg</cc>
          
          <qa_contact name="qa-p9@altlinux.org">qa-p9</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>207233</commentid>
    <comment_count>0</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2022-01-27 15:42:13 +0300</bug_when>
    <thetext>Из-за этой проблемы packagekit при определённых условиях не может найти обновления.

Воспроизведение проблемы:

Необходим доступ к репозиторию локально или по NFS. Возможно, через rsync или http тоже можно воспроизвести при условии использования proxy.

1) Убедиться что plasma5-discover не запущен.
2) Убедиться что packagekitd не запущен, а если он запущен - выключить с помощью pkcon quit.
3) Установить для apt исплючительно следующие источники. Вывод apt-repo:

rpm [alt] file:/mnt/current x86_64 classic debuginfo
rpm [alt] file:/mnt/current noarch classic
rpm [alt] file:/mnt/current x86_64-i586 classic

4) Допустим, репозиторий с архивом примонтирован в /mnt/archive. Подключить репозиторий из архива за определённую дату меньше текущей:

ln -sv /mnt/archive/sisyphus/date/2022/01/24 /mnt/current

5) Обновить систему до указанного состояния:

apt-get update
apt-get dist-upgrade

6) Убедиться через apt-get что новых обновлений нет.
7) Запустить packagekit и проверить обновления, убедиться что их нет.

pkcon refresh
pkcon update

8) Переключить репозиторий на другую дату. Важно при этом не менять /etc/apt/sources.list или файлы в /etc/apt/sources.list.d

rm -fv /mnt/current
ln -sv /mnt/archive/sisyphus/date/2022/01/26 /mnt/current

9) Обновить репозиторий и пакеты через packagekit. На данном этапе возникает ошибка: обновления должны быть, но packagekit их не находит.

pkcon refresh
pkcon update

10) Убедиться что apt обновления находит. Сами обновления ставить не обязательно.

apt-get update
apt-get dist-upgrade

Если apt обновления не находит, значит либо система была обновлена до состояния более нового, чем первый снимок репозитория из архива, использованный на шаге 4, либо в снимке репозитория из шага 8 нет обновлений для пакетов в установленной системе и следует выбрать другие даты из архива.

Ожидаемый результат:
Наличие обновлений на 9 шаге.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207234</commentid>
    <comment_count>1</comment_count>
      <attachid>10219</attachid>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2022-01-27 15:44:00 +0300</bug_when>
    <thetext>Created attachment 10219
0001-Removing-caches-also-removes-in-memory-repository-me.patch

Данный патч вместе с packagekit из задания #294207 исправляет данную проблему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207274</commentid>
    <comment_count>2</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2022-01-28 15:43:11 +0300</bug_when>
    <thetext>Спасибо за патч. Проблему в целом понял. Тогда в ближайшем релизе учту и учту в своих тестах.

Только я пока не сообразил, исправляет ли добавление виртуальных деструкторов (и в packagekit, и в apt) что-то в имеющемся поведении или это просто хорошая практика на будущее?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207275</commentid>
    <comment_count>3</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2022-01-28 15:50:00 +0300</bug_when>
    <thetext>Если добавленный виртуальный деструктор в патче для apt убрать, то вылезет какое-то предупреждение про его отсутствие, и -Werror по-умолчанию превратит его в ошибку.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207313</commentid>
    <comment_count>4</comment_count>
      <attachid>10230</attachid>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2022-01-31 14:38:26 +0300</bug_when>
    <thetext>Created attachment 10230
invalidate the in-memory cache

Вот такой патч должен работать, как надо. Проверил в apt-shell. Переупорядочивания действий в PackageKit не требуется (с ним).
Да и по смыслу они скорее не нужны. В Debian тоже Close() в cacheFile уничтожает поле SrcList. И в оригинальном коде PackageKit, рассчитанном на Debian, это в тот же момент и произошло бы: после скачивания новых индексов, но до построения кеша в файлах. (По скрытой ленивой зависимости внутри реализации cacheFile и у нас, и у Debian SrcList будет пересоздан при вызове BuildCaches() и т.п. в объекте cacheFile.)

Вот этот код из Debian, тоже уничтожающий SrcList:

									/*}}}*/
// CacheFile::Close - close the cache files				/*{{{*/
// ---------------------------------------------------------------------
/* */
void pkgCacheFile::Close()
{
   if (ExternOwner == false)
   {
      delete DCache;
      delete Cache;
      delete Map;
   }
   else
      ExternOwner = false;
   delete Policy;
   delete SrcList;
   if (d-&gt;WithLock == true)
   {
      _system-&gt;UnLock(true);
      d-&gt;WithLock = false;
   }

   Map = NULL;
   DCache = NULL;
   Policy = NULL;
   Cache = NULL;
   SrcList = NULL;
}
									/*}}}*/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207314</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2022-01-31 14:40:34 +0300</bug_when>
    <thetext>Вполне уверен, что патч работает, так что сразу закомичу (замечания принимаю и до, и после), если ничто не помешает в сборочнице. И так потестируем более широко.

task 294177 (собирается пока test-only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207315</commentid>
    <comment_count>6</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2022-01-31 14:46:25 +0300</bug_when>
    <thetext>(Ответ для Ivan Zakharyaschev на комментарий #4)
&gt; Создано вложение 10230 [подробности]
&gt; invalidate the in-memory cache

Данный патч не накладывается на apt 0.5.15lorg2-alt74.

(Ответ для Ivan Zakharyaschev на комментарий #5)
&gt; Вполне уверен, что патч работает, так что сразу закомичу (замечания принимаю
&gt; и до, и после), если ничто не помешает в сборочнице. И так потестируем более
&gt; широко.
&gt; 
&gt; task 294177 (собирается пока test-only)

Посмотрю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207316</commentid>
    <comment_count>7</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2022-01-31 14:57:33 +0300</bug_when>
    <thetext>Насколько я могу судить после небольшой проверки, с apt из указанного задания проблема исчезает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207319</commentid>
    <comment_count>8</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2022-01-31 15:06:56 +0300</bug_when>
    <thetext>(In reply to Aleksei Nikiforov from comment #7)
&gt; Насколько я могу судить после небольшой проверки, с apt из указанного
&gt; задания проблема исчезает.

Спасибо!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207320</commentid>
    <comment_count>9</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2022-01-31 15:09:21 +0300</bug_when>
    <thetext>Будем ждать, наверное, питона. А я доработаю FileList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207622</commentid>
    <comment_count>10</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2022-02-10 03:43:18 +0300</bug_when>
    <thetext>apt-0.5.15lorg2-alt75 -&gt; sisyphus:

 Thu Jan 27 2022 Ivan Zakharyaschev &lt;imz@altlinux&gt; 0.5.15lorg2-alt75
 - Invalidate the in-memory cache of repositories when doing &quot;update&quot; or
   ListUpdate() to be able to detect updates without exiting the process,
   e.g., PackageKit or apt-shell (ALT#41816).
 - Added apt-under-pkdirect-checkinstall subpackage
   and added a test for FileList() API via packagekit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207682</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2022-02-11 15:00:29 +0300</bug_when>
    <thetext>Проверил в p10 с таском 295130 - ошибка исправлена.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248651</commentid>
    <comment_count>12</comment_count>
    <who name="Белая Алёна">belayaav</who>
    <bug_when>2024-07-09 11:36:37 +0300</bug_when>
    <thetext>Проблема остается в р9, т.к. там версия пакета ниже той, где ошибка исправлена: apt-0.5.15lorg2-alt71.3</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10219</attachid>
            <date>2022-01-27 15:44:00 +0300</date>
            <delta_ts>2022-01-27 15:44:00 +0300</delta_ts>
            <desc>0001-Removing-caches-also-removes-in-memory-repository-me.patch</desc>
            <filename>0001-Removing-caches-also-removes-in-memory-repository-me.patch</filename>
            <type>text/plain</type>
            <size>2386</size>
            <attacher name="Aleksei Nikiforov">darktemplaralt</attacher>
            
              <data encoding="base64">RnJvbSAxZjE0YTZhODg1NjQ5ZTk2YzZmMDJiMTQ0MzVkZTg1ZTE3ZDdjYTViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2VpIE5pa2lmb3JvdiA8ZGFya3RlbXBsYXJAYWx0bGlu
dXgub3JnPgpEYXRlOiBUaHUsIDI3IEphbiAyMDIyIDE0OjM1OjU5ICswMzAwClN1YmplY3Q6IFtQ
QVRDSF0gUmVtb3ZpbmcgY2FjaGVzIGFsc28gcmVtb3ZlcyBpbi1tZW1vcnkgcmVwb3NpdG9yeSBt
ZXRhaW5mbwogY2FjaGUKCi0tLQogYXB0LXBrZy9jYWNoZWZpbGUuY2MgICAgICAgIHwgIDQgKysr
KwogYXB0LXBrZy9yZXBvc2l0b3J5LmggICAgICAgIHwgIDEgKwogYXB0LXBrZy9ycG0vcnBtaW5k
ZXhmaWxlLmNjIHwgMTAgKysrKysrKysrKwogYXB0LXBrZy9ycG0vcnBtaW5kZXhmaWxlLmggIHwg
IDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2Fw
dC1wa2cvY2FjaGVmaWxlLmNjIGIvYXB0LXBrZy9jYWNoZWZpbGUuY2MKaW5kZXggZjgxYzI2YTQu
LjFhNTRhOTMzIDEwMDY0NAotLS0gYS9hcHQtcGtnL2NhY2hlZmlsZS5jYworKysgYi9hcHQtcGtn
L2NhY2hlZmlsZS5jYwpAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPGFwdC1wa2cvdmVyc2lv
bi5oPgogCiAjaW5jbHVkZSA8YXB0aTE4bi5oPgorCisjaW5jbHVkZSAicnBtL3JwbWluZGV4Zmls
ZS5oIgogCQkJCQkJCQkJLyp9fX0qLwogCiAvLyBsYXp5Q2FjaGVGaWxlOjpsYXp5Q2FjaGVGaWxl
IC0gQ29uc3RydWN0b3IJCQkJLyp7e3sqLwpAQCAtMjQxLDYgKzI0Myw4IEBAIHZvaWQgcGtnQ2Fj
aGVGaWxlOjpSZW1vdmVDYWNoZXMoKQogICAgY29uc3Qgc3RkOjpzdHJpbmcgcGtnY2FjaGUgPSBf
Y29uZmlnLT5GaW5kRmlsZSgiRGlyOjpDYWNoZTo6cGtnY2FjaGUiKTsKICAgIGNvbnN0IHN0ZDo6
c3RyaW5nIHNyY3BrZ2NhY2hlID0gX2NvbmZpZy0+RmluZEZpbGUoIkRpcjo6Q2FjaGU6OnNyY3Br
Z2NhY2hlIik7CiAKKyAgIHJlbW92ZVJlcG9zaXRvcnlDYWNoZXMoKTsKKwogICAgaWYgKCghcGtn
Y2FjaGUuZW1wdHkoKSkgJiYgUmVhbEZpbGVFeGlzdHMocGtnY2FjaGUpKQogICAgICAgUmVtb3Zl
RmlsZSgiUmVtb3ZlQ2FjaGVzIiwgcGtnY2FjaGUpOwogICAgaWYgKCghc3JjcGtnY2FjaGUuZW1w
dHkoKSkgJiYgUmVhbEZpbGVFeGlzdHMoc3JjcGtnY2FjaGUpKQpkaWZmIC0tZ2l0IGEvYXB0LXBr
Zy9yZXBvc2l0b3J5LmggYi9hcHQtcGtnL3JlcG9zaXRvcnkuaAppbmRleCBiMGZmMDkxMy4uZTZh
MTgzOGQgMTAwNjQ0Ci0tLSBhL2FwdC1wa2cvcmVwb3NpdG9yeS5oCisrKyBiL2FwdC1wa2cvcmVw
b3NpdG9yeS5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIHBrZ1JlcG9zaXRvcnkKICAgICAgIGlm
IChWZW5kb3IpIEZpbmdlclByaW50TGlzdCA9IFZlbmRvci0+RmluZ2VyUHJpbnRMaXN0OwogICAg
fQogCisgICB2aXJ0dWFsIH5wa2dSZXBvc2l0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9hcHQtcGtnL3JwbS9ycG1pbmRleGZpbGUuY2MgYi9hcHQtcGtnL3JwbS9y
cG1pbmRleGZpbGUuY2MKaW5kZXggMWZjNDU0ZGYuLmY1NWNiMTIzIDEwMDY0NAotLS0gYS9hcHQt
cGtnL3JwbS9ycG1pbmRleGZpbGUuY2MKKysrIGIvYXB0LXBrZy9ycG0vcnBtaW5kZXhmaWxlLmNj
CkBAIC0zNCw2ICszNCwxNiBAQAogCQkJCQkJCQkJLyp9fX0qLwogdmVjdG9yPHBrZ1JlcG9zaXRv
cnkgKj4gUmVwTGlzdDsKIAordm9pZCByZW1vdmVSZXBvc2l0b3J5Q2FjaGVzKCkKK3sKKyAgIGZv
ciAoYXV0byBpdGVyID0gUmVwTGlzdC5iZWdpbigpOyBpdGVyICE9IFJlcExpc3QuZW5kKCk7ICsr
aXRlcikKKyAgIHsKKyAgICAgIGRlbGV0ZSAqaXRlcjsKKyAgIH0KKworICAgUmVwTGlzdC5jbGVh
cigpOworfQorCiAvLyBycG1MaXN0SW5kZXg6OlJlbGVhc2UqIC0gUmV0dXJuIHRoZSBVUkkgdG8g
dGhlIHJlbGVhc2UgZmlsZQkJLyp7e3sqLwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvKiAqLwpkaWZmIC0t
Z2l0IGEvYXB0LXBrZy9ycG0vcnBtaW5kZXhmaWxlLmggYi9hcHQtcGtnL3JwbS9ycG1pbmRleGZp
bGUuaAppbmRleCA1ZjI0ZTI1Yy4uMTNlZTdjMjUgMTAwNjQ0Ci0tLSBhL2FwdC1wa2cvcnBtL3Jw
bWluZGV4ZmlsZS5oCisrKyBiL2FwdC1wa2cvcnBtL3JwbWluZGV4ZmlsZS5oCkBAIC0yMyw2ICsy
Myw4IEBAIGNsYXNzIFJQTUhhbmRsZXI7CiBjbGFzcyBSUE1EQkhhbmRsZXI7CiBjbGFzcyBwa2dS
ZXBvc2l0b3J5OwogCit2b2lkIHJlbW92ZVJlcG9zaXRvcnlDYWNoZXMoKTsKKwogY2xhc3MgcnBt
SW5kZXhGaWxlIDogcHVibGljIHBrZ0luZGV4RmlsZQogewogCi0tIAoyLjMzLjAKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10230</attachid>
            <date>2022-01-31 14:38:26 +0300</date>
            <delta_ts>2022-01-31 14:38:26 +0300</delta_ts>
            <desc>invalidate the in-memory cache</desc>
            <filename>0001-add-use-pkgIndexFile-InvalidateReleases-to-update-in.patch</filename>
            <type>text/plain</type>
            <size>8244</size>
            <attacher name="Ivan Zakharyaschev">imz</attacher>
            
              <data encoding="base64">RnJvbSA1OWQxY2JiMDcyZDc1Zjk3Y2E5OTM1MDZlMGYyYjI3ZDRhNTk0ZGE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIFpha2hhcnlhc2NoZXYgPGltekBhbHRsaW51eC5vcmc+
CkRhdGU6IE1vbiwgMzEgSmFuIDIwMjIgMTI6NTY6MzMgKzAzMDAKU3ViamVjdDogW1BBVENIXSBh
ZGQgJiB1c2UgcGtnSW5kZXhGaWxlOjpJbnZhbGlkYXRlUmVsZWFzZXMoKSB0byB1cGRhdGUKIGlu
LW1lbW9yeSBjYWNoZSAoQUxUIzQxODE2KQoKUHJvYmFibHksIHRoZSBnbG9iYWwgdmFyaWFibGUg
UmVwTGlzdCAoaW4gcnBtaW5kZXhmaWxlLmNjKSBpcyBuZWVkZWQKdG8gam9pbi9kZS1kdXBsaWNh
dGUgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzYW1lIHBrZ1JlcG9zaXRvcnkKb2JqZWN0cy4g
cGtnUmVwb3NpdG9yeTo6QWNxdWlyZSBpcyBzZXQgdG8gZmFsc2Ugb25jZSB0aGV5IGhhdmUgYmVl
bgpkb3dubG9hZGVkIChwcm9iYWJseSwgdG8gYXZvaWQgZG93bmxvYWRpbmcgdHdpY2UtLWJ5IG1l
YW5zIG9mIHRoaXMKYm9vbGVhbiBmbGFnKS4gQnV0IHRoZXJlIHdhcyBubyB3YXkgdG8gZm9yY2Ug
YSByZS1kb3dubG9hZC4KCk9uZSBzb2x1dGlvbiBpcyB0byBzZXQgaXQgYmFjayB0byB0cnVlLgpB
bm90aGVyIHNvbHV0aW9uIGNvdWxkIGJlIHRvIGRlbGV0ZSB0aGUgZm91bmQgcGtnUmVwb3NpdG9y
eSBvYmplY3QsCihhcyBpbiB0aGUgcGF0Y2ggc3VnZ2VzdGVkIGluIGh0dHBzOi8vYnVnemlsbGEu
YWx0bGludXgub3JnLzQxODE2ICkKYW5kIGxldCB0aGUgY2FjaGVGaWxlIG9iamVjdCBhbmQgTGlz
dFVwZGF0ZSgpIGZ1bmN0aW9uIHJlLWJ1aWxkIGl0CmFuZCByZS1kb3dubG9hZCB0aGUgc3R1ZmYu
CgpUaGlzIGlzc3VlIHNob3VsZCBwcm9iYWJseSBiZSBhbHNvIHJlbGV2YW50IGZvciBhcHQtc2hl
bGwKKGkuZS4sIHNldmVyYWwgaW52b2NhdGlvbnMgb2YgInVwZGF0ZSIgY29tbWFuZHMpLiBUT0RP
OiB0ZXN0IHRoaXMKaXNzdWUgaW5zaWRlIHRoZSBhcHQgcHJvamVjdC4KClVubGlrZSBpbiB0aGUg
cGF0Y2ggc3VnZ2VzdGVkIGJ5IGRhcmt0ZW1wbGFyQAppbiBodHRwczovL2J1Z3ppbGxhLmFsdGxp
bnV4Lm9yZy80MTgxNiAsIHRoaXMgc29sdXRpb24Kd291bGRuJ3QgcmVxdWlyZSByZXN0cnVjdHVy
aW5nIHRoZSAicmVmcmVzaCIgY29kZSBpbiBQYWNrYWdlS2l0LApiZWNhdXNlIGl0J3MgT0sgdG8g
Zmlyc3QgcmUtZG93bmxvYWQgdGhlIHJlbGVhc2VzLCBhbmQgb25seSB0aGVuCnRvIGNsZWFyIHRo
ZSBvbi1kaXNrIGNhY2hlIGFuZCByZS1idWlsZCBpdC4KQW5kIHRoYXQgcGF0Y2ggZXhwbGljaXRs
eSBicm91Z2h0IGEgbW9yZSBwcml2YXRlIHJwbS1zcGVjaWZpYyBoZWFkZXIKaW50byB0aGUgZ2Vu
ZXJpYyBhcHQtcGtnIGNvZGUgKHdoaWNoIHNob3VsZCBoYXZlIHN0YXllZCBnZW5lcmljKS4KUGVy
aGFwcywgdGhlcmUgd2FzIHNvbWUgZGFuZ2VyIHRoYXQgYWZ0ZXIgZGVsZXRpbmcgdGhlIGVsZW1l
bnRzCm9mIFJlcExpc3QsIHRoZXJlIHdvdWxkIHJlbWFpbiBkYW5nbGluZyBwb2ludGVycwppbiBy
cG1MaXN0SW5kZXg6OlJlcG9zaXRvcnkuCgpSZXBvcnRlZC1ieTogQWxla3NlaSBOaWtpZm9yb3Yg
PGRhcmt0ZW1wbGFyQGFsdGxpbnV4Lm9yZz4KLS0tCiBhcHQtcGtnL2luZGV4ZmlsZS5oICAgICAg
ICAgfCAgNCArKysrCiBhcHQtcGtnL3JwbS9ycG1pbmRleGZpbGUuY2MgfCAxMCArKysrKysrKysr
CiBhcHQtcGtnL3JwbS9ycG1pbmRleGZpbGUuaCAgfCAgNiArKysrKysKIGFwdC1wa2cvc291cmNl
bGlzdC5jYyAgICAgICB8IDEyICsrKysrKysrKysrKwogYXB0LXBrZy9zb3VyY2VsaXN0LmggICAg
ICAgIHwgIDEgKwogYXB0LXBrZy91cGRhdGUuY2MgICAgICAgICAgIHwgIDIgKy0KIGNtZGxpbmUv
YXB0LWdldC5jYyAgICAgICAgICB8ICA0ICsrKy0KIGNtZGxpbmUvYXB0LXNoZWxsLmNjICAgICAg
ICB8ICAyICstCiA4IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvYXB0LXBrZy9pbmRleGZpbGUuaCBiL2FwdC1wa2cvaW5kZXhmaWxl
LmgKaW5kZXggODE3MjMzYmQ3Li43NmEwNmVkMDEgMTAwNjQ0Ci0tLSBhL2FwdC1wa2cvaW5kZXhm
aWxlLmgKKysrIGIvYXB0LXBrZy9pbmRleGZpbGUuaApAQCAtNjQsNiArNjQsMTAgQEAgY2xhc3Mg
cGtnSW5kZXhGaWxlCiAgICB2aXJ0dWFsIGJvb2wgR2V0SW5kZXhlcyhwa2dBY3F1aXJlICpPd25l
cikgY29uc3Q7CiAKICAgIC8vIENOQzoyMDAyLTA3LTA0CisgICAvLyBUaGUgQVBJIGhhcyBiZWVu
IGV4dGVuZGVkIGluIEFMVCBmb3IgdXBkYXRpbmcgdGhlIGluLW1lbW9yeSBjYWNoZQorICAgLy8g
KG5hbWVseSwgdGhlIGNvbnRlbnRzIG9mIHRoZSBwa2dSZXBvc2l0b3J5IG9iamVjdHMgc3RvcmVk
IGluIFJlcExpc3QKKyAgIC8vIGluIHJwbWluZGV4ZmlsZS5jYzsgc2VlIGh0dHBzOi8vYnVnemls
bGEuYWx0bGludXgub3JnLzQxODE2ICkuCisgICB2aXJ0dWFsIGJvb2wgSW52YWxpZGF0ZVJlbGVh
c2VzKCkgY29uc3QgPSAwOyAvLyB0aGUgZXh0ZW5zaW9uIG1hZGUgaW4gQUxUCiAgICB2aXJ0dWFs
IGJvb2wgR2V0UmVsZWFzZXMocGtnQWNxdWlyZSAqT3duZXIpIGNvbnN0ID0gMDsKIAogICAgLy8g
SW50ZXJmYWNlIGZvciB0aGUgcmVjb3JkIHBhcnNlcnMKZGlmZiAtLWdpdCBhL2FwdC1wa2cvcnBt
L3JwbWluZGV4ZmlsZS5jYyBiL2FwdC1wa2cvcnBtL3JwbWluZGV4ZmlsZS5jYwppbmRleCA2MmE0
NDYyODQuLjNmZDBkYjFiMyAxMDA2NDQKLS0tIGEvYXB0LXBrZy9ycG0vcnBtaW5kZXhmaWxlLmNj
CisrKyBiL2FwdC1wa2cvcnBtL3JwbWluZGV4ZmlsZS5jYwpAQCAtODksNiArODksMTYgQEAgc3Ry
aW5nIHJwbUxpc3RJbmRleDo6UmVsZWFzZUluZm8oY29uc3Qgc3RyaW5nIFR5cGUpIGNvbnN0CiAg
ICByZXR1cm4gSW5mbzsKIH0KIAkJCQkJCQkJCS8qfX19Ki8KKy8vIHJwbUxpc3RJbmRleDo6SW52
YWxpZGF0ZVJlbGVhc2VzIC0gTWFyayB0aGUgaW5kZXggZmlsZXMgZm9yIHJlZmV0Y2hpbmcJLyp7
e3sqLworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKiAqLworYm9vbCBycG1MaXN0SW5kZXg6OkludmFsaWRh
dGVSZWxlYXNlcygpIGNvbnN0Cit7CisgICBpZiAoUmVwb3NpdG9yeSkgLy8gRklYTUU6IEdldFJl
bGVhc2VzKCkgZGlkIG5vIHN1Y2ggY2hlY2suIFdobydzIHJpZ2h0PworICAgICAgUmVwb3NpdG9y
eS0+QWNxdWlyZSA9IHRydWU7CisgICByZXR1cm4gdHJ1ZTsKK30KKwkJCQkJCQkJCS8qfX19Ki8K
IC8vIHJwbUxpc3RJbmRleDo6R2V0UmVsZWFzZXMgLSBGZXRjaCB0aGUgaW5kZXggZmlsZXMJCQkv
Knt7eyovCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8qICovCmRpZmYgLS1naXQgYS9hcHQtcGtnL3JwbS9y
cG1pbmRleGZpbGUuaCBiL2FwdC1wa2cvcnBtL3JwbWluZGV4ZmlsZS5oCmluZGV4IGI3MTQ4YjM4
Yy4uMTRiYWExM2IxIDEwMDY0NAotLS0gYS9hcHQtcGtnL3JwbS9ycG1pbmRleGZpbGUuaAorKysg
Yi9hcHQtcGtnL3JwbS9ycG1pbmRleGZpbGUuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBycG1E
YXRhYmFzZUluZGV4IDogcHVibGljIHJwbUluZGV4RmlsZQogICAgdmlydHVhbCBzdHJpbmcgRGVz
Y3JpYmUoYm9vbCBTaG9ydCkgY29uc3Qgb3ZlcnJpZGUge3JldHVybiAiUlBNIERhdGFiYXNlIjt9
CiAKICAgIC8qIG5vdGhpbmcgdG8gZG93bmxvYWQgaW4gdGhlIGNhc2Ugb2YgdGhlIERCICovCisg
ICB2aXJ0dWFsIGJvb2wgSW52YWxpZGF0ZVJlbGVhc2VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogICAgdmlydHVhbCBib29sIEdldFJlbGVhc2VzKHBrZ0FjcXVpcmUgKk93bmVy
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgIC8vIEludGVyZmFjZSBmb3Ig
dGhlIENhY2hlIEdlbmVyYXRvcgpAQCAtODMsNiArODQsNyBAQCBjbGFzcyBycG1MaXN0SW5kZXgg
OiBwdWJsaWMgcnBtSW5kZXhGaWxlCiAKICAgIHB1YmxpYzoKIAorICAgdmlydHVhbCBib29sIElu
dmFsaWRhdGVSZWxlYXNlcygpIGNvbnN0IG92ZXJyaWRlOwogICAgdmlydHVhbCBib29sIEdldFJl
bGVhc2VzKHBrZ0FjcXVpcmUgKk93bmVyKSBjb25zdCBvdmVycmlkZTsKIAogICAgLy8gSW50ZXJm
YWNlIGZvciB0aGUgQ2FjaGUgR2VuZXJhdG9yCkBAIC0xODMsNiArMTg1LDcgQEAgY2xhc3MgcnBt
UGtnRGlySW5kZXggOiBwdWJsaWMgcnBtUGtnTGlzdEluZGV4CiAKICAgIHB1YmxpYzoKIAorICAg
dmlydHVhbCBib29sIEludmFsaWRhdGVSZWxlYXNlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KICAgIHZpcnR1YWwgYm9vbCBHZXRSZWxlYXNlcyhwa2dBY3F1aXJlICpPd25lcikg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgdmlydHVhbCBib29sIEdldEluZGV4
ZXMocGtnQWNxdWlyZSAqT3duZXIpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApA
QCAtMjEwLDYgKzIxMyw3IEBAIGNsYXNzIHJwbVNyY0RpckluZGV4IDogcHVibGljIHJwbVNyY0xp
c3RJbmRleAogCiAgICBwdWJsaWM6CiAKKyAgIHZpcnR1YWwgYm9vbCBJbnZhbGlkYXRlUmVsZWFz
ZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICB2aXJ0dWFsIGJvb2wgR2V0
UmVsZWFzZXMocGtnQWNxdWlyZSAqT3duZXIpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KICAgIHZpcnR1YWwgYm9vbCBHZXRJbmRleGVzKHBrZ0FjcXVpcmUgKk93bmVyKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTIzOSw2ICsyNDMsNyBAQCBjbGFzcyBycG1T
aW5nbGVQa2dJbmRleCA6IHB1YmxpYyBycG1Qa2dMaXN0SW5kZXgKIAogICAgcHVibGljOgogCisg
ICB2aXJ0dWFsIGJvb2wgSW52YWxpZGF0ZVJlbGVhc2VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogICAgdmlydHVhbCBib29sIEdldFJlbGVhc2VzKHBrZ0FjcXVpcmUgKk93bmVy
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICB2aXJ0dWFsIGJvb2wgR2V0SW5k
ZXhlcyhwa2dBY3F1aXJlICpPd25lcikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CkBAIC0yNjUsNiArMjcwLDcgQEAgY2xhc3MgcnBtU2luZ2xlU3JjSW5kZXggOiBwdWJsaWMgcnBt
U3JjTGlzdEluZGV4CiAKICAgIHB1YmxpYzoKIAorICAgdmlydHVhbCBib29sIEludmFsaWRhdGVS
ZWxlYXNlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgIHZpcnR1YWwgYm9v
bCBHZXRSZWxlYXNlcyhwa2dBY3F1aXJlICpPd25lcikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogICAgdmlydHVhbCBib29sIEdldEluZGV4ZXMocGtnQWNxdWlyZSAqT3duZXIpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvYXB0LXBrZy9zb3Vy
Y2VsaXN0LmNjIGIvYXB0LXBrZy9zb3VyY2VsaXN0LmNjCmluZGV4IDhlM2YwY2U3NC4uNmIxNWRh
YjI3IDEwMDY0NAotLS0gYS9hcHQtcGtnL3NvdXJjZWxpc3QuY2MKKysrIGIvYXB0LXBrZy9zb3Vy
Y2VsaXN0LmNjCkBAIC00MTksNiArNDE5LDE4IEBAIGJvb2wgcGtnU291cmNlTGlzdDo6R2V0SW5k
ZXhlcyhwa2dBY3F1aXJlICpPd25lcikgY29uc3QKICAgIHJldHVybiB0cnVlOwogfQogCQkJCQkJ
CQkJLyp9fX0qLworLy8gQ05DOjIwMDItMDctMDQncyBleHRlbnNpb24gYnkgQUxUCisvLyBTb3Vy
Y2VMaXN0OjpJdmFsaWRhdGVSZWxlYXNlcyAtIE1hcmsgYWxsIHJlbGVhc2VzIHRvIGJlIHJlLWZl
dGNoZWQJLyp7e3sqLworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKiAqLworYm9vbCBwa2dTb3VyY2VMaXN0
OjpJbnZhbGlkYXRlUmVsZWFzZXMoKSBjb25zdAoreworICAgZm9yIChjb25zdF9pdGVyYXRvciBJ
ID0gU3JjTGlzdC5iZWdpbigpOyBJICE9IFNyY0xpc3QuZW5kKCk7IEkrKykKKyAgICAgIGlmICgo
KkkpLT5JbnZhbGlkYXRlUmVsZWFzZXMoKSA9PSBmYWxzZSkKKwkgcmV0dXJuIGZhbHNlOworICAg
cmV0dXJuIHRydWU7Cit9CisJCQkJCQkJCQkvKn19fSovCiAvLyBDTkM6MjAwMi0wNy0wNAogLy8g
U291cmNlTGlzdDo6R2V0UmVsZWFzZXMgLSBMb2FkIHJlbGVhc2UgZmlsZXMgaW50byB0aGUgZG93
bmxvYWRlcgkvKnt7eyovCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2FwdC1wa2cvc291
cmNlbGlzdC5oIGIvYXB0LXBrZy9zb3VyY2VsaXN0LmgKaW5kZXggOWUwOGFiYTdiLi4yN2ZiMTg1
MGIgMTAwNjQ0Ci0tLSBhL2FwdC1wa2cvc291cmNlbGlzdC5oCisrKyBiL2FwdC1wa2cvc291cmNl
bGlzdC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgY2xhc3MgcGtnU291cmNlTGlzdAogICAgYm9vbCBH
ZXRJbmRleGVzKHBrZ0FjcXVpcmUgKk93bmVyKSBjb25zdDsKIAogICAgLy8gQ05DOjIwMDItMDct
MDQKKyAgIGJvb2wgSW52YWxpZGF0ZVJlbGVhc2VzKCkgY29uc3Q7IC8vIEFMVCdzIGV4dGVuc2lv
bgogICAgYm9vbCBHZXRSZWxlYXNlcyhwa2dBY3F1aXJlICpPd25lcikgY29uc3Q7CiAKICAgIHBr
Z1NvdXJjZUxpc3QoKTsKZGlmZiAtLWdpdCBhL2FwdC1wa2cvdXBkYXRlLmNjIGIvYXB0LXBrZy91
cGRhdGUuY2MKaW5kZXggMWEyYjc3YWU1Li4xMjY3MmNiYTYgMTAwNjQ0Ci0tLSBhL2FwdC1wa2cv
dXBkYXRlLmNjCisrKyBiL2FwdC1wa2cvdXBkYXRlLmNjCkBAIC02MSw3ICs2MSw3IEBAIGJvb2wg
TGlzdFVwZGF0ZShwa2dBY3F1aXJlU3RhdHVzICZTdGF0LAogICAgYm9vbCBSZXMgPSB0cnVlOwog
CiAgICAvLyBQb3B1bGF0ZSBpdCB3aXRoIHJlbGVhc2UgZmlsZSBVUklzCi0gICBpZiAoIUxpc3Qu
R2V0UmVsZWFzZXMoJkZldGNoZXIpKQorICAgaWYgKCEgKExpc3QuSW52YWxpZGF0ZVJlbGVhc2Vz
KCkgJiYgTGlzdC5HZXRSZWxlYXNlcygmRmV0Y2hlcikpICkKICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgcmVzID0gRmV0Y2hlci5SdW4oKTsKZGlmZiAtLWdpdCBhL2NtZGxpbmUvYXB0LWdldC5j
YyBiL2NtZGxpbmUvYXB0LWdldC5jYwppbmRleCAzYzI0MjBlMGEuLjY2OWNmZTE4MCAxMDA2NDQK
LS0tIGEvY21kbGluZS9hcHQtZ2V0LmNjCisrKyBiL2NtZGxpbmUvYXB0LWdldC5jYwpAQCAtMTEz
OSw3ICsxMTM5LDkgQEAgYm9vbCBEb1VwZGF0ZShDb21tYW5kTGluZSAmQ21kTCkKICAgICAgIHBr
Z0FjcXVpcmUgRmV0Y2hlcigmU3RhdCk7CiAKICAgICAgIC8vIFBvcHVsYXRlIGl0IHdpdGggcmVs
ZWFzZSBmaWxlIFVSSXMKLSAgICAgIGlmICghTGlzdC5HZXRSZWxlYXNlcygmRmV0Y2hlcikpCisg
ICAgICAvLyBJbnZhbGlkYXRlUmVsZWFzZXMoKSBpc24ndCByZWFsbHkgbmVjZXNzYXJ5LCBzaW5j
ZSBhcHQtZ2V0IGlzCisgICAgICAvLyBhIG9uZS1zaG90IHByb2Nlc3MuIEl0J3MgaGVyZSBmb3Ig
Y29uc2lzdGVuY3kgKHdpdGggb3RoZXIgdXRpbGl0aWVzKS4KKyAgICAgIGlmICghIChMaXN0Lklu
dmFsaWRhdGVSZWxlYXNlcygpICYmIExpc3QuR2V0UmVsZWFzZXMoJkZldGNoZXIpKSApCiAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgIC8vIFBvcHVsYXRlIGl0IHdpdGggdGhlIHNvdXJj
ZSBzZWxlY3Rpb24KZGlmZiAtLWdpdCBhL2NtZGxpbmUvYXB0LXNoZWxsLmNjIGIvY21kbGluZS9h
cHQtc2hlbGwuY2MKaW5kZXggYjE4MDliOGJkLi4wZjM0NWY1NjcgMTAwNjQ0Ci0tLSBhL2NtZGxp
bmUvYXB0LXNoZWxsLmNjCisrKyBiL2NtZGxpbmUvYXB0LXNoZWxsLmNjCkBAIC0xMDY3LDcgKzEw
NjcsNyBAQCBib29sIERvVXBkYXRlKENvbW1hbmRMaW5lICZDbWRMKQogICAgICAgcGtnQWNxdWly
ZSBGZXRjaGVyKCZTdGF0KTsKIAogICAgICAgLy8gUG9wdWxhdGUgaXQgd2l0aCByZWxlYXNlIGZp
bGUgVVJJcwotICAgICAgaWYgKCFMaXN0LkdldFJlbGVhc2VzKCZGZXRjaGVyKSkKKyAgICAgIGlm
ICghIChMaXN0LkludmFsaWRhdGVSZWxlYXNlcygpICYmIExpc3QuR2V0UmVsZWFzZXMoJkZldGNo
ZXIpKSApCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgIC8vIFBvcHVsYXRlIGl0IHdp
dGggdGhlIHNvdXJjZSBzZWxlY3Rpb24KLS0gCjIuMjUuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>