Unable to run metadata SDK plugins on Windows
CompletedI have an issue where I am unable to get plugins that I have built for Windows to load in the Nx Meta VMS. I am running the latest version 5.1.4.38659 of the VMS and have downloaded the latest metadata SDK release from https://meta.nxvms.com/download/releases/sdk.
Once downloaded I run the "build_samples.bat" file on Windows and it successfully builds the .dll files for both the sample_analytics and stub_analytics plugins. I copy these two .dll files to the "plugins" folder for the Network Optix VMS and then restart the server. Once the server attempts to load these plugins, the server will immediately restart and try again in an endless loop. In the logs I see this. It attempts to load the "sample_analytics_plugin.dll" but then fails and the server automatically restarts, with no additional error. I have also deleted the "sample_analytics_plugin.dll" and the same thing happens again with the "stub_analytics_plugin.dll"
2024-06-17 11:00:23.390 42e8 INFO PluginManager(0x1b3b1f5e4e0): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/mjpeg_link_plugin.dll]
2024-06-17 11:00:23.392 42e8 INFO PluginManager(0x1b3b1f5e4e0): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/mjpeg_link_plugin.dll] (old SDK, main interface nxpl_Plugin2, sdk version "")
2024-06-17 11:00:23.392 42e8 INFO PluginManager(0x1b3b1f5e4e0): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/sample_analytics_plugin.dll]
2024-06-17 11:00:23.737 4ff0 INFO nx::utils::log::Logger(0x1b27ea164f0): Log file size: 10M, log volume size: 250M, time period: 0h, file: C:/windows/system32/config/systemprofile/AppData/Local/Network Optix/Network Optix MetaVMS Media Server/log/main.log
2024-06-17 11:00:23.737 4ff0 INFO START: ================================================================================
2024-06-17 11:00:23.737 4ff0 INFO START: Network Optix MetaVMS Media Server started, version: 5.1.4.38659, revision: ba0e4c255b60
2024-06-17 11:00:23.737 4ff0 INFO START: Binary path: C:\Program Files\Network Optix\Nx Meta\MediaServer\mediaserver.exe
2024-06-17 11:00:23.737 4ff0 INFO START: Log level: info
2024-06-17 11:00:23.737 4ff0 INFO START: Log file size: 10M, log volume size: 250M, time period: 0h, file: C:/windows/system32/config/systemprofile/AppData/Local/Network Optix/Network Optix MetaVMS Media Server/log/main.log
2024-06-17 11:00:23.737 4ff0 INFO START: Mutex implementation: qt
I have been able to run the storage SDK samples and have been able to load those into the VMS, so our toolchain is working and it seems to be specific to the metadata SDK samples. I have also successfully built and ran these plugins on Ubuntu, so this appears to be specific to Windows. I have also tried this with older 5.0 release on Network Optix and were unable to get that version to work as well. For our toolchain, we have the latest version of Visual Studio 17 2022 and our OS is Windows 10 19045.4412.
-
Thanks for your question, but I have confirmed the plugins are working fine on our demo system and testbed.
I am not sure what have been happening, but it would be appreciated if you can provide the DEBUG log for more detail, you can find the instructions here to enable the debug log.Also, I attached the plugins we are currently in use, you may check if these plugins would work for you to identify if the issue is on build or mediaserver.
https://drive.google.com/file/d/1vvyvMsPPCGeOzT5tpak7fO-cBBkokZbt/view?usp=sharing
For stub plugin, please put the folder to plugins.
For sample plugin, please put the dll to plugins.Restart and then check if the plugin can be loaded.
Thanks
-
Thank you. Here is the debug log.
2024-06-25 10:08:58.527 6388 INFO START: ================================================================================
2024-06-25 10:08:58.527 6388 INFO START: Network Optix MetaVMS Media Server started, version: 5.1.4.38659, revision: ba0e4c255b60
2024-06-25 10:08:58.527 6388 INFO START: Binary path: C:\Program Files\Network Optix\Nx Meta\MediaServer\mediaserver.exe
2024-06-25 10:08:58.527 6388 INFO START: Log level: debug
2024-06-25 10:08:58.527 6388 INFO START: Log file size: 10M, log volume size: 250M, time period: 0h, file: C:/windows/system32/config/systemprofile/AppData/Local/Network Optix/Network Optix MetaVMS Media Server/log/main.log
2024-06-25 10:08:58.527 6388 INFO START: Mutex implementation: qt
2024-06-25 10:08:58.535 6388 INFO MediaServerProcess(0x23af433b310): IniConfig iniFilesDir: C:\windows\system32\config\systemprofile\AppData\Local\nx_ini\
2024-06-25 10:08:58.536 6388 INFO nx::vms::server::RootFileSystem: Root tool enabled: false
2024-06-25 10:08:58.909 6388 INFO MediaServerProcess: Got HWID {b64c8e73-dacc-8958-4b86-1ef2a666c38a}
2024-06-25 10:08:58.910 54b4 DEBUG nx::utils::TimerManager(0x23af6da3c50): started
2024-06-25 10:08:58.910 4378 DEBUG nx::utils::TimerManager(0x23af6da3e80): started
2024-06-25 10:08:58.910 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1274 'nx::common::metadata::Attributes': QnDefaultContextSerializer<std::vector<nx::common::metadata::Attribute,std::allocator<nx::common::metadata::Attribute> >,QnJsonSerializer>(0x23af6da7f40, 1274)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1275 'nx::vms::api::EventLevel': QnDefaultContextSerializer<enum nx::vms::api::EventLevel,QnJsonSerializer>(0x23af6da7e00, 1275)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1276 'nx::vms::api::EventLevels': QnDefaultContextSerializer<QFlags<enum nx::vms::api::EventLevel>,QnJsonSerializer>(0x23af6da79e0, 1276)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1070 'nx::vms::api::EventReason': QnDefaultContextSerializer<enum nx::vms::api::EventReason,QnJsonSerializer>(0x23af6da7ea0, 1070)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1280 'nx::vms::api::rules::State': QnDefaultContextSerializer<enum nx::vms::api::rules::State,QnJsonSerializer>(0x23af6da7e80, 1280)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1281 'nx::vms::event::Level': QnDefaultContextSerializer<enum nx::vms::event::Level,QnJsonSerializer>(0x23af6da7f80, 1281)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1282 'nx::vms::rules::CameraConflictList': QnDefaultContextSerializer<nx::vms::rules::CameraConflictList,QnJsonSerializer>(0x23af6da7a40, 1282)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1283 'nx::vms::rules::ClientAction': QnDefaultContextSerializer<enum nx::vms::rules::ClientAction,QnJsonSerializer>(0x23af6da7f00, 1283)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1286 'nx::vms::rules::Icon': QnDefaultContextSerializer<enum nx::vms::rules::Icon,QnJsonSerializer>(0x23af6da7b60, 1286)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1287 'nx::vms::rules::NetworkIssueInfo': QnDefaultContextSerializer<nx::vms::rules::NetworkIssueInfo,QnJsonSerializer>(0x23af6da7d80, 1287)
2024-06-25 10:08:58.911 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1288 'QList<QnUuid>': QnDefaultContextSerializer<QList<QnUuid>,QnJsonSerializer>(0x23af6da7b20, 1288)
2024-06-25 10:08:58.912 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1033 'QSet<QnUuid>': QnDefaultContextSerializer<QSet<QnUuid>,QnJsonSerializer>(0x23af6da7b80, 1033)
2024-06-25 10:08:58.912 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1040 'std::chrono::microseconds': QnDefaultContextSerializer<std::chrono::duration<__int64,std::ratio<1,1000000> >,QnJsonSerializer>(0x23af6da7c20, 1040)
2024-06-25 10:08:58.912 6388 DEBUG QnResourcePool(0x23af6d9f960): Created
2024-06-25 10:08:58.914 3a2c DEBUG nx::vms::discovery::UdpMulticastFinder(0x23af6d86b90): Listening handler
2024-06-25 10:08:59.369 6388 WARNING nx::monitoring::PdhMonitor(0x23af6cfc740): Error in PdhExpandWildCardPathW.
2024-06-25 10:08:59.583 6388 INFO nx::monitoring::PdhMonitor(0x23af6cfc740): No gpu performance counters for query.
2024-06-25 10:08:59.593 6388 WARNING nx::monitoring::PdhMonitor(0x23af6cfc740): Error in PdhExpandWildCardPathW.
2024-06-25 10:08:59.594 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1305 'nx::vms::server::plugins::resource_data_support::HanwhaBypassSupportType': QnDefaultContextSerializer<enum nx::vms::server::plugins::resource_data_support::HanwhaBypassSupportType,QnJsonSerializer>(0x23af758ddd0, 1305)
2024-06-25 10:08:59.594 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1306 'QnOnvifConfigDataPtr': QnDefaultContextSerializer<QSharedPointer<QnOnvifConfigData>,QnJsonSerializer>(0x23af758dad0, 1306)
2024-06-25 10:08:59.594 6388 DEBUG QnSerializerStorage<QnJsonSerializer>(0x7ff88744d8b0): Register 1294 'nx::onvif::SoapFlags': QnDefaultContextSerializer<QFlags<enum nx::onvif::SoapFlag::Value>,QnJsonSerializer>(0x23af758e170, 1294)
2024-06-25 10:08:59.595 6388 DEBUG nx::vms::server::nvr::hanwha::ServiceProvider(0x23af758e150): Creating the service provider
2024-06-25 10:08:59.595 6388 DEBUG nx::vms::server::nvr::hanwha::ServiceProvider(0x23af758e150): Unable to obtain device info
2024-06-25 10:08:59.595 54b4 WARNING nx::monitoring::PdhMonitor(0x23af6cfc740): Error in PdhGetFormattedCounterValue: 3221228486 (The data is not valid.).
2024-06-25 10:08:59.596 6388 DEBUG QnSoapServer(0x23af7595070): Successfully bound soap server to local port 61245
2024-06-25 10:08:59.597 6388 DEBUG nx::vms::server::ptz::ServerPtzControllerPool(0x23af7300b30): Creating server PTZ controller pool
2024-06-25 10:08:59.598 1b44 DEBUG StreamingChunkTranscoderThread(0x23af75969e0): started
2024-06-25 10:08:59.599 4304 DEBUG nx::utils::TimerManager(0x23af74f3430): started
2024-06-25 10:08:59.599 41d8 DEBUG nx::utils::TimerManager(0x23af74f3568): started
2024-06-25 10:08:59.599 2960 INFO QnVMax480Server(0x23af6d490c0): Server started at 127.0.0.1:61246
2024-06-25 10:08:59.600 1658 DEBUG nx::utils::TimerManager(0x23af7518ce0): started
2024-06-25 10:08:59.600 2960 DEBUG QnVMax480Server(0x23af6d490c0): Entered run(). 127.0.0.1:61246, system thread id 10592
2024-06-25 10:08:59.600 53ec DEBUG nx::utils::TimerManager(0x23af7518e18): started
2024-06-25 10:08:59.603 6388 INFO nx::vms::common::AbstractCertificateVerifier(0x23af72649a0): Ignore trusted certificate Amazon_Root_CA_1.pem which does not match the filter isrgrootx1
2024-06-25 10:08:59.603 6388 INFO nx::vms::common::AbstractCertificateVerifier(0x23af72649a0): Ignore trusted certificate Amazon_Root_CA_2.pem which does not match the filter isrgrootx1
2024-06-25 10:08:59.603 6388 INFO nx::vms::common::AbstractCertificateVerifier(0x23af72649a0): Ignore trusted certificate Amazon_Root_CA_3.pem which does not match the filter isrgrootx1
2024-06-25 10:08:59.603 6388 INFO nx::vms::common::AbstractCertificateVerifier(0x23af72649a0): Ignore trusted certificate Amazon_Root_CA_4.pem which does not match the filter isrgrootx1
2024-06-25 10:08:59.604 6388 INFO nx::vms::common::AbstractCertificateVerifier(0x23af72649a0): Adding trusted certificate isrgrootx1.pem into the CA list
2024-06-25 10:08:59.640 6388 INFO nx::vms::common::AbstractCertificateVerifier(0x23af72649a0): Ignore trusted certificate SFSRootCAG2.pem which does not match the filter isrgrootx1
2024-06-25 10:08:59.657 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: ca_ES { :/translations/ca_ES/common.qm, :/translations/ca_ES/nx_vms_license.qm, :/translations/ca_ES/nx_vms_rules.qm, :/translations/ca_ES/nx_vms_server.qm, :/translations/ca_ES/nx_vms_server_db.qm, :/translations/ca_ES/qtbase.qm, :/translations/ca_ES/traytool.qm }
2024-06-25 10:08:59.657 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: cs_CZ { :/translations/cs_CZ/common.qm, :/translations/cs_CZ/nx_vms_license.qm, :/translations/cs_CZ/nx_vms_rules.qm, :/translations/cs_CZ/nx_vms_server.qm, :/translations/cs_CZ/nx_vms_server_db.qm, :/translations/cs_CZ/qtbase.qm, :/translations/cs_CZ/traytool.qm }
2024-06-25 10:08:59.657 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: de_DE { :/translations/de_DE/common.qm, :/translations/de_DE/nx_vms_license.qm, :/translations/de_DE/nx_vms_rules.qm, :/translations/de_DE/nx_vms_server.qm, :/translations/de_DE/nx_vms_server_db.qm, :/translations/de_DE/qtbase.qm, :/translations/de_DE/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: en_GB { :/translations/en_GB/common.qm, :/translations/en_GB/nx_vms_license.qm, :/translations/en_GB/nx_vms_rules.qm, :/translations/en_GB/nx_vms_server.qm, :/translations/en_GB/nx_vms_server_db.qm, :/translations/en_GB/qtbase.qm, :/translations/en_GB/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: en_US { :/translations/en_US/common.qm, :/translations/en_US/nx_vms_license.qm, :/translations/en_US/nx_vms_rules.qm, :/translations/en_US/nx_vms_server.qm, :/translations/en_US/nx_vms_server_db.qm, :/translations/en_US/qtbase.qm, :/translations/en_US/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: es_ES { :/translations/es_ES/common.qm, :/translations/es_ES/nx_vms_license.qm, :/translations/es_ES/nx_vms_rules.qm, :/translations/es_ES/nx_vms_server.qm, :/translations/es_ES/nx_vms_server_db.qm, :/translations/es_ES/qtbase.qm, :/translations/es_ES/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: fi_FI { :/translations/fi_FI/common.qm, :/translations/fi_FI/nx_vms_license.qm, :/translations/fi_FI/nx_vms_rules.qm, :/translations/fi_FI/nx_vms_server.qm, :/translations/fi_FI/nx_vms_server_db.qm, :/translations/fi_FI/qtbase.qm, :/translations/fi_FI/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: fr_FR { :/translations/fr_FR/common.qm, :/translations/fr_FR/nx_vms_license.qm, :/translations/fr_FR/nx_vms_rules.qm, :/translations/fr_FR/nx_vms_server.qm, :/translations/fr_FR/nx_vms_server_db.qm, :/translations/fr_FR/qtbase.qm, :/translations/fr_FR/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: he_IL { :/translations/he_IL/common.qm, :/translations/he_IL/nx_vms_license.qm, :/translations/he_IL/nx_vms_rules.qm, :/translations/he_IL/nx_vms_server.qm, :/translations/he_IL/nx_vms_server_db.qm, :/translations/he_IL/qtbase.qm, :/translations/he_IL/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: hu_HU { :/translations/hu_HU/common.qm, :/translations/hu_HU/nx_vms_license.qm, :/translations/hu_HU/nx_vms_rules.qm, :/translations/hu_HU/nx_vms_server.qm, :/translations/hu_HU/nx_vms_server_db.qm, :/translations/hu_HU/qtbase.qm, :/translations/hu_HU/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: it_IT { :/translations/it_IT/common.qm, :/translations/it_IT/nx_vms_license.qm, :/translations/it_IT/nx_vms_rules.qm, :/translations/it_IT/nx_vms_server.qm, :/translations/it_IT/nx_vms_server_db.qm, :/translations/it_IT/qtbase.qm, :/translations/it_IT/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: ja_JP { :/translations/ja_JP/common.qm, :/translations/ja_JP/nx_vms_license.qm, :/translations/ja_JP/nx_vms_rules.qm, :/translations/ja_JP/nx_vms_server.qm, :/translations/ja_JP/nx_vms_server_db.qm, :/translations/ja_JP/qtbase.qm, :/translations/ja_JP/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: ko_KR { :/translations/ko_KR/common.qm, :/translations/ko_KR/nx_vms_license.qm, :/translations/ko_KR/nx_vms_rules.qm, :/translations/ko_KR/nx_vms_server.qm, :/translations/ko_KR/nx_vms_server_db.qm, :/translations/ko_KR/qtbase.qm, :/translations/ko_KR/traytool.qm }
2024-06-25 10:08:59.658 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: nl_BE { :/translations/nl_BE/common.qm, :/translations/nl_BE/nx_vms_license.qm, :/translations/nl_BE/nx_vms_rules.qm, :/translations/nl_BE/nx_vms_server.qm, :/translations/nl_BE/nx_vms_server_db.qm, :/translations/nl_BE/qtbase.qm, :/translations/nl_BE/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: nl_NL { :/translations/nl_NL/common.qm, :/translations/nl_NL/nx_vms_license.qm, :/translations/nl_NL/nx_vms_rules.qm, :/translations/nl_NL/nx_vms_server.qm, :/translations/nl_NL/nx_vms_server_db.qm, :/translations/nl_NL/qtbase.qm, :/translations/nl_NL/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: no_NO { :/translations/no_NO/common.qm, :/translations/no_NO/nx_vms_license.qm, :/translations/no_NO/nx_vms_rules.qm, :/translations/no_NO/nx_vms_server.qm, :/translations/no_NO/nx_vms_server_db.qm, :/translations/no_NO/qtbase.qm, :/translations/no_NO/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: pl_PL { :/translations/pl_PL/common.qm, :/translations/pl_PL/nx_vms_license.qm, :/translations/pl_PL/nx_vms_rules.qm, :/translations/pl_PL/nx_vms_server.qm, :/translations/pl_PL/nx_vms_server_db.qm, :/translations/pl_PL/qtbase.qm, :/translations/pl_PL/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: pt_BR { :/translations/pt_BR/common.qm, :/translations/pt_BR/nx_vms_license.qm, :/translations/pt_BR/nx_vms_rules.qm, :/translations/pt_BR/nx_vms_server.qm, :/translations/pt_BR/nx_vms_server_db.qm, :/translations/pt_BR/qtbase.qm, :/translations/pt_BR/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: pt_PT { :/translations/pt_PT/common.qm, :/translations/pt_PT/nx_vms_license.qm, :/translations/pt_PT/nx_vms_rules.qm, :/translations/pt_PT/nx_vms_server.qm, :/translations/pt_PT/nx_vms_server_db.qm, :/translations/pt_PT/qtbase.qm, :/translations/pt_PT/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: ru_RU { :/translations/ru_RU/common.qm, :/translations/ru_RU/nx_vms_license.qm, :/translations/ru_RU/nx_vms_rules.qm, :/translations/ru_RU/nx_vms_server.qm, :/translations/ru_RU/nx_vms_server_db.qm, :/translations/ru_RU/qtbase.qm, :/translations/ru_RU/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: sv_SE { :/translations/sv_SE/common.qm, :/translations/sv_SE/nx_vms_license.qm, :/translations/sv_SE/nx_vms_rules.qm, :/translations/sv_SE/nx_vms_server.qm, :/translations/sv_SE/nx_vms_server_db.qm, :/translations/sv_SE/qtbase.qm, :/translations/sv_SE/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: th_TH { :/translations/th_TH/common.qm, :/translations/th_TH/nx_vms_license.qm, :/translations/th_TH/nx_vms_rules.qm, :/translations/th_TH/nx_vms_server.qm, :/translations/th_TH/nx_vms_server_db.qm, :/translations/th_TH/qtbase.qm, :/translations/th_TH/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: tr_TR { :/translations/tr_TR/common.qm, :/translations/tr_TR/nx_vms_license.qm, :/translations/tr_TR/nx_vms_rules.qm, :/translations/tr_TR/nx_vms_server.qm, :/translations/tr_TR/nx_vms_server_db.qm, :/translations/tr_TR/qtbase.qm, :/translations/tr_TR/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: uk_UA { :/translations/uk_UA/common.qm, :/translations/uk_UA/nx_vms_license.qm, :/translations/uk_UA/nx_vms_rules.qm, :/translations/uk_UA/nx_vms_server.qm, :/translations/uk_UA/nx_vms_server_db.qm, :/translations/uk_UA/qtbase.qm, :/translations/uk_UA/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: vi_VN { :/translations/vi_VN/common.qm, :/translations/vi_VN/nx_vms_license.qm, :/translations/vi_VN/nx_vms_rules.qm, :/translations/vi_VN/nx_vms_server.qm, :/translations/vi_VN/nx_vms_server_db.qm, :/translations/vi_VN/qtbase.qm, :/translations/vi_VN/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: zh_CN { :/translations/zh_CN/common.qm, :/translations/zh_CN/nx_vms_license.qm, :/translations/zh_CN/nx_vms_rules.qm, :/translations/zh_CN/nx_vms_server.qm, :/translations/zh_CN/nx_vms_server_db.qm, :/translations/zh_CN/qtbase.qm, :/translations/zh_CN/traytool.qm }
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded translation: zh_TW { :/translations/zh_TW/common.qm, :/translations/zh_TW/nx_vms_license.qm, :/translations/zh_TW/nx_vms_rules.qm, :/translations/zh_TW/nx_vms_server.qm, :/translations/zh_TW/nx_vms_server_db.qm, :/translations/zh_TW/qtbase.qm, :/translations/zh_TW/traytool.qm }
2024-06-25 10:08:59.659 6388 INFO nx::vms::utils::TranslationManager::Private(0x23af725ca00): Loaded 27 translations from :/translations
2024-06-25 10:08:59.659 6388 DEBUG nx::vms::server::nvr::hanwha::ServiceProvider(0x23af758e150): Destroying the service provider
2024-06-25 10:08:59.662 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/axis_analytics_plugin.dll]
2024-06-25 10:08:59.663 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin axis_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.663 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin axis_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.663 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin axis_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.666 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/axis_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.666 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin axis_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.666 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/bosch_analytics_plugin.dll]
2024-06-25 10:08:59.666 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin bosch_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.666 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin bosch_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.666 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin bosch_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.669 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/bosch_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.669 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin bosch_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.669 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dahua_analytics_plugin.dll]
2024-06-25 10:08:59.669 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dahua_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.669 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dahua_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.669 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dahua_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.675 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dahua_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.675 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin dahua_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.675 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_edge_analytics_plugin.dll]
2024-06-25 10:08:59.675 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_edge_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.675 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_edge_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.675 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_edge_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.683 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_edge_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "4.2.0 R4")
2024-06-25 10:08:59.683 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin dw_edge_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.683 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mtt_analytics_plugin.dll]
2024-06-25 10:08:59.683 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_mtt_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.683 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_mtt_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.683 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_mtt_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.687 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mtt_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.687 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin dw_mtt_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.687 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mx9_analytics_plugin.dll]
2024-06-25 10:08:59.688 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_mx9_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.688 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_mx9_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.688 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin dw_mx9_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.693 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mx9_analytics_plugin.dll], instance "nx.dw_mx9" with index 0 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.693 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mx9_analytics_plugin.dll], instance "nx.provision_isr" with index 1 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.693 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mx9_analytics_plugin.dll], instance "nx.evision" with index 2 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.693 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/dw_mx9_analytics_plugin.dll], instance "nx.nyx" with index 3 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.693 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin dw_mx9_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.693 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/ftp_storage_plugin.dll]
2024-06-25 10:08:59.693 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin ftp_storage_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.693 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin ftp_storage_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.693 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin ftp_storage_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.698 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/ftp_storage_plugin.dll] (old SDK, main interface nxpl_PluginInterface, sdk version "")
2024-06-25 10:08:59.698 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin ftp_storage_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.698 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/generic_multicast_plugin.dll]
2024-06-25 10:08:59.698 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin generic_multicast_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.698 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin generic_multicast_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.698 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin generic_multicast_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.703 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/generic_multicast_plugin.dll] (old SDK, main interface nxpl_Plugin, sdk version "")
2024-06-25 10:08:59.703 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin generic_multicast_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.703 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/generic_rtsp_plugin.dll]
2024-06-25 10:08:59.703 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin generic_rtsp_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.703 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin generic_rtsp_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.703 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin generic_rtsp_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.707 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/generic_rtsp_plugin.dll] (old SDK, main interface nxpl_Plugin, sdk version "")
2024-06-25 10:08:59.707 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin generic_rtsp_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.708 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/hanwha_analytics_plugin.dll]
2024-06-25 10:08:59.708 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin hanwha_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.708 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin hanwha_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.708 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin hanwha_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.714 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/hanwha_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.714 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin hanwha_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.714 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/hikvision_analytics_plugin.dll]
2024-06-25 10:08:59.714 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin hikvision_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.714 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin hikvision_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.714 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin hikvision_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.719 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/hikvision_analytics_plugin.dll] (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.719 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin hikvision_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.719 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/milesight_analytics_plugin.dll]
2024-06-25 10:08:59.719 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin milesight_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.719 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin milesight_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.719 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin milesight_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.725 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/milesight_analytics_plugin.dll], instance "nx.brickcom" with index 0 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.725 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/milesight_analytics_plugin.dll], instance "nx.milesight" with index 1 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.725 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/milesight_analytics_plugin.dll], instance "nx.only" with index 2 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.725 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/milesight_analytics_plugin.dll], instance "nx.rhodium" with index 3 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.725 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/milesight_analytics_plugin.dll], instance "nx.vista" with index 4 (main interface nx_sdk_analytics_IPlugin, sdk version "5.1.4 R1")
2024-06-25 10:08:59.725 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin milesight_analytics_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.725 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/mjpeg_link_plugin.dll]
2024-06-25 10:08:59.725 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin mjpeg_link_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.725 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin mjpeg_link_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.725 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin mjpeg_link_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:08:59.730 6388 INFO PluginManager(0x23af7239930): Loaded Server Plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/mjpeg_link_plugin.dll] (old SDK, main interface nxpl_Plugin2, sdk version "")
2024-06-25 10:08:59.730 6388 DEBUG PluginManager(0x23af7239930): (after loading plugin mjpeg_link_plugin) SetDllDirectoryW(null) succeeded
2024-06-25 10:08:59.730 6388 INFO PluginManager(0x23af7239930): Considering to load Server plugin [C:/Program Files/Network Optix/Nx Meta/MediaServer/plugins/sample_analytics_plugin.dll]
2024-06-25 10:08:59.730 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin sample_analytics_plugin) GetDllDirectoryW(0, nullptr) -> 1
2024-06-25 10:08:59.730 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin sample_analytics_plugin) GetDllDirectoryW(1, result) -> 0 ""
2024-06-25 10:08:59.730 6388 DEBUG PluginManager(0x23af7239930): (before loading plugin sample_analytics_plugin) SetDllDirectoryW("") succeeded
2024-06-25 10:09:00.219 4100 INFO nx::utils::log::Logger(0x1da520c15f0): Log file size: 10M, log volume size: 250M, time period: 0h, file: C:/windows/system32/config/systemprofile/AppData/Local/Network Optix/Network Optix MetaVMS Media Server/log/main.log
2024-06-25 10:09:00.219 4100 INFO START: ================================================================================I tried both the plugins that you provided and those are able to run correctly without crashing the VMS. It appears the issues are on the build side as it seems to be only the ones that I have built locally that cause the VMS to crash and restart.
I have been able to get it to successfully build if I use the "--debug" option. It does not work building the release version.
-
Thanks for the follow-up. Sorry we thought the issue was resolved, but it seems not.
The ticket is re-opened and transferred into a ticket internally.
Thanks. -
This issue was resolved in the ticket, but I want to add the solution here in case any else has the same problem. Here is the provided solution.
"The issue now confirms that it is a Visual Studio build tools issue(i.e bug) on MS visual studio C++ complier and has been reported to MS, however MS won't take any action on this issue. You may see the post and discussion from MS official forum with MS commented in official.
https://developercommunity.visualstudio.com/t/Access-violation-with-std::mutex::lock-a/10664660
The crash takes place when the plugin is compiled with 14.40, and the Server is compiled with 14.38. If both are compiled with 14.38, it works fine. It seems Microsoft has made a breaking change in the C++ library andmsvcp140.dll
(C++ redistributable runtime). There is a macro which can provide a temporary workaround:_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR
The solution we suggested is that please kindly use the Visual Studio build tools 14.38 within in your visual studio before MS decided to solve this issue."
Please sign in to leave a comment.
Comments
5 comments