Skip to content
This repository was archived by the owner on Sep 18, 2025. It is now read-only.

Conversation

@quasiben
Copy link
Member

Related to #616

cc @pentschev

@quasiben quasiben requested a review from a team as a code owner September 30, 2020 17:14
Copy link
Member

@pentschev pentschev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@quasiben I added a few suggestions there.

Copy link
Member

@pentschev pentschev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks @quasiben !

@jakirkham
Copy link
Member

Am seeing the following failure on CI.

___________________________ test_mem_mmap_hook_warn ____________________________

caplog = <_pytest.logging.LogCaptureFixture object at 0x7f138eb82850>

    def test_mem_mmap_hook_warn(caplog):
        """
        Test warning for UCX_MEM_MMAP_HOOK_MODE
        """
        import logging
    
        os.environ["UCX_MEM_MMAP_HOOK_MODE"] = "none"
    
        # ucp.init will only print INFO LINES
        with caplog.at_level(logging.INFO):
            import ucp
    
>           ucp.init()

tests/test_mmap_warn.py:16: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

options = {}, env_takes_precedence = False, blocking_progress_mode = None

    def init(options={}, env_takes_precedence=False, blocking_progress_mode=None):
        """Initiate UCX.
    
        Usually this is done automatically at the first API call
        but this function makes it possible to set UCX options programmable.
        Alternatively, UCX options can be specified through environment variables.
    
        Parameters
        ----------
        options: dict, optional
            UCX options send to the underlying UCX library
        env_takes_precedence: bool, optional
            Whether environment variables takes precedence over the `options`
            specified here.
        blocking_progress_mode: bool, optional
            If None, blocking UCX progress mode is used unless the environment variable
            `UCXPY_NON_BLOCKING_MODE` is defined.
            Otherwise, if True blocking mode is used and if False non-blocking mode is used.
        """
        global _ctx
        if _ctx is not None:
            raise RuntimeError(
>               "UCX is already initiated. Call reset() and init() "
                "in order to re-initate UCX with new options."
            )
E           RuntimeError: UCX is already initiated. Call reset() and init() in order to re-initate UCX with new options.

ucp/core.py:755: RuntimeError

@pentschev
Copy link
Member

Hmmm, yeah testing for UCX variables can be really tricky. The "solution" for that would be calling ucp.reset and then ucp.init. However, given pytest's behavior of not creating a fresh process for each new test, this could mean that we would be modifying behavior of tests that happen to run after this one. Due to that, I would prefer if we just don't add a test for this, given it's just a warning the test isn't as critical as for other functionality. Thoughts on this @quasiben @jakirkham ?

@jakirkham
Copy link
Member

Yeah that's ok with me.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants