nzbgetcom/nzbget

1 failure is detected in the test module "SystemTests"

Closed this issue · 6 comments

Is there already an issue for your problem?

  • I have checked older issues, open and closed

NZBGet Version

v24.2-stable

Platform

Linux/Docker

Environment

OS: Gentoo ~amd64

Current Behavior

The test suite fails:

7/7 Testing: SystemTests
7/7 Test: SystemTests
Command: "/var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-24.2_build/tests/system/SystemTests" "--log_level=message"
Directory: /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-24.2_build/tests/system
"SystemTests" start time: Aug 06 01:12 CEST
Output:
----------------------------------------------------------
*** buffer overflow detected ***: terminated
Running 1 test case...
unknown location(0): fatal error: in "SystemInfoTest": signal: SIGABRT (application abort requested)
/var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-24.2/tests/system/SystemInfoTest.cpp(131): last checkpoint

*** 1 failure is detected in the test module "SystemTests"

<end of output>
Test time =   0.03 sec
----------------------------------------------------------
Test Failed.
"SystemTests" end time: Aug 06 01:12 CEST
"SystemTests" time elapsed: 00:00:00
----------------------------------------------------------

End testing: Aug 06 01:12 CEST

Expected Behavior

Tests should pass.

Steps To Reproduce

No response

Logs

No response

Extra information

The following build options were used:

cmake -C /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-24.2_build/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DDISABLE_CURSES=no -DDISABLE_PARCHECK=no -DDISABLE_TLS=no -DDISABLE_GZIP=no -DUSE_OPENSSL=yes -DUSE_GNUTLS=no -DENABLE_TESTS=yes -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-24.2_build/gentoo_toolchain.cmake /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-24.2

Only the test itself doesn't work? Is there an issue with "STATUS" tab? Does it work and show the correct data?

If don't mind, could you test this branch?
You could run the tests with -V to see the extra logs, e.g.:
ctest -C Debug --rerun-failed -V

Since the test had failed, I hadn't attempted to continue the installation process and start nzbget.

I just did and, from what I see, the jsonrpc/status call returns valid data. However, the jsonrpc/configtemplates one is broken (ERROR Could not read configuration templates in my logs and nothing else happens). Is there any chance for them to be related or is it a completely different problem?

As for verbose tests on the test branch:

6/7 Test #6: ServerPoolTest ...................   Passed    0.01 sec
test 7
    Start 7: SystemTests

7: Test command: /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-fix-SystemInfoTest_build/tests/system/SystemTests "--log_level=message"
7: Working Directory: /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-fix-SystemInfoTest_build/tests/system
7: Test timeout computed to be: 1500
7: *** buffer overflow detected ***: terminated
7: Running 1 test case...
7: unknown location(0): fatal error: in "SystemInfoTest": signal: SIGABRT (application abort requested)
7: /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-fix-SystemInfoTest/tests/system/SystemInfoTest.cpp(144): last checkpoint: "SystemInfoTest" test entry
7: 
7: *** 1 failure is detected in the test module "SystemTests"
7: 
7/7 Test #7: SystemTests ......................***Failed    0.03 sec

86% tests passed, 1 tests failed out of 7

Total Test time (real) =   0.08 sec

The following tests FAILED:
          7 - SystemTests (Failed)
Errors while running CTest
Output from these tests are in: /var/tmp/portage/net-nntp/nzbget-24.2/work/nzbget-fix-SystemInfoTest_build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.

I'm running boost 1.85.0, could it have anything to do with the issue? I don't see too many distros shipping it. Even Arch is on 1.83.0.
EDIT: same problem with boost 1.84.0, I couldn't test with anything older though.

Big thanks. I need to install Gentoo and test the app I think. I've always wanted to play around with this distro, but haven't gotten around to :)
Regarding configtemplates - the ConfigTemplate option in nzbget.conf is incorrect, I suppose.
The CMake config fixes this, but you need to fully install the application, not just build it.
The default path is /usr/local/share/nzbget/nzbget.conf

Could you pull the latest changes from my test branch and see if the bug is fixed?
I'd appreciate it.

The branch passes the test, thanks!

7/7 Test #7: SystemTests ......................   Passed    0.16 sec

Any idea why you weren't seeing the overflow?

Regarding configtemplates - the ConfigTemplate option in nzbget.conf is incorrect, I suppose.

Looks like I don't have the example conf installed at all, very likely because of https://github.com/gentoo/gentoo/blob/a79f1bcd721d5426301baedf10a0e6c651b5626d/net-nntp/nzbget/nzbget-24.1.ebuild#L52-L53
I'll look into it :)

The branch passes the test, thanks!

Thank you.

Any idea why you weren't seeing the overflow?

I've seen the buffer overflow, but only on Gentoo (on macOS, BSD systems and other Linux distributions everything worked fine) and only in the Release build. The problem was in the buggy realpath function, I believe.