<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ошибка при обновлении до версии 6.2.2]]></title><description><![CDATA[<p dir="auto">Добрый день</p>
<p dir="auto">Обновлялся с версии 6.1.2 до версии 6.2.2<br />
Апгрейд базы до конца завершиться не может, возникает ошибка:</p>
<p dir="auto">Upgrading from version 62.1 to 62.2<br />
SQL query failed (58P01 ERROR:  could not access file "timescaledb-2.26.3": No such file or directory):<br />
ALTER TABLE object_tools ADD applicable_classes integer<br />
Rolling back last stage due to upgrade errors...<br />
Database upgrade failed</p>
<p dir="auto">Версия postgress при этом:<br />
postgresql18-timescaledb-2.27.2-alt1.x86_64</p>
<p dir="auto">т.е. версия timescale выше требуемой и проблем бы быть не должно. Или при апгрейде до 6.2.2 требуется именно 2.26.3?</p>
<p dir="auto">Подскажите где ошибка или как обойти это ограничение?<br />
ОС - Altlinux Server, 11.1<br />
Спасибо!</p>
]]></description><link>https://forum.netxms.org/topic/8430/ошибка-при-обновлении-до-версии-6.2.2</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 09:39:50 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/8430.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Aug 2026 12:38:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ошибка при обновлении до версии 6.2.2 on Wed, 12 Aug 2026 12:47:01 GMT]]></title><description><![CDATA[<p dir="auto">Всё получилось, ровно так как вы и написали. Вариант с make install конечно, более привлекателен )</p>
<p dir="auto">В конечном итоге:</p>
<p dir="auto">[root@AltTEST netxms-6.2.3]# nxdbmgr upgrade<br />
NetXMS Database Manager Version 6.2.3 Build 6.2-694-g766c57382a</p>
<p dir="auto">INFO: Server module WEBAPI skipped<br />
Upgrading database...<br />
Upgrading from version 62.35 to 62.36<br />
Upgrading from version 62.36 to 62.37<br />
Upgrading from version 62.37 to 62.38<br />
Database upgrade succeeded</p>
<p dir="auto">Большое спасибо за помощь!</p>
]]></description><link>https://forum.netxms.org/post/35726</link><guid isPermaLink="true">https://forum.netxms.org/post/35726</guid><dc:creator><![CDATA[KonstantinM]]></dc:creator><pubDate>Wed, 12 Aug 2026 12:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Ошибка при обновлении до версии 6.2.2 on Tue, 11 Aug 2026 15:25:50 GMT]]></title><description><![CDATA[<p dir="auto">Это не регрессия сборки 6.2.3. Линковщик берёт libnxdb не из дерева сборки, а из <strong>/usr/local/lib</strong> — ту, что осталась от установленной 6.2.2. Путь в самой ошибке это и показывает: /usr/local/lib/libnxdb.so.62, а не /home/admin/netxms-6.2.3/src/db/libnxdb/.libs/.</p>
<p dir="auto">Самое простое — запустить <strong>make install</strong> вместо make. Установка рекурсивная: каждый каталог сначала собирается и тут же устанавливается, и src/db проходит задолго до src/server/tools. К моменту линковки nddload в /usr/local/lib лежит уже libnxdb от 6.2.3, и подстановка срабатывает правильно. Отдельный make ломается именно потому, что ничего не устанавливает и файл от 6.2.2 остаётся на месте до самого конца.</p>
<p dir="auto">Что происходит:</p>
<p dir="auto">В 6.2.3 бэкпортнут фикс <a href="https://github.com/netxms/netxms/issues/3483" rel="nofollow ugc">https://github.com/netxms/netxms/issues/3483</a> — case folding для Unicode стал locale-independent и считается по таблицам Unicode, а не через towupper/towlower из libc. Вместе с этим из libnetxms убраны собственные wcsupr/wcslwr, вместо них nx_wcsupr/nx_wcslwr. Сами wcsupr/wcslwr — расширения MSVC, ни в C, ни в POSIX их нет и в glibc не было никогда, поэтому NetXMS всегда собирал свои реализации, а libnxdb на них ссылалась. В 6.2.3 libnetxms их больше не экспортирует.</p>
<p dir="auto">soname у всей ветки 6.2.x один — .so.62, он считается из major.minor и от patch-версии не зависит. Поэтому файл от 6.2.2 называется ровно так же, как собираемый сейчас, и подменяет его молча. При сборке 6.1.2 и 6.2.2 набор экспортируемых символов совпадал, и подмена ни на что не влияла — поэтому вы её не видели. В 6.2.3 символы исчезли, и старая libnxdb перестала линковаться.</p>
<p dir="auto">Откуда в поиске берётся /usr/local/lib: configure добавляет -L/usr/local/lib, если такой каталог существует. Он существует, потому что там установлена 6.2.2.</p>
<p dir="auto">Почему упало именно на nddload, хотя netxmsd собрался: netxmsd передаёт libnxdb явным путём в дереве сборки. У nddload и остальных утилит из src/server/tools libnxdb в списке нет — она приходит только как зависимость libnxsrv, и её приходится искать, а поиск попадает в /usr/local/lib. nddload — первая программа в этом каталоге по порядку сборки. Сами библиотеки собрались нормально потому, что shared library линкуется с неразрешёнными символами, а программа — нет.</p>
<p dir="auto">Порядок:</p>
<pre><code>systemctl stop netxmsd                 # имя юнита зависит от сборки
cd /home/admin/netxms-6.2.3
make install
ldconfig
nxdbmgr upgrade                        # 6.2.3 это схема 62.38, сейчас база на 62.35
systemctl start netxmsd
</code></pre>
<p dir="auto"><strong>Важная деталь:</strong> make install перезаписывает установленную 6.2.2 по ходу дела, а не одним шагом в конце. Поэтому сервер лучше остановить заранее, и если сборка упадёт где-то дальше, установка останется наполовину обновлённой. Если хочется сначала довести до конца обычный make, старые библиотеки придётся убрать из /usr/local/lib руками — libnetxms.*, libnx*.*, libethernetip.*, libipfix.*</p>
<p dir="auto">Проверить, что дело именно в этом, если понадобится:</p>
<pre><code>nm -D -u /usr/local/lib/libnxdb.so.62 | c++filt | grep -E 'wcsupr|wcslwr'
nm -D -u /home/admin/netxms-6.2.3/src/db/libnxdb/.libs/libnxdb.so.62 | c++filt | grep -E 'wcsupr|wcslwr'
</code></pre>
<p dir="auto">У установленной сейчас должно быть __wcsupr(wchar_t*) и wcslwr(wchar_t*), у свежесобранной — nx_wcsupr(wchar_t*) и nx_wcslwr(wchar_t*).</p>
<p dir="auto">Каталог /usr/local/lib/netxms (dbdrv, ndd, субагенты) трогать не нужно, make install перезапишет его содержимое. Если в нём остались модули от версий старше 6.2.2, которых в 6.2.3 уже нет, они там и останутся, и при загрузке будут падать с такой же ошибкой про неразрешённый символ — уже в рантайме, в лог сервера.</p>
<p dir="auto">На то, что утилиты из src/server/tools линкуются с установленной библиотекой вместо собранной, завёл тикет: <a href="https://github.com/netxms/netxms/issues/3548" rel="nofollow ugc">https://github.com/netxms/netxms/issues/3548</a></p>
]]></description><link>https://forum.netxms.org/post/35720</link><guid isPermaLink="true">https://forum.netxms.org/post/35720</guid><dc:creator><![CDATA[alk]]></dc:creator><pubDate>Tue, 11 Aug 2026 15:25:50 GMT</pubDate></item><item><title><![CDATA[Reply to Ошибка при обновлении до версии 6.2.2 on Tue, 11 Aug 2026 07:27:50 GMT]]></title><description><![CDATA[<p dir="auto">Добрый день!</p>
<p dir="auto">Спасибо за помощь, помогло! Выкладываю ниже вывод.</p>
<ol>
<li>Upgrade до 6.2.2</li>
</ol>
<p dir="auto">[root@AltTEST data]# psql -U postgres -X -d netxms_db -c "SELECT extname, extversion FROM pg_extension WHERE extname='timescaledb'"<br />
Password for user postgres:<br />
ERROR:  could not access file "timescaledb-2.26.3": No such file or directory</p>
<p dir="auto">[root@AltTEST data]# ls $(pg_config --pkglibdir)/timescaledb*<br />
/usr/lib64/pgsql/timescaledb-2.27.2.so  /usr/lib64/pgsql/timescaledb.so  /usr/lib64/pgsql/timescaledb-tsl-2.27.2.so</p>
<p dir="auto">[root@AltTEST data]# systemctl restart postgresql<br />
[root@AltTEST data]# psql -X -d netxms_db -U postgres<br />
Password for user postgres:<br />
psql (18.4)<br />
Type "help" for help.</p>
<p dir="auto">netxms_db=# ALTER EXTENSION timescaledb UPDATE;<br />
ALTER EXTENSION<br />
netxms_db=# \dx timescaledb<br />
                                                       List of installed extensions<br />
    Name     | Version | Default version | Schema |                                      Description<br />
-------------+---------+-----------------+--------+---------------------------------------------------------------------------------------<br />
 timescaledb | 2.27.2  | 2.27.2          | public | Enables scalable inserts and complex queries for time-series data (Community Edition)<br />
(1 row)</p>
<p dir="auto">netxms_db=#</p>
<p dir="auto">[root@AltTEST data]# nxdbmgr upgrade<br />
NetXMS Database Manager Version 6.2.2 Build 6.2-614-gfd28d43d5e</p>
<p dir="auto">INFO: Server module WEBAPI skipped<br />
Upgrading database...<br />
Upgrading from version 62.1 to 62.2<br />
Upgrading from version 62.2 to 62.3<br />
Upgrading from version 62.3 to 62.4<br />
Upgrading from version 62.4 to 62.5<br />
Upgrading from version 62.5 to 62.6<br />
Upgrading from version 62.6 to 62.7<br />
Upgrading from version 62.7 to 62.8<br />
Upgrading from version 62.8 to 62.9<br />
Upgrading from version 62.9 to 62.10<br />
Upgrading from version 62.10 to 62.11<br />
Upgrading from version 62.11 to 62.12<br />
Upgrading from version 62.12 to 62.13<br />
Upgrading from version 62.13 to 62.14<br />
Upgrading from version 62.14 to 62.15<br />
Upgrading from version 62.15 to 62.16<br />
Upgrading from version 62.16 to 62.17<br />
Upgrading from version 62.17 to 62.18<br />
Upgrading from version 62.18 to 62.19<br />
Upgrading from version 62.19 to 62.20<br />
WARNING:  column type "character varying" used for "service_name" does not follow best practices<br />
HINT:  Use datatype TEXT instead.<br />
WARNING:  column type "character varying" used for "scope_name" does not follow best practices<br />
HINT:  Use datatype TEXT instead.<br />
WARNING:  column type "character varying" used for "severity_text" does not follow best practices<br />
HINT:  Use datatype TEXT instead.<br />
WARNING:  column type "character varying" used for "trace_id" does not follow best practices<br />
HINT:  Use datatype TEXT instead.<br />
WARNING:  column type "character varying" used for "span_id" does not follow best practices<br />
HINT:  Use datatype TEXT instead.<br />
Upgrading from version 62.20 to 62.21<br />
Upgrading from version 62.21 to 62.22<br />
Upgrading from version 62.22 to 62.23<br />
Upgrading from version 62.23 to 62.24<br />
Upgrading from version 62.24 to 62.25<br />
Upgrading from version 62.25 to 62.26<br />
Upgrading from version 62.26 to 62.27<br />
Upgrading from version 62.27 to 62.28<br />
Upgrading from version 62.28 to 62.29<br />
Upgrading from version 62.29 to 62.30<br />
Upgrading from version 62.30 to 62.31<br />
Upgrading from version 62.31 to 62.32<br />
Upgrading from version 62.32 to 62.33<br />
Upgrading from version 62.33 to 62.34<br />
Upgrading from version 62.34 to 62.35<br />
Database upgrade succeeded</p>
<p dir="auto">После чего всё запустилось и работает! Ещё раз спасибо!</p>
<ol start="2">
<li>Обновление до 6.2.3</li>
</ol>
<p dir="auto">Собрать не удалось, в какой то момент при сборке появляется ошибка. Вывод консольный ниже:</p>
<p dir="auto">make[5]: Leaving directory '/home/admin/netxms-6.2.3/src/server/tools/scripts'<br />
make[5]: Entering directory '/home/admin/netxms-6.2.3/src/server/tools'<br />
  CXX      nddload/nddload-nddload.o<br />
  CXXLD    nddload/nddload<br />
ld: /usr/local/lib/libnxdb.so.62: undefined reference to `__wcsupr(wchar_t*)'<br />
ld: /usr/local/lib/libnxdb.so.62: undefined reference to `wcslwr(wchar_t*)'<br />
collect2: error: ld returned 1 exit status<br />
make[5]: *** [Makefile:691: nddload/nddload] Error 1<br />
make[5]: Leaving directory '/home/admin/netxms-6.2.3/src/server/tools'<br />
make[4]: *** [Makefile:1010: all-recursive] Error 1<br />
make[4]: Leaving directory '/home/admin/netxms-6.2.3/src/server/tools'<br />
make[3]: *** [Makefile:491: all-recursive] Error 1<br />
make[3]: Leaving directory '/home/admin/netxms-6.2.3/src/server'<br />
make[2]: *** [Makefile:494: all-recursive] Error 1<br />
make[2]: Leaving directory '/home/admin/netxms-6.2.3/src'<br />
make[1]: *** [Makefile:546: all-recursive] Error 1<br />
make[1]: Leaving directory '/home/admin/netxms-6.2.3'<br />
make: *** [Makefile:478: all] Error 2</p>
<p dir="auto">До этого на том же сервере собирал 6.1.2 и 6.2.2 - не было проблем. 6.2.2 собралось, успешно обновилось и работает.</p>
]]></description><link>https://forum.netxms.org/post/35718</link><guid isPermaLink="true">https://forum.netxms.org/post/35718</guid><dc:creator><![CDATA[KonstantinM]]></dc:creator><pubDate>Tue, 11 Aug 2026 07:27:50 GMT</pubDate></item><item><title><![CDATA[Reply to Ошибка при обновлении до версии 6.2.2 on Mon, 10 Aug 2026 15:52:07 GMT]]></title><description><![CDATA[<p dir="auto">Добрый день,</p>
<p dir="auto">6.2.2 не требует TimescaleDB 2.26.3 — апгрейд вообще не привязан ни к какой конкретной версии расширения. Единственное требование во всей ветке 62.x — TimescaleDB не ниже 2.10, оно проверяется на более позднем шаге, где создаются continuous aggregates, и 2.27.2 его закрывает. Ошибка приходит не из NetXMS: PostgreSQL пытается загрузить библиотеку расширения timescaledb версии 2.26.3, потому что <strong>именно эта версия записана в каталоге базы</strong>, а на диске после обновления пакета осталась только 2.27.2. Пакет обновили, а расширение внутри базы — нет.</p>
<p dir="auto">Почему упало именно здесь: ALTER TABLE object_tools ADD applicable_classes — <strong>первый DDL за весь апгрейд</strong>. Шаги с 61.36 до 62.1 только пишут строки в metadata и config, а на DDL PostgreSQL обязан загрузить код расширения, потому что timescaledb вешает на DDL свои event triggers. Сам шаг 62.1 → 62.2 к TimescaleDB отношения не имеет, object_tools — обычная таблица, не hypertable.</p>
<p dir="auto">Сначала стоит убедиться, что картина именно такая:</p>
<pre><code>psql -X -d netxms -c "SELECT extname, extversion FROM pg_extension WHERE extname='timescaledb'"
ls $(pg_config --pkglibdir)/timescaledb*
</code></pre>
<p dir="auto">Если extversion показывает 2.26.3, а на диске лежит только <a href="http://timescaledb-2.27.2.so" rel="nofollow ugc">timescaledb-2.27.2.so</a> — причина в этом.</p>
<p dir="auto">Порядок действий:</p>
<pre><code>systemctl restart postgresql          # имя юнита зависит от сборки пакета
psql -X -d netxms                     # -X обязателен
ALTER EXTENSION timescaledb UPDATE;   # первой же командой в сессии
\dx timescaledb
</code></pre>
<p dir="auto">Два момента, из-за которых это часто не проходит с первого раза: ALTER EXTENSION должен быть <strong>первой командой в сессии</strong> — после любого другого запроса библиотека старой версии уже пытается загрузиться, и апдейт падает с той же ошибкой (отсюда и -X, чтобы .psqlrc ничего не выполнил до этого). И выполнить его нужно <strong>в каждой базе, где установлено расширение</strong>, а не только в базе NetXMS.</p>
<p dir="auto">Если ALTER EXTENSION всё же падает с той же ошибкой — поставить обратно пакет с 2.26.3, выполнить ALTER EXTENSION timescaledb UPDATE при живой старой библиотеке, затем снова обновить пакет до 2.27.2.</p>
<p dir="auto">После этого повторить nxdbmgr upgrade. По состоянию базы: каждый шаг апгрейда выполняется в отдельной транзакции, DDL в PostgreSQL транзакционный, поэтому откат снял шаг 62.2 целиком — недоприменённых изменений не осталось, база консистентна и стоит на схеме 62.1. Повторный запуск безопасен, но dump перед ним сделать стоит.</p>
<p dir="auto">Важное следствие: схема уже 62.1, а сервер требует точного совпадения версии схемы, поэтому сейчас не стартует ни 6.2.2 (ждёт 62.35), ни 6.1.2 (ждёт 61.36) — в логе будет "Your database has format version ...". Путь только вперёд, откат назад — это восстановление из бэкапа.</p>
<p dir="auto">На то, что nxdbmgr показывает это состояние ошибкой, по которой причину не видно, завёл тикет: <a href="https://github.com/netxms/netxms/issues/3540" rel="nofollow ugc">https://github.com/netxms/netxms/issues/3540</a>. И отдельно на документацию, <a href="https://github.com/netxms/netxms-doc/issues/65" rel="nofollow ugc">https://github.com/netxms/netxms-doc/issues/65</a> — в разделе про апгрейд про обновление расширения не сказано ничего.</p>
<p dir="auto">И раз апгрейд всё равно не завершён: сегодня вышла 6.2.3, <a href="https://www.netxms.org/forum/announcements/netxms-6-2-patch-release-3/" rel="nofollow ugc">https://www.netxms.org/forum/announcements/netxms-6-2-patch-release-3/</a> — имеет смысл ставить сразу её. На эту ошибку она не влияет, шаг 62.1 → 62.2 в ней тот же самый, добавлены только шаги после него (схема 62.38 вместо 62.35).</p>
<p dir="auto">Если extversion в базе окажется уже 2.27.2 — тогда картина другая, покажите вывод запроса и полный вывод nxdbmgr upgrade.</p>
]]></description><link>https://forum.netxms.org/post/35714</link><guid isPermaLink="true">https://forum.netxms.org/post/35714</guid><dc:creator><![CDATA[alk]]></dc:creator><pubDate>Mon, 10 Aug 2026 15:52:07 GMT</pubDate></item></channel></rss>