Movatterモバイル変換


[0]ホーム

URL:


homepage

Issue37362

This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title:test_gdb must not fail on "unexpected" messages written into stderr
Type:Stage:resolved
Components:TestsVersions:Python 3.9, Python 3.8, Python 3.7, Python 2.7
process
Status:closedResolution:fixed
Dependencies:Superseder:
Assigned To:Nosy List: dmalcolm, miss-islington, vstinner
Priority:normalKeywords:patch

Created on2019-06-21 13:45 byvstinner, last changed2022-04-11 14:59 byadmin. This issue is nowclosed.

Pull Requests
URLStatusLinkedEdit
PR 14287mergedvstinner,2019-06-21 13:48
PR 14295mergedmiss-islington,2019-06-21 21:17
PR 14296mergedmiss-islington,2019-06-21 21:17
PR 14297mergedvstinner,2019-06-21 21:28
Messages (10)
msg346211 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 13:45
Currently, test_gdb fails if gdb logs messages on stderr which are "unexpected". I don't understand the rationale for that: Python is not supposed to test gdb. It's only supposed to check that python-gdb.py commands work as expected: stderr should be ignored.In the past, I was lazy and just added more and more patterns to ignore on stderr, but this approach doesn't work in the long term: gdb evolves frequently, and there are always new messages.Attached PR modify test_gdb to ignore stderr, except of "PC not saved" pattern used to skip test_gdb on a special case:bpo-34007.        # bpo34007: Sometimes some versions of the shared libraries that        # are part of the traceback are compiled in optimised mode and the        # Program Counter (PC) is not present, not allowing gdb to walk the        # frames back. When this happens, the Python bindings of gdb raise        # an exception, making the test impossible to succeed.        if "PC not saved" in err:            raise unittest.SkipTest("gdb cannot walk the frame object"                                    " because the Program Counter is"                                    " not present")
msg346212 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 13:51
> In the past, I was lazy and just added more and more patterns to ignore on stderr, but this approach doesn't work in the long term: gdb evolves frequently, and there are always new messages.A recent example: test_gdb fails on Fedora because a warning which should not prevent to test python-gdb.py commands:"Missing separate debuginfo for /lib/ld-linux-aarch64.so.1"Moreover, Fedora also suggests a command to install missing package in this case:"Try: dnf --enablerepo='*debug*' install ..."https://bugzilla.redhat.com/show_bug.cgi?id=1721483
msg346221 -(view)Author: Dave Malcolm (dmalcolm)(Python committer)Date: 2019-06-21 14:31
I think when I wrote this I was over-optimistically thinking that we could just add more patterns, but if it's becoming a pain, then your approach looks good to me.
msg346251 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 21:17
New changesete56a123fd0acaa295a28b98d2e46d956b97d1263 by Victor Stinner in branch 'master':bpo-37362: test_gdb now ignores stderr (GH-14287)https://github.com/python/cpython/commit/e56a123fd0acaa295a28b98d2e46d956b97d1263
msg346252 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 21:22
> I think when I wrote this I was over-optimistically thinking that we could just add more patterns, but if it's becoming a pain, then your approach looks good to me.Well, I tried hard to fit into this approach: over the years, I added more and more patterns... but it's a painful work: first a CI break, I add more patterns and then I have to backport the change to all branches. As I wrote, I'm not convinced of the purpose of getting a failure in this case. Python doesn't get any benefit from this.Anyway, I merged my change. Thanks for your approval ;-)
msg346255 -(view)Author: miss-islington (miss-islington)Date: 2019-06-21 21:38
New changeset16ec95bb191e4136630de7437f75636d4b6a450f by Miss Islington (bot) in branch '3.7':bpo-37362: test_gdb now ignores stderr (GH-14287)https://github.com/python/cpython/commit/16ec95bb191e4136630de7437f75636d4b6a450f
msg346257 -(view)Author: miss-islington (miss-islington)Date: 2019-06-21 21:40
New changeset3523e0c47be372477e990df7435a0f45be80fd50 by Miss Islington (bot) in branch '3.8':bpo-37362: test_gdb now ignores stderr (GH-14287)https://github.com/python/cpython/commit/3523e0c47be372477e990df7435a0f45be80fd50
msg346258 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 21:59
New changesetadcdb1e4f5eb3c63e4e40242737be9c00a26764c by Victor Stinner in branch '2.7':bpo-37362: test_gdb now ignores stderr (GH-14287) (GH-14297)https://github.com/python/cpython/commit/adcdb1e4f5eb3c63e4e40242737be9c00a26764c
msg346260 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 22:17
For the record, examples of ignored patterns:        ignore_patterns = (            'Function "%s" not defined.' % breakpoint,            'Do you need "set solib-search-path" or '            '"set sysroot"?',            # BFD: /usr/lib/debug/(...): unable to initialize decompress            # status for section .debug_aranges            'BFD: ',            # ignore all warnings            'warning: ',            )Enjoy the older list before I chose to ignore "warning: " :-)        # Ignore some benign messages on stderr.        ignore_patterns = (            'Function "%s" not defined.' % breakpoint,            "warning: no loadable sections found in added symbol-file"            " system-supplied DSO",            "warning: Unable to find libthread_db matching"            " inferior's thread library, thread debugging will"            " not be available.",            "warning: Cannot initialize thread debugging"            " library: Debugger service failed",            'warning: Could not load shared library symbols for '            'linux-vdso.so',            'warning: Could not load shared library symbols for '            'linux-gate.so',            'warning: Could not load shared library symbols for '            'linux-vdso64.so',            'Do you need "set solib-search-path" or '            '"set sysroot"?',            'warning: Source file is more recent than executable.',            # Issue#19753: missing symbols on System Z            'Missing separate debuginfo for ',            'Try: zypper install -C ',            )Oh strange, "Missing separate debuginfo for " message was ignored!commitf4a4898c18c9cc5ca6d2747789c6586524daf461Author: Victor Stinner <victor.stinner@gmail.com>Date:   Sun Nov 24 18:55:25 2013 +0100    Issue#19753: Try to fix test_gdb on SystemZ buildbotBut I removed it in:commit904f5def5cc6da106a1e2e9feb0830cdb1433519Author: Victor Stinner <victor.stinner@gmail.com>Date:   Wed Mar 23 18:32:54 2016 +0100    Try to fix test_gdb on s390x buildbots
msg346261 -(view)Author: STINNER Victor (vstinner)*(Python committer)Date: 2019-06-21 22:17
I closed the issue. test_gdb now ignores stderr in all branches.
History
DateUserActionArgs
2022-04-11 14:59:17adminsetgithub: 81543
2019-06-21 22:17:38vstinnersetmessages: +msg346261
2019-06-21 22:17:13vstinnersetstatus: open -> closed
resolution: fixed
messages: +msg346260

stage: patch review -> resolved
2019-06-21 21:59:11vstinnersetmessages: +msg346258
2019-06-21 21:40:01miss-islingtonsetmessages: +msg346257
2019-06-21 21:38:30miss-islingtonsetnosy: +miss-islington
messages: +msg346255
2019-06-21 21:28:01vstinnersetpull_requests: +pull_request14121
2019-06-21 21:22:43vstinnersetmessages: +msg346252
2019-06-21 21:17:56miss-islingtonsetpull_requests: +pull_request14120
2019-06-21 21:17:48miss-islingtonsetpull_requests: +pull_request14119
2019-06-21 21:17:35vstinnersetmessages: +msg346251
2019-06-21 14:31:07dmalcolmsetnosy: +dmalcolm
messages: +msg346221
2019-06-21 13:51:32vstinnersetmessages: +msg346212
2019-06-21 13:48:53vstinnersetkeywords: +patch
stage: patch review
pull_requests: +pull_request14109
2019-06-21 13:45:56vstinnercreate
Supported byThe Python Software Foundation,
Powered byRoundup
Copyright © 1990-2022,Python Software Foundation
Legal Statements

[8]ページ先頭

©2009-2026 Movatter.jp