Skip to content

CI tests are failing (xvfb issue?) #756

Description

@murrayrm

Conda-based CI tests are failing, as seen in PR #755. This this is new behavior. I checked on my local branch and this appears to be happening on the main branch => appears that the issue is outside of this repository. One possibility is an issue with slycot.

Activity

  1. changed the title [-]CI tests are failing (Slycot issue?)[/-] [+]CI tests are failing (coveralls issue?)[/+] on Aug 4, 2022
  2. murrayrm commented on Aug 4, 2022

    @murrayrm
    MemberAuthor

    Doing a bit of digging. It doesn't look like slycot is the issue, since Python 3.7 without Slycot without cvxopt also crashes. The error messages seem to point to coverage (?). I'm try to isolate things here.

  3. changed the title [-]CI tests are failing (coveralls issue?)[/-] [+]CI tests are failing (coverage issue?)[/+] on Aug 4, 2022
  4. bnavigator commented on Aug 4, 2022

    @bnavigator
    Contributor

    I don't think that it is coverage.

    Looks Qt related which is the default backend for Matplotlib. My first guess is that this is a conda-forge packaging bug on the MPL or Qt side.

    More things to try:

    • pytest-xvfb
    • set MPLBACKEND
    • try QT_QPA_PLATFORM=offscreen
  5. changed the title [-]CI tests are failing (coverage issue?)[/-] [+]CI tests are failing (xvfb issue?)[/+] on Aug 4, 2022
  6. murrayrm commented on Aug 4, 2022

    @murrayrm
    MemberAuthor

    Using pytest-xvfb fixes the original crash (which was happening in config_test.py), but introduces a new test failure:

    def test_root_locus_zoom(self):
    [102](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:103)
            """Check the zooming functionality of the Root locus plot"""
    [103](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:104)
            system = TransferFunction([1000], [1, 25, 100, 0])
    [104](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:105)
            plt.figure()
    [105](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:106)
            root_locus(system)
    [106](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:107)
            fig = plt.gcf()
    [107](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:108)
            ax_rlocus = fig.axes[0]
    [108](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:109)
        
    [109](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:110)
            event = type('test', (object,), {'xdata': 14.7607954359,
    [110](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:111)
                                             'ydata': -35.6171379864,
    [111](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:112)
                                             'inaxes': ax_rlocus.axes})()
    [112](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:113)
            ax_rlocus.set_xlim((-10.813628105112421, 14.760795435937652))
    [113](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:114)
            ax_rlocus.set_ylim((-35.61713798641108, 33.879716621220311))
    [114](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:115)
    >       plt.get_current_fig_manager().toolbar.mode = 'zoom rect'
    [115](https://github.com/murrayrm/python-control/runs/7679958935?check_suite_focus=true#step:5:116)
    E       AttributeError: 'NoneType' object has no attribute 'mode'
    

    There is a note saying that we were using xvfb-run to get the right MPL back end, so that is probably related somehow.

  7. murrayrm commented on Aug 4, 2022

    @murrayrm
    MemberAuthor

    One thing that is odd is that the other test suites pass and they are using xvfb-run. In particular, control-slycot-src.yml seems fine and it runs the full test suite...

  8. bnavigator commented on Aug 4, 2022

    @bnavigator
    Contributor

    There is a note saying that we were using xvfb-run to get the right MPL back end, so that is probably related somehow.

    Yes, it is related. The plain Agg backend does not have the toolbar for the figure manager. We have seen this before: #504 (comment)

    So this looks more and more like a qt backend issue in the MPL or Qt packages in conda-forge.

    Are you able to determine package version differences in the control-slycot-src vs. the python-package-conda runs?

  9. murrayrm commented on Aug 5, 2022

    @murrayrm
    MemberAuthor

    It looks like the error occurs when the installation uses a specialized conda environment (versus just installing things in the conda base environment). There are quite a few differences in the various packages that are installed in each case.

  10. bnavigator commented on Aug 6, 2022

    @bnavigator
    Contributor

    Now that the conda error is resolved, there is a new X11 error on the main branch. Something in the GHA runners must have changed between the check run for #755 and after the merge of it.

  11. bnavigator commented on Aug 6, 2022

    @bnavigator
    Contributor

    The failures with the invalid DISPLAY variable are totally random. We might just have been lucky in the builds for #755 and #757.

    https://github.com/bnavigator/python-control/commits/update-CI

  12. linked a pull request that will close this issueBuild system and test suite update #759on Aug 20, 2022
  13. bnavigator commented on Nov 20, 2022

    @bnavigator
    Contributor

    For the record: the random DISPLAY failure is back. (Maybe due to #796)

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions