The latest updates to your branch fixed the logging issue, thanks! Tests
now seem to execute fine locally using pytest.

I was looking at the dockerfile and noticed that you explicitly use
python 3.6 there. Are you aware of any issues with older python3
versions, e.g. 3.5? Do I have to use 3.6 as well locally and do we have
to do the same for jenkins?


On 02.01.2018 22:42, Michael Kjellman wrote:
> I reproduced the NOTSET log issue locally... got a fix.. i'll push a commit 
> up in a moment.
> 
>> On Jan 2, 2018, at 11:24 AM, Michael Kjellman <mkjell...@internalcircle.com> 
>> wrote:
>>
>> Comments Inline: Thanks for giving this a go!!
>>
>>> On Jan 2, 2018, at 6:10 AM, Stefan Podkowinski <s...@apache.org> wrote:
>>>
>>> I was giving this a try today with some mixed results. First of all,
>>> running pytest locally would fail with an "ccmlib.common.ArgumentError:
>>> Unknown log level NOTSET" error for each test. Although I created a new
>>> virtualenv for that as described in the readme (thanks for updating!)
>>> and use both of your dtest and cassandra branches. But I haven't patched
>>> ccm as described in the ticket, maybe that's why? Can you publish a
>>> patched ccm branch to gh?
>>
>> 99% sure this is an issue parsing the logging level passed to pytest to the 
>> python logger... could you paste the exact command you're using to invoke 
>> pytest? should be a small change - i'm sure i just missed a invocation case.
>>
>>>
>>> The updated circle.yml is now using docker, which seems to be a good
>>> idea to reduce clutter in the yaml file and gives us more control over
>>> the test environment. Can you add the Dockerfile to the .circleci
>>> directory as well? I couldn't find it when I was trying to solve the
>>> pytest error mentioned above.
>>
>> This is already tracked in a separate repo: 
>> https://github.com/mkjellman/cassandra-test-docker/blob/master/Dockerfile
>>>
>>> Next thing I did was to push your trunk_circle branch to my gh repo to
>>> start a circleCI run. Finishing all dtests in 15 minutes sounds
>>> exciting, but requires a paid tier plan to get that kind of
>>> parallelization. Looks like the dtests have even been deliberately
>>> disabled for non-paid accounts, so I couldn't test this any further.
>>
>> the plan of action (i already already mentioned this in previous emails) is 
>> to get dtests working for the free circieci oss accounts as well. part of 
>> this work (already included in this pytest effort) is to have fixtures that 
>> look at the system resources and dynamically include tests as possible.
>>
>>>
>>> Running dtests from the pytest branch on builds.apache.org did not work
>>> either. At least the run_dtests.py arguments will need to be updated in
>>> cassandra-builds. We currently only use a single cassandra-dtest.sh
>>> script for all builds. Maybe we should create a new job template that
>>> would use an updated script with the wip-pytest dtest branch, to make
>>> this work and testable in parallel.
>>
>> yes, i didn't touch cassandra-builds yet.. focused on getting circleci and 
>> local runs working first... once we're happy with that and stable we can 
>> make the changes to jenkins configs pretty easily...
>>
>>>
>>>
>>>
>>> On 21.12.2017 11:13, Michael Kjellman wrote:
>>>> I just created https://issues.apache.org/jira/browse/CASSANDRA-14134 which 
>>>> includes tons of details (and a patch available for review) with my 
>>>> efforts to migrate dtests from nosetest to pytest (which ultimately ended 
>>>> up also including porting the ode from python 2.7 to python 3).
>>>>
>>>> I'd love if people could pitch in in any way to help get this reviewed and 
>>>> committed so we can reduce the natural drift that will occur with a huge 
>>>> patch like this against the changes going into master. I apologize for 
>>>> sending this so close to the holidays, but I really have been working 
>>>> non-stop trying to get things into a completed and stable state.
>>>>
>>>> The latest CircleCI runs I did took roughly 15 minutes to run all the 
>>>> dtests with only 6 failures remaining (when run with vnodes) and 12 
>>>> failures remaining (when run without vnodes). For comparison the last ASF 
>>>> Jenkins Dtest job to successfully complete took nearly 10 hours (9:51) and 
>>>> we had 36 test failures. Of note, while I was working on this and trying 
>>>> to determine a baseline for the existing tests I found that the ASF 
>>>> Jenkins jobs were incorrectly configured due to a typo. The no-vnodes job 
>>>> is actually running with vnodes (meaning the no-vnodes job is identical to 
>>>> the with-vnodes ASF Jenkins job). There are some bootstrap tests that will 
>>>> 100% reliably hang both nosetest and pytest on test cleanup, however this 
>>>> test only runs in the no-vnodes configuration. I've debugged and fixed a 
>>>> lot of these cases across many test cases over the past few weeks and I no 
>>>> longer know of any tests that can hang CI.
>>>>
>>>> Thanks and I'm optimistic about making testing great for the project and 
>>>> most importantly for the OSS C* community!
>>>>
>>>> best,
>>>> kjellman
>>>>
>>>> Some highlights that I quickly thought of (in no particular order): {also 
>>>> included in the JIRA}
>>>> -Migrate dtests from executing using the nosetest framework to pytest
>>>> -Port the entire code base from Python 2.7 to Python 3.6
>>>> -Update run_dtests.py to work with pytest
>>>> -Add --dtest-print-tests-only option to run_dtests.py to get easily 
>>>> parsable list of all available collected tests
>>>> -Update README.md for executing the dtests with pytest
>>>> -Add new debugging tips section to README.md to help with some basics of 
>>>> debugging python3 and pytest
>>>> -Migrate all existing Enviornment Variable usage as a means to control 
>>>> dtest operation modes to argparse command line options with documented 
>>>> help on each toggles intended usage
>>>> -Migration of old unitTest and nose based test structure to modern pytest 
>>>> fixture approach
>>>> -Automatic detection of physical system resources to automatically 
>>>> determine if @pytest.mark.resource_intensive annotated tests should be 
>>>> collected and run on the system where they are being executed
>>>> -new pytest fixture replacements for @since and @pytest.mark.upgrade_test 
>>>> annotations
>>>> -Migration to python logging framework
>>>> -Upgrade thrift bindings to latest version with full python3 compatibility
>>>> -Remove deprecated cql and pycassa dependencies and migrate any remaining 
>>>> tests to fully remove those dependencies
>>>> -Fixed dozens of tests that would hang the pytest framework forever when 
>>>> run in CI enviornments
>>>> -Ran code nearly 300 times in CircleCI during the migration and to find, 
>>>> identify, and fix any tests capable of hanging CI
>>>> -Upgrade Tests do not yet run in CI and still need additional migration 
>>>> work (although all upgrade test classes compile successfully)
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
>>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: dev-h...@cassandra.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to