Preston-Landers / concurrent-log-handler

fork of ConcurrentLogHandler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tests fail with Python 3.8

mcepl opened this issue · comments

When building the package for this project on openSUSE/Tumbleweed, everything works perfectly with Python 3.6, but the test fails with Python 3.8:

[    3s] + export PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.6/site-packages
[    3s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.6/site-packages
[    3s] + rm -rf test
[    3s] + python3.6 stresstest.py
[  226s] Waiting while children are out running and playing!
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22299, 22300, 22301]
[  226s] Waiting on [22300, 22301]
[  226s] Waiting on [22300, 22301]
[  226s] Waiting on [22301]
[  226s] All children have stopped.
[  226s] Writing out combined client logs...
[  226s] done.
[  226s] Writing out combined shared logs...
[  226s] done.
[  226s] Running internal diff:  (If the next line is 'end of diff', then the stress test passed!)
[  226s]    --- end of diff ----
[  227s] ++ '[' -f _current_flavor ']'
[  227s] ++ cat _current_flavor
[  227s] + last_flavor=python36
[  227s] + '[' -z python36 ']'
[  227s] + '[' python36 '!=' python38 ']'
[  227s] + '[' -d build ']'
[  227s] + mv build _build.python36
[  227s] + '[' -d _build.python38 ']'
[  227s] + mv _build.python38 build
[  227s] + echo python38
[  227s] + python_flavor=python38
[  227s] + export PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.8/site-packages
[  227s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.8/site-packages
[  227s] + rm -rf test
[  227s] + python3.8 stresstest.py
[  237s] One or more of the child process has failed.
[  237s] Aborting test.
[  237s] Waiting while children are out running and playing!
[  237s] All children have stopped.
[  237s] None
[  237s] None
[  237s] cp exit code: <__main__.TestManager.ChildProc object at 0x7f22c0c7fb40>: 1

Complete build log with all building steps and versions of all packages used.

Hi @mcepl sorry it took me a while to look at this.

First off you might repeat this with the current version in the master branch if possible. Otherwise if you need to wait for an official release I can do that soon.

My second question is, there should be a test_output folder with files client_stderr.txt and client_stdout.txt. Can you attach those files as they may have more info.

client_stderr.txt is empty and

python-concurrentloghandler@kusansky$ cat client_stdout.txt
Hello, self.writeLoops: 5000
We are done  pid=20155
Hello, self.writeLoops: 5000
We are done  pid=20156
Hello, self.writeLoops: 5000
We are done  pid=20157
Already a client using output file /home/abuild/rpmbuild/BUILD/concurrent-log-handler-0.9.19/test_output/client.log_client0.log
Already a client using output file /home/abuild/rpmbuild/BUILD/concurrent-log-handler-0.9.19/test_output/client.log_client1.log
Already a client using output file /home/abuild/rpmbuild/BUILD/concurrent-log-handler-0.9.19/test_output/client.log_client2.log
python-concurrentloghandler@kusansky$

Whole test_output directory (including all *.gz files) is 507 MB compressed.

@mcepl - I think this might be due to how the test script needs a clean test_output folder, but doesn't delete anything in there itself. I thought about adding that recently but I didn't see a need for it at the time. Basically I wonder if, as a workaround, you can rm -rf test_output before running the test, at least to confirm that that's the problem. Then I could update the test script.

You can see at https://build.opensuse.org/package/view_file/devel:languages:python/python-concurrentloghandler/python-concurrentloghandler.spec?expand=1 I run tests like this:

%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
rm -rf test
$python stresstest.py
}

Looks like you're deleting a directory test, but it should be test_output.

YOu are right, I am an idiot. Thank you.

No worries. Glad we got it cleared up. I'm considering making the test script auto-delete that folder anyway, I just worried about somehow accidentally deleting the wrong thing.