Баги 1.2.3
-
@victor said in Баги 1.2.3:
Это 1.2.3.1? А что в таблице network_map_links?
cjpl
Создал новую, добавил 4 ноды, связал их линками, сохранил layot, перезапустил сервер. Карты опять убитые.INSERT INTO `network_map_links` VALUES (36946,1,3,0,'','','',-1,0,0,''),(36946,1,4,0,'','','',-1,0,0,''),(36946,4,2,0,'','','',-1,0,0,''); -
набросал частично тесты, вся неделя загружена.
Итак еще проблемы
- Edit comment не работает.
- Комментарий никак не удалить
скорее feature request
3) В Event log когда находишь алярм который был например завершен то нельзя посмотреть привязаные к нему комментарии. Хотя сам комментарий в базе остается.и вопрос
4) никак не удается прикрутить русский язык,вроде все уже попробовалmysql> \s -------------- mysql Ver 14.14 Distrib 5.5.21, for FreeBSD8.3 (i386) using 5.2 Connection id: 26 Current database: netxms Current user: root@localhost SSL: Not in use Current pager: more Using outfile: '' Using delimiter: ; Server version: 5.5.21-log Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /tmp/mysql.sock Uptime: 41 min 15 sec Threads: 25 Questions: 680727 Slow queries: 0 Opens: 583 Flush tables: 1 Open tables: 512 Queries per second avg: 275.041 --------------сервер
netxms# nxdbmgr get codepage NetXMS Database Manager Version 1.2.3.1 utf-8может ему нужно UTF-8 или UTF8, хотя во фре это не принципиально по моему
freebsd
netxms# locale LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_ALL=и результат
mysql> SELECT * FROM alarm_notes; +---------+----------+-------------+---------+----------------------------------------+ | note_id | alarm_id | change_time | user_id | note_text | +---------+----------+-------------+---------+----------------------------------------+ | 1 | 18196 | 1347610949 | 0 | ??? ?????? ?????? ???, ??????? ?? 5.25 | | 2 | 18802 | 1348132036 | 2 | ????? | | 3 | 18802 | 1348132377 | 2 | test comment #1 | | 4 | 18802 | 1348132411 | 2 | test comment with ru="????" | | 5 | 18802 | 1348132436 | 2 | test comment #2 | | 6 | 18802 | 1348132522 | 2 | ????? | | 7 | 18802 | 1348132560 | 2 | q?w?e?r?t?y? | +---------+----------+-------------+---------+----------------------------------------+может я не там копаю?
-
-
@weird said in Баги 1.2.3:
# grep CodePage /etc/netxmsd.conf CodePage = UTF-8Не оно?
не аналогично?
netxms# nxdbmgr get codepage
NetXMS Database Manager Version 1.2.3.1utf-8
а у вас, русский?
хм, странно.
mysql> SHOW CREATE TABLE alarm_notes;
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| alarm_notes | CREATE TABLE `alarm_notes` (
`note_id` int(11) NOT NULL,
`alarm_id` int(11) NOT NULL,
`change_time` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`note_text` text,
PRIMARY KEY (`note_id`),
KEY `idx_alarm_notes_alarm_id` (`alarm_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql>
хотя
mysql> SHOW CREATE DATABASE netxms;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| netxms | CREATE DATABASE `netxms` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)щас пробегусь скриптом.
-
@skynv said in Баги 1.2.3:
@weird said in Баги 1.2.3:
# grep CodePage /etc/netxmsd.conf CodePage = UTF-8Не оно?
не аналогично?
netxms# nxdbmgr get codepage
NetXMS Database Manager Version 1.2.3.1utf-8
Нет, не аналогично. Параметр CodePage задается именно в netxmsd.conf. Но для UNICODE сборки он по идее никакого значения иметь не должен.
-
@skynv said in Баги 1.2.3:
@weird said in Баги 1.2.3:
# grep CodePage /etc/netxmsd.conf CodePage = UTF-8Не оно?
не аналогично?
netxms# nxdbmgr get codepage
NetXMS Database Manager Version 1.2.3.1utf-8
Нет, не аналогично. Параметр CodePage задается именно в netxmsd.conf. Но для UNICODE сборки он по идее никакого значения иметь не должен.
Дело было в базе все-таки, вернее у самой базы кодировка то утф, а вот у таблиц latin1. Забавная ситуация.
заюзал
ALTER TABLE `alarm_notes` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
и заработало.
mysql> SELECT * FROM alarm_notes;
+---------+----------+-------------+---------+-----------------------------------------------------+
| note_id | alarm_id | change_time | user_id | note_text |
+---------+----------+-------------+---------+-----------------------------------------------------+
| 1 | 18196 | 1347610949 | 0 | ??? ?????? ?????? ???, ??????? ?? 5.25 |
...
| 15 | 18876 | 1348245181 | 0 | проверка |
| 16 | 18876 | 1348245209 | 0 | Черт побери, оно заработало. |
+---------+----------+-------------+---------+-----------------------------------------------------+
16 rows in set (0.00 sec)ночью или утром все таблицы дропну таким макаром.
-
да, проблема была именнно в этом. Причем помимо latin1 Встречались и другие кодировки у таблиц. Видимо это наследие...
вот скрипт которым я все таблички конвертировал, вдруг пригодится кому, можно вынести куда-нибудь, думаю в связи с поддержкой юникода возникнут вопросы в дальнейшем.
#!/bin/sh MYSQL_RESULT=`mysql -Bse "show tables from YOUR_DB_NAME" --password="YOUR_PASSWD"` for i in $MYSQL_RESULT; do result=`mysql -Bse "use YOUR_DB_NAME;ALTER TABLE $i CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;" --password="YOUR_PASSWD"` echo $i " ok" done; -
-
netxms# nxdbmgr import /home/netxms/backup/21092012
NetXMS Database Manager Version 1.2.3.1WARNING!!!
This operation will clear all configuration and collected data from database.
Are you sure? (Y/N) y
Database successfully cleared
Importing table config
SQL query failed (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,) VALUES ('ActiveDiscoveryInterval','7200','1','1')' at line 1):
INSERT INTO config (,,,) VALUES ('ActiveDiscoveryInterval','7200','1','1')
ERROR: SQL query "SELECT * FROM config" on import file failed (callback requested query abort)
Database import failed.не может импортировать экспортированную базу почему то
-
-
Poprobuju povtorit' u sebja segodnja vecherom.
-
-
@victor said in Баги 1.2.3:
Poprobuju povtorit' u sebja segodnja vecherom.
И вот спустя 3 дня базу поднял.
- перегнал sqlite в текст, по сути нас интересуют одни инсерты
- удалил все криейты и т.д., оставив инсерты
- добавил криэейт из schema файла который прилагается
- загнал получившийся дамп в базу
переодически возникали проблемы различные, так-как как криейты забивал руками, там опечатка, там опечатка. Иногда проскакивали странные глюки с кодировкой, но это помоему em Editor накосячил, доделывал все в ultra-edit. нелегко искать опечатки среди 30m строк )), сегодня весь день коммитил. Вроде поднялось все.
-
постоянно сыпляться
Sql query failed commands out of sync you can't run this command now
поиск выдал примерные причины
http://www.mysql.ru/docs/man/Commands_out_of_sync.html
http://habrahabr.ru/post/21326/ -
-
это нормальная работа?
netxmsd: sh po
PT TIME STATE
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:03:01 poll: M_Uz_Zarech_16 [5464] - wait for lock
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:02:59 wait
S 03/Oct/2012 11:01:10 poll: 192.168.1.33 [7713] - wait for lock
S 03/Oct/2012 11:00:35 poll: 192.168.1.33 [7683] - wait for lock
S 03/Oct/2012 11:03:16 wait
S 03/Oct/2012 11:02:50 wait
S 03/Oct/2012 11:00:40 poll: 192.168.1.33 [7701] - wait for lock
S 03/Oct/2012 11:00:15 poll: 192.168.1.33 [7695] - wait for lock
S 03/Oct/2012 11:00:25 poll: 192.168.1.32 [7710] - wait for lock
S 03/Oct/2012 11:01:20 poll: 192.168.1.32 [7722] - wait for lock
S 03/Oct/2012 11:01:20 poll: 192.168.1.32 [7728] - wait for lock
S 03/Oct/2012 11:01:25 poll: 10.255.141.201 [114] - wait for lock
S 03/Oct/2012 11:00:55 poll: 192.168.1.33 [7719] - wait for lock
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:00:35 poll: 192.168.1.33 [7731] - wait for lock
S 03/Oct/2012 11:02:58 wait
S 03/Oct/2012 11:02:51 wait
S 03/Oct/2012 11:00:45 poll: 192.168.1.32 [7692] - wait for lock
S 03/Oct/2012 11:03:12 wait
S 03/Oct/2012 11:03:11 wait
S 03/Oct/2012 11:03:10 wait
S 03/Oct/2012 11:00:40 poll: 192.168.1.33 [7725] - wait for lock
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:01:10 poll: 192.168.1.32 [7698] - wait for lock
S 03/Oct/2012 11:01:05 poll: 192.168.1.32 [7680] - wait for lock
S 03/Oct/2012 11:02:55 wait
S 03/Oct/2012 11:00:45 poll: 192.168.1.33 [7707] - wait for lock
S 03/Oct/2012 11:02:40 wait
S 03/Oct/2012 11:01:05 poll: 192.168.1.32 [7704] - wait for lock
S 03/Oct/2012 11:00:45 poll: 192.168.1.33 [7677] - wait for lock
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:02:41 wait
S 03/Oct/2012 11:00:25 poll: 192.168.1.32 [7716] - wait for lock
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:03:06 wait
S 03/Oct/2012 11:03:10 wait
S 03/Oct/2012 11:00:55 poll: 192.168.1.33 [7689] - wait for lock
S 03/Oct/2012 11:03:01 wait
S 03/Oct/2012 11:03:01 wait
S 03/Oct/2012 11:03:16 wait
S 03/Oct/2012 11:00:25 poll: 192.168.1.32 [7686] - wait for lock
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:03:08 wait
S 03/Oct/2012 11:02:45 wait
S 03/Oct/2012 11:03:01 poll: 192.168.1.146 [5696] - wait for lock
S 03/Oct/2012 11:02:48 wait
S 03/Oct/2012 11:03:05 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7704] - hook
C 03/Oct/2012 10:59:17 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7695] - hook
C 03/Oct/2012 10:59:51 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7683] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.33 [7719] - hook
C 03/Oct/2012 11:02:22 poll: 10.255.141.201 [114] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.32 [7722] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7686] - hook
C 03/Oct/2012 10:59:17 wait
C 03/Oct/2012 11:03:12 wait
C 03/Oct/2012 11:01:47 poll: 192.168.1.33 [7731] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7710] - hook
C 03/Oct/2012 10:59:30 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7698] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7707] - hook
C 03/Oct/2012 11:02:48 wait
C 03/Oct/2012 10:59:17 wait
C 03/Oct/2012 11:02:00 wait
C 03/Oct/2012 11:01:42 poll: 192.168.1.32 [7716] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7689] - hook
C 03/Oct/2012 11:01:42 poll: 192.168.1.33 [7713] - hook
C 03/Oct/2012 11:02:24 wait
C 03/Oct/2012 11:01:32 poll: 192.168.1.33 [7677] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.32 [7728] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.33 [7725] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7701] - hook
C 03/Oct/2012 11:01:36 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7680] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7692] - hook
R 03/Oct/2012 11:00:50 wait
R 03/Oct/2012 11:00:50 wait
R 03/Oct/2012 11:02:41 wait
...
T 03/Oct/2012 11:02:46 wait
T 03/Oct/2012 11:03:12 wait
T 03/Oct/2012 11:02:05 poll: 192.168.1.146 [5696]
T 03/Oct/2012 11:02:15 poll: 192.168.1.33 [7677]
T 03/Oct/2012 11:02:24 wait
T 03/Oct/2012 11:02:05 poll: M_Uz_Zarech_16 [5464]
T 03/Oct/2012 11:03:06 poll: 192.168.1.32 [7686]
T 03/Oct/2012 11:02:41 poll: 192.168.1.32 [7680]
T 03/Oct/2012 11:02:48 wait
T 03/Oct/2012 11:02:51 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
A 03/Oct/2012 10:27:21 checkучитывая что ноды 1.32 1.33 были удалены сутки назад.
-
@skynv said in Баги 1.2.3:
на вики присутствует
NumberOfBusinessServicePollers A number of threads responsible for business service (SLA) monitoring. 10 Yes
в конфиге создающимся по умолчанию отсутствует.
Спасибо, поправил.
-
@skynv said in Баги 1.2.3:
постоянно сыпляться
Sql query failed commands out of sync you can't run this command now
поиск выдал примерные причины
http://www.mysql.ru/docs/man/Commands_out_of_sync.html
http://habrahabr.ru/post/21326/А какие именно запросы?
-
@skynv said in Баги 1.2.3:
это нормальная работа?
netxmsd: sh po
PT TIME STATE
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:03:01 poll: M_Uz_Zarech_16 [5464] - wait for lock
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:02:59 wait
S 03/Oct/2012 11:01:10 poll: 192.168.1.33 [7713] - wait for lock
S 03/Oct/2012 11:00:35 poll: 192.168.1.33 [7683] - wait for lock
S 03/Oct/2012 11:03:16 wait
S 03/Oct/2012 11:02:50 wait
S 03/Oct/2012 11:00:40 poll: 192.168.1.33 [7701] - wait for lock
S 03/Oct/2012 11:00:15 poll: 192.168.1.33 [7695] - wait for lock
S 03/Oct/2012 11:00:25 poll: 192.168.1.32 [7710] - wait for lock
S 03/Oct/2012 11:01:20 poll: 192.168.1.32 [7722] - wait for lock
S 03/Oct/2012 11:01:20 poll: 192.168.1.32 [7728] - wait for lock
S 03/Oct/2012 11:01:25 poll: 10.255.141.201 [114] - wait for lock
S 03/Oct/2012 11:00:55 poll: 192.168.1.33 [7719] - wait for lock
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:00:35 poll: 192.168.1.33 [7731] - wait for lock
S 03/Oct/2012 11:02:58 wait
S 03/Oct/2012 11:02:51 wait
S 03/Oct/2012 11:00:45 poll: 192.168.1.32 [7692] - wait for lock
S 03/Oct/2012 11:03:12 wait
S 03/Oct/2012 11:03:11 wait
S 03/Oct/2012 11:03:10 wait
S 03/Oct/2012 11:00:40 poll: 192.168.1.33 [7725] - wait for lock
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:01:10 poll: 192.168.1.32 [7698] - wait for lock
S 03/Oct/2012 11:01:05 poll: 192.168.1.32 [7680] - wait for lock
S 03/Oct/2012 11:02:55 wait
S 03/Oct/2012 11:00:45 poll: 192.168.1.33 [7707] - wait for lock
S 03/Oct/2012 11:02:40 wait
S 03/Oct/2012 11:01:05 poll: 192.168.1.32 [7704] - wait for lock
S 03/Oct/2012 11:00:45 poll: 192.168.1.33 [7677] - wait for lock
S 03/Oct/2012 11:02:42 wait
S 03/Oct/2012 11:02:41 wait
S 03/Oct/2012 11:00:25 poll: 192.168.1.32 [7716] - wait for lock
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:03:06 wait
S 03/Oct/2012 11:03:10 wait
S 03/Oct/2012 11:00:55 poll: 192.168.1.33 [7689] - wait for lock
S 03/Oct/2012 11:03:01 wait
S 03/Oct/2012 11:03:01 wait
S 03/Oct/2012 11:03:16 wait
S 03/Oct/2012 11:00:25 poll: 192.168.1.32 [7686] - wait for lock
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:02:56 wait
S 03/Oct/2012 11:03:08 wait
S 03/Oct/2012 11:02:45 wait
S 03/Oct/2012 11:03:01 poll: 192.168.1.146 [5696] - wait for lock
S 03/Oct/2012 11:02:48 wait
S 03/Oct/2012 11:03:05 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7704] - hook
C 03/Oct/2012 10:59:17 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7695] - hook
C 03/Oct/2012 10:59:51 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7683] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.33 [7719] - hook
C 03/Oct/2012 11:02:22 poll: 10.255.141.201 [114] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.32 [7722] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7686] - hook
C 03/Oct/2012 10:59:17 wait
C 03/Oct/2012 11:03:12 wait
C 03/Oct/2012 11:01:47 poll: 192.168.1.33 [7731] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7710] - hook
C 03/Oct/2012 10:59:30 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7698] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7707] - hook
C 03/Oct/2012 11:02:48 wait
C 03/Oct/2012 10:59:17 wait
C 03/Oct/2012 11:02:00 wait
C 03/Oct/2012 11:01:42 poll: 192.168.1.32 [7716] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7689] - hook
C 03/Oct/2012 11:01:42 poll: 192.168.1.33 [7713] - hook
C 03/Oct/2012 11:02:24 wait
C 03/Oct/2012 11:01:32 poll: 192.168.1.33 [7677] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.32 [7728] - hook
C 03/Oct/2012 11:01:47 poll: 192.168.1.33 [7725] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.33 [7701] - hook
C 03/Oct/2012 11:01:36 wait
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7680] - hook
C 03/Oct/2012 11:01:37 poll: 192.168.1.32 [7692] - hook
R 03/Oct/2012 11:00:50 wait
R 03/Oct/2012 11:00:50 wait
R 03/Oct/2012 11:02:41 wait
...
T 03/Oct/2012 11:02:46 wait
T 03/Oct/2012 11:03:12 wait
T 03/Oct/2012 11:02:05 poll: 192.168.1.146 [5696]
T 03/Oct/2012 11:02:15 poll: 192.168.1.33 [7677]
T 03/Oct/2012 11:02:24 wait
T 03/Oct/2012 11:02:05 poll: M_Uz_Zarech_16 [5464]
T 03/Oct/2012 11:03:06 poll: 192.168.1.32 [7686]
T 03/Oct/2012 11:02:41 poll: 192.168.1.32 [7680]
T 03/Oct/2012 11:02:48 wait
T 03/Oct/2012 11:02:51 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
B 03/Oct/2012 09:59:18 wait
A 03/Oct/2012 10:27:21 checkучитывая что ноды 1.32 1.33 были удалены сутки назад.
Нет, поведение ненормальное. Похоже, что зависли hook-скрипты по каким-то причинам. Сейчас думаю без рестарта сервера уже ситуация не поправится.
-
@victor said in Баги 1.2.3:
@skynv said in Баги 1.2.3:
постоянно сыпляться
Sql query failed commands out of sync you can't run this command now
поиск выдал примерные причины
http://www.mysql.ru/docs/man/Commands_out_of_sync.html
http://habrahabr.ru/post/21326/А какие именно запросы?
На выходных сэмулирую и отпишусь.
по поводу бесконечных полов, это те ноды что не имеют Ip адреса на интерфейсе, которые постоянно в корень еще добавляются в обход дерева. У вас они в багах записаны.
Нашел еще парочку багов, как систематизирую, опишу.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login