GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — bpo-1635741 port _curses_panel to multi-phase init (PEP 489) by koubaa · Pull Request #21986 · python/cpython

Conversation

@koubaa

@koubaa koubaa commented Aug 28, 2020 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

https://bugs.python.org/issue1635741

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@the-knights-who-say-ni the-knights-who-say-ni added the CLA signed label Aug 28, 2020
@bedevere-bot bedevere-bot added the awaiting review label Aug 28, 2020
@koubaa

koubaa commented Aug 29, 2020

Copy link
Copy Markdown
Contributor Author

@vstinner @shihai1991 this is ready for review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

vstinner
vstinner reviewed Aug 29, 2020
View reviewed changes

@vstinner vstinner left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I don't want to review this PR since it's too large. If you want me to review it, please cut it in half (create a second PR for half of changed modules.)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@koubaa
koubaa force-pushed the bpo-1635741-simple branch 2 times, most recently from 1e92854 to 8b134da Compare August 29, 2020 16:21
@koubaa koubaa mentioned this pull request Aug 29, 2020
bpo-1635741 port _testbuffer to multi-phase init #22003
Closed
@koubaa

koubaa commented Aug 29, 2020

Copy link
Copy Markdown
Contributor Author

I don't want to review this PR since it's too large. If you want me to review it, please cut it in half (create a second PR for half of changed modules.)

@vstinner I pulled some out into another PR.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@shihai1991

shihai1991 commented Aug 30, 2020

Copy link
Copy Markdown
Member

I don't want to review this PR since it's too large. If you want me to review it, please cut it in half (create a second PR for half of changed modules.)

IMHO, a single module change in a PR is more reasonable.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

shihai1991
shihai1991 reviewed Aug 30, 2020
View reviewed changes
Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/_opcode.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/signalmodule.c Outdated

@shihai1991 shihai1991 Aug 30, 2020

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Can we move SiginfoType to module state?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@koubaa koubaa Aug 30, 2020

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

@shihai1991 I'm not familiar with PyStructSequence_InitType2. Are there any special considerations when converting a type like this to a heap type and adding it to module state?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@shihai1991 shihai1991 Aug 30, 2020

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

ops, I am not familiar with PyStructSequence_InitType2() too : (. This function looks like just do some copy operation.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@koubaa

koubaa commented Aug 30, 2020

Copy link
Copy Markdown
Contributor Author

I don't want to review this PR since it's too large. If you want me to review it, please cut it in half (create a second PR for half of changed modules.)

IMHO, a single module change in a PR is more reasonable.

I sympathize with this, I can certainly do this going forward. Please let me know and I can split this PR if required.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@shihai1991

shihai1991 commented Aug 30, 2020

Copy link
Copy Markdown
Member

I don't want to review this PR since it's too large. If you want me to review it, please cut it in half (create a second PR for half of changed modules.)

IMHO, a single module change in a PR is more reasonable.

I sympathize with this, I can certainly do this going forward. Please let me know and I can split this PR if required.

victor have give an suggestion, so we can follow victor's advice in this PR ;)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@vstinner

vstinner commented Sep 1, 2020

Copy link
Copy Markdown
Member

IMHO, a single module change in a PR is more reasonable.

Yeah, I still don't want to review a single PR converting three unrelated extension modules to multiphase init.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@corona10
corona10 self-requested a review September 1, 2020 12:59
koubaa added 2 commits September 1, 2020 17:04
@koubaa
port _curses_panel to multi-phase
03e4fce
@koubaa
blurb
95081a7
@koubaa
koubaa force-pushed the bpo-1635741-simple branch from f3d2905 to 95081a7 Compare September 1, 2020 22:09
@koubaa

koubaa commented Sep 1, 2020

Copy link
Copy Markdown
Contributor Author

IMHO, a single module change in a PR is more reasonable.

Yeah, I still don't want to review a single PR converting three unrelated extension modules to multiphase init.

No problem at all. I am splitting each of these in its own PR

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

corona10
corona10 requested changes Sep 2, 2020
View reviewed changes

@corona10 corona10 left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

 ##[error]/home/runner/work/cpython/cpython/Modules/_curses_panel.c:629:7: error: request for member ‘PyCursesPanel_Type’ in something not a structure or union
     st->PyCursesPanel_Type = PyType_FromSpec(&PyCursesPanel_Type_spec);
       ^~
##[error]/home/runner/work/cpython/cpython/Modules/_curses_panel.c:630:11: error: request for member ‘PyCursesPanel_Type’ in something not a structure or union
     if (st->PyCursesPanel_Type == NULL)
           ^~
##[error]/home/runner/work/cpython/cpython/Modules/_curses_panel.c:633:31: error: request for member ‘PyCursesPanel_Type’ in something not a structure or union
     if (PyModule_AddType(m, st->PyCursesPanel_Type) < 0)
                               ^~
##[error]/home/runner/work/cpython/cpython/Modules/_curses_panel.c:642:7: error: request for member ‘PyCursesError’ in something not a structure or union
     st->PyCursesError = PyErr_NewException("_curses_panel.error", NULL, NULL);
       ^~
##[error]/home/runner/work/cpython/cpython/Modules/_curses_panel.c:643:40: error: request for member ‘PyCursesError’ in something not a structure or union
     PyDict_SetItemString(d, "error", st->PyCursesError);

Please check compile error :)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-bot bedevere-bot added awaiting changes and removed awaiting review labels Sep 2, 2020
@bedevere-bot

bedevere-bot commented Sep 2, 2020

Copy link
Copy Markdown

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@koubaa

koubaa commented Sep 2, 2020

Copy link
Copy Markdown
Contributor Author

@corona10 I don't have compile errors on windows, but I am now noticing that there is a PyState_FindModule which isn't compatible with multi-phase initialization. I'll fix that, and try a test build on linux too (odd that the CI passed if you hit a compile error)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@koubaa
remove global module state
c9e4c9e
@koubaa

koubaa commented Sep 2, 2020

Copy link
Copy Markdown
Contributor Author

@corona10 I removed PyState_FindModule issue, please try again now

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@koubaa koubaa changed the title bpo-1635741 port some simple modules to multi-phase init bpo-1635741 port _curses_panel to multi-phase init (PEP 489) Sep 2, 2020
=
regen clinic file on linux
ba012cf
vstinner
vstinner reviewed Sep 2, 2020
View reviewed changes

@vstinner vstinner left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Please fix compiler warnings that you can see at https://github.com/python/cpython/pull/21986/files

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

@koubaa
rename variable & fix issue
14a6027
vstinner
vstinner reviewed Sep 3, 2020
View reviewed changes
Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

vstinner
vstinner reviewed Sep 6, 2020
View reviewed changes

@vstinner vstinner left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

They are still compiler errors, like:

unknown type name ‘_curses_panel_state’; did you mean ‘_curses_panelstate’?

What is your OS? Did you try to build Python locally before pushing your change?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@koubaa

koubaa commented Sep 6, 2020

Copy link
Copy Markdown
Contributor Author

@vstinner I am on windows and I don't have any errors when I build locally. I think I need to depend on github to find them..

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

koubaa added 3 commits September 6, 2020 16:45
@koubaa
fix build error
8d1a790
@koubaa
fix warning
34e4374
@koubaa
fix compiler warning
f9b5d9f
@koubaa

koubaa commented Sep 7, 2020

Copy link
Copy Markdown
Contributor Author

I think I fixed all the compiler warnings. The CI fails due to this:

*** WARNING: importing extension "_curses_panel" failed with <class 'SystemError'>: attempting to create PyCMethod with a METH_METHOD flag but no class

I think this is due to adding cls:defining_class to the argument clinic (which converts the method type to METH_METHOD|METH_FASTCALL|METH_KEYWORDS. I'm not sure exactly what I need to do to fix it.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@koubaa
fix issue
f4274ed
@koubaa

koubaa commented Sep 7, 2020

Copy link
Copy Markdown
Contributor Author

Fixed

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

vstinner
vstinner reviewed Sep 7, 2020
View reviewed changes
Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

@vstinner

vstinner commented Sep 7, 2020

Copy link
Copy Markdown
Member

I am on windows and I don't have any errors when I build locally. I think I need to depend on github to find them.

Oh ok. I'm fine with you using the CI to check for errors. The module is not built on Windows, since it's specific to Unix. curses is not available on Windows.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@koubaa
update
1213b35
vstinner
vstinner reviewed Sep 7, 2020
View reviewed changes
Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

koubaa added 2 commits September 7, 2020 08:25
@koubaa
fix compile error
ea0136d
@koubaa
fix
141c299
vstinner
vstinner reviewed Sep 7, 2020
View reviewed changes
Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Modules/_curses_panel.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

@koubaa
rename
4a9bf93
vstinner
vstinner approved these changes Sep 7, 2020
View reviewed changes

@vstinner vstinner left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

LGTM, thanks for the multiple updates, the code is now much better!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting changes labels Sep 7, 2020
@vstinner

vstinner commented Sep 7, 2020

Copy link
Copy Markdown
Member

test_asyncio failed on Windows (x86), but this test is not reliable. I ignore the failure.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@vstinner
vstinner merged commit 1baf030 into python:master Sep 7, 2020
@bedevere-bot bedevere-bot removed the awaiting merge label Sep 7, 2020
@bedevere-bot

bedevere-bot commented Sep 7, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot s390x RHEL8 LTO + PGO 3.x has failed when building commit 1baf030.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/442/builds/399) and take a look at the build logs.
  4. Check if the failure is related to this commit (1baf030) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/442/builds/399

Summary of the results of the build (if available):

== Tests result: ENV CHANGED ==

407 tests OK.

10 slowest tests:

  • test_peg_generator: 3 min 52 sec
  • test_concurrent_futures: 2 min 59 sec
  • test_multiprocessing_spawn: 1 min 16 sec
  • test_multiprocessing_forkserver: 1 min
  • test_multiprocessing_fork: 57.8 sec
  • test_asyncio: 52.4 sec
  • test_signal: 51.7 sec
  • test_subprocess: 37.8 sec
  • test_io: 35.8 sec
  • test_tokenize: 34.8 sec

1 test altered the execution environment:
test_logging

15 tests skipped:
test_devpoll test_gdb test_ioctl test_kqueue test_msilib test_nis
test_ossaudiodev test_startfile test_tix test_tk test_ttk_guionly
test_winconsoleio test_winreg test_winsound test_zipfile64

Total duration: 7 min 6 sec

Click to see traceback logs
remote: Enumerating objects: 10, done.        
remote: Counting objects:  10% (1/10)        
remote: Counting objects:  20% (2/10)        
remote: Counting objects:  30% (3/10)        
remote: Counting objects:  40% (4/10)        
remote: Counting objects:  50% (5/10)        
remote: Counting objects:  60% (6/10)        
remote: Counting objects:  70% (7/10)        
remote: Counting objects:  80% (8/10)        
remote: Counting objects:  90% (9/10)        
remote: Counting objects: 100% (10/10)        
remote: Counting objects: 100% (10/10), done.        
remote: Compressing objects:  12% (1/8)        
remote: Compressing objects:  25% (2/8)        
remote: Compressing objects:  37% (3/8)        
remote: Compressing objects:  50% (4/8)        
remote: Compressing objects:  62% (5/8)        
remote: Compressing objects:  75% (6/8)        
remote: Compressing objects:  87% (7/8)        
remote: Compressing objects: 100% (8/8)        
remote: Compressing objects: 100% (8/8), done.        
remote: Total 11 (delta 2), reused 2 (delta 2), pack-reused 1        
From https://github.com/python/cpython
 * branch                  master     -> FETCH_HEAD
Reset branch 'master'

find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
make[2]: [Makefile:1822: clean-retain-profile] Error 1 (ignored)

test_tix skipped -- Tk unavailable due to TclError: no display name and no $DISPLAY environment variab [...]
test_ioctl skipped -- Unable to open /dev/tty
test_nis skipped -- No module named 'nis'
test_msilib skipped -- No module named '_msi'
test_winsound skipped -- No module named 'winsound'
test_gdb skipped -- test_gdb is not reliable on PGO builds
test_ossaudiodev skipped -- [Errno 2] No such file or directory: '/dev/dsp'
test_devpoll skipped -- test works only on Solaris OS family
Warning -- threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 2)
Warning -- Dangling thread: <Thread(Thread-4, started daemon 4395811469584)>
Warning -- Dangling thread: <_MainThread(MainThread, started 4395867015984)>
test_flat (test.test_logging.BuiltinLevelsTest) ... ok
test_issue27935 (test.test_logging.BuiltinLevelsTest) ... ok
test_nested_explicit (test.test_logging.BuiltinLevelsTest) ... ok
test_nested_inherited (test.test_logging.BuiltinLevelsTest) ... ok
test_nested_with_virtual_parent (test.test_logging.BuiltinLevelsTest) ... ok
test_regression_22386 (test.test_logging.BuiltinLevelsTest)
See issue #22386 for more information. ... ok
test_regression_29220 (test.test_logging.BuiltinLevelsTest)
See issue #29220 for more information. ... ok
test_callable_filter (test.test_logging.BasicFilterTest) ... ok
test_empty_filter (test.test_logging.BasicFilterTest) ... ok
test_filter (test.test_logging.BasicFilterTest) ... ok
test_handler_filter (test.test_logging.CustomLevelsAndFiltersTest) ... ok
test_logger_filter (test.test_logging.CustomLevelsAndFiltersTest) ... ok
test_specific_filters (test.test_logging.CustomLevelsAndFiltersTest) ... ok
test_builtin_handlers (test.test_logging.HandlerTest) ... ok
test_name (test.test_logging.HandlerTest) ... ok
test_path_objects (test.test_logging.HandlerTest)
Test that Path objects are accepted as filename arguments to handlers. ... ok
test_post_fork_child_no_deadlock (test.test_logging.HandlerTest)
Ensure child logging locks are not held; [bpo-6721](https://bugs.python.org/issue6721) & [bpo-36533](https://bugs.python.org/issue36533). ... ok
test_race (test.test_logging.HandlerTest) ... ok
test_flush (test.test_logging.MemoryHandlerTest) ... ok
test_flush_on_close (test.test_logging.MemoryHandlerTest)
Test that the flush-on-close configuration works as expected. ... ok
test_race_between_set_target_and_flush (test.test_logging.MemoryHandlerTest) ... ok
test_config0_ok (test.test_logging.ConfigFileTest) ... ok
test_config0_using_cp_ok (test.test_logging.ConfigFileTest) ... ok
test_config1_ok (test.test_logging.ConfigFileTest) ... ok
test_config2_failure (test.test_logging.ConfigFileTest) ... ok
test_config3_failure (test.test_logging.ConfigFileTest) ... ok
test_config4_ok (test.test_logging.ConfigFileTest) ... ok
test_config5_ok (test.test_logging.ConfigFileTest) ... ok
test_config6_ok (test.test_logging.ConfigFileTest) ... ok
test_config7_ok (test.test_logging.ConfigFileTest) ... ok
test_config8_ok (test.test_logging.ConfigFileTest) ... ok
test_config_set_handler_names (test.test_logging.ConfigFileTest) ... ok
test_defaults_do_no_interpolation (test.test_logging.ConfigFileTest)
[bpo-33802](https://bugs.python.org/issue33802) defaults should not get interpolated ... ok
test_logger_disabling (test.test_logging.ConfigFileTest) ... ok
test_noserver (test.test_logging.SocketHandlerTest) ... ok
test_output (test.test_logging.SocketHandlerTest) ... ok
test_output (test.test_logging.DatagramHandlerTest) ... ok
test_persistent_loggers (test.test_logging.MemoryTest) ... ok
test_encoding_cyrillic_unicode (test.test_logging.EncodingTest) ... ok
test_encoding_plain_file (test.test_logging.EncodingTest) ... ok
test_warnings (test.test_logging.WarningsTest) ... ok
test_warnings_no_handlers (test.test_logging.WarningsTest) ... ok
test_baseconfig (test.test_logging.ConfigDictTest) ... ok
test_config0_ok (test.test_logging.ConfigDictTest) ... ok
test_config11_ok (test.test_logging.ConfigDictTest) ... ok
test_config12_failure (test.test_logging.ConfigDictTest) ... ok
test_config13_failure (test.test_logging.ConfigDictTest) ... ok
test_config14_ok (test.test_logging.ConfigDictTest) ... ok
test_config15_ok (test.test_logging.ConfigDictTest) ... ok
test_config1_ok (test.test_logging.ConfigDictTest) ... ok
test_config2_failure (test.test_logging.ConfigDictTest) ... ok
test_config2a_failure (test.test_logging.ConfigDictTest) ... ok
test_config2b_failure (test.test_logging.ConfigDictTest) ... ok
test_config3_failure (test.test_logging.ConfigDictTest) ... ok
test_config4_ok (test.test_logging.ConfigDictTest) ... ok
test_config4a_ok (test.test_logging.ConfigDictTest) ... ok
test_config5_ok (test.test_logging.ConfigDictTest) ... ok
test_config6_failure (test.test_logging.ConfigDictTest) ... ok
test_config7_ok (test.test_logging.ConfigDictTest) ... ok
test_config_10_ok (test.test_logging.ConfigDictTest) ... ok
test_config_8_ok (test.test_logging.ConfigDictTest) ... ok
test_config_8a_ok (test.test_logging.ConfigDictTest) ... ok
test_config_9_ok (test.test_logging.ConfigDictTest) ... ok
test_custom_formatter_class_with_validate (test.test_logging.ConfigDictTest) ... ok
test_custom_formatter_class_with_validate2 (test.test_logging.ConfigDictTest) ... ok
test_custom_formatter_class_with_validate2_with_wrong_fmt (test.test_logging.ConfigDictTest) ... ok
test_custom_formatter_class_with_validate3 (test.test_logging.ConfigDictTest) ... ok
test_custom_formatter_function_with_validate (test.test_logging.ConfigDictTest) ... ok
test_listen_config_10_ok (test.test_logging.ConfigDictTest) ... ok
test_listen_config_1_ok (test.test_logging.ConfigDictTest) ... ok
test_listen_verify (test.test_logging.ConfigDictTest) ... ok
test_namedtuple (test.test_logging.ConfigDictTest) ... ok
test_out_of_order (test.test_logging.ConfigDictTest) ... ok
test_out_of_order_with_dollar_style (test.test_logging.ConfigDictTest) ... ok
test_manager_loggerclass (test.test_logging.ManagerTest) ... ok
test_set_log_record_factory (test.test_logging.ManagerTest) ... ok
test_braces (test.test_logging.FormatterTest) ... ok
test_default_msec_format_none (test.test_logging.FormatterTest) ... ok
test_defaults_parameter (test.test_logging.FormatterTest) ... ok
test_dollars (test.test_logging.FormatterTest) ... ok
test_format_validate (test.test_logging.FormatterTest) ... ok
test_invalid_style (test.test_logging.FormatterTest) ... ok
test_percent (test.test_logging.FormatterTest) ... ok
test_time (test.test_logging.FormatterTest) ... ok
test_custom (test.test_logging.BufferingFormatterTest) ... ok
test_default (test.test_logging.BufferingFormatterTest) ... ok
test_can_represent_stream_with_int_name (test.test_logging.StreamHandlerTest) ... ok
test_error_handling (test.test_logging.StreamHandlerTest) ... ok
test_stream_setting (test.test_logging.StreamHandlerTest)
Test setting the handler's stream ... ok
test_logrecord_class (test.test_logging.LogRecordFactoryTest) ... ok
test_child_loggers (test.test_logging.ChildLoggerTest) ... ok
test_formatting (test.test_logging.QueueHandlerTest) ... ok
test_queue_handler (test.test_logging.QueueHandlerTest) ... ok
test_queue_listener (test.test_logging.QueueHandlerTest) ... ok
test_queue_listener_with_StreamHandler (test.test_logging.QueueHandlerTest) ... ok
test_queue_listener_with_multiple_handlers (test.test_logging.QueueHandlerTest) ... ok
test_no_failure (test.test_logging.ShutdownTest) ... ok
test_with_ioerror_in_acquire (test.test_logging.ShutdownTest) ... ok
test_with_ioerror_in_close (test.test_logging.ShutdownTest) ... ok
test_with_ioerror_in_flush (test.test_logging.ShutdownTest) ... ok
test_with_other_error_in_acquire_with_raise (test.test_logging.ShutdownTest) ... ok
test_with_other_error_in_acquire_without_raise (test.test_logging.ShutdownTest) ... ok
test_with_other_error_in_close_with_raise (test.test_logging.ShutdownTest) ... ok
test_with_other_error_in_close_without_raise (test.test_logging.ShutdownTest) ... ok
test_with_other_error_in_flush_with_raise (test.test_logging.ShutdownTest) ... ok
test_with_other_error_in_flush_without_raise (test.test_logging.ShutdownTest) ... ok
test_with_valueerror_in_acquire (test.test_logging.ShutdownTest) ... ok
test_with_valueerror_in_close (test.test_logging.ShutdownTest) ... ok
test_with_valueerror_in_flush (test.test_logging.ShutdownTest) ... ok
test_critical (test.test_logging.ModuleLevelMiscTest) ... ok
test_debug (test.test_logging.ModuleLevelMiscTest) ... ok
test_disable (test.test_logging.ModuleLevelMiscTest) ... ok
test_error (test.test_logging.ModuleLevelMiscTest) ... ok
test_info (test.test_logging.ModuleLevelMiscTest) ... ok
test_log (test.test_logging.ModuleLevelMiscTest) ... ok
test_logging_at_shutdown (test.test_logging.ModuleLevelMiscTest) ... ok
test_recursion_error (test.test_logging.ModuleLevelMiscTest) ... ok
test_set_logger_class (test.test_logging.ModuleLevelMiscTest) ... ok
test_subclass_logger_cache (test.test_logging.ModuleLevelMiscTest) ... ok
test_warning (test.test_logging.ModuleLevelMiscTest) ... ok
test_critical (test.test_logging.BasicConfigTest) ... ok
test_datefmt (test.test_logging.BasicConfigTest) ... ok
test_debug (test.test_logging.BasicConfigTest) ... ok
test_encoding (test.test_logging.BasicConfigTest) ... ok
test_encoding_errors (test.test_logging.BasicConfigTest) ... ok
test_encoding_errors_default (test.test_logging.BasicConfigTest) ... ok
test_encoding_errors_none (test.test_logging.BasicConfigTest) ... ok
test_error (test.test_logging.BasicConfigTest) ... ok
test_filemode (test.test_logging.BasicConfigTest) ... ok
test_filename (test.test_logging.BasicConfigTest) ... ok
test_force (test.test_logging.BasicConfigTest) ... ok
test_format (test.test_logging.BasicConfigTest) ... ok
test_handlers (test.test_logging.BasicConfigTest) ... ok
test_incompatible (test.test_logging.BasicConfigTest) ... ok
test_info (test.test_logging.BasicConfigTest) ... ok
test_level (test.test_logging.BasicConfigTest) ... ok
test_log (test.test_logging.BasicConfigTest) ... ok
test_no_kwargs (test.test_logging.BasicConfigTest) ... ok
test_stream (test.test_logging.BasicConfigTest) ... ok
test_strformatstyle (test.test_logging.BasicConfigTest) ... ok
test_stringtemplatestyle (test.test_logging.BasicConfigTest) ... ok
test_style (test.test_logging.BasicConfigTest) ... ok
test_warning (test.test_logging.BasicConfigTest) ... ok
test_critical (test.test_logging.LoggerAdapterTest) ... ok
test_exception (test.test_logging.LoggerAdapterTest) ... ok
test_exception_excinfo (test.test_logging.LoggerAdapterTest) ... ok
test_has_handlers (test.test_logging.LoggerAdapterTest) ... ok
test_is_enabled_for (test.test_logging.LoggerAdapterTest) ... ok
test_nested (test.test_logging.LoggerAdapterTest) ... ok
test_caching (test.test_logging.LoggerTest) ... ok
test_exception (test.test_logging.LoggerTest) ... ok
test_find_caller_with_stack_info (test.test_logging.LoggerTest) ... ok
test_find_caller_with_stacklevel (test.test_logging.LoggerTest) ... ok
test_has_handlers (test.test_logging.LoggerTest) ... ok
test_has_handlers_no_propagate (test.test_logging.LoggerTest) ... ok
test_invalid_names (test.test_logging.LoggerTest) ... ok
test_is_enabled_for (test.test_logging.LoggerTest) ... ok
test_is_enabled_for_disabled_logger (test.test_logging.LoggerTest) ... ok
test_log_invalid_level_no_raise (test.test_logging.LoggerTest) ... ok
test_log_invalid_level_with_raise (test.test_logging.LoggerTest) ... ok
test_make_record_with_extra_no_overwrite (test.test_logging.LoggerTest) ... ok
test_make_record_with_extra_overwrite (test.test_logging.LoggerTest) ... ok
test_pickling (test.test_logging.LoggerTest) ... ok
test_root_logger_aliases (test.test_logging.LoggerTest) ... ok
test_set_invalid_level (test.test_logging.LoggerTest) ... ok
test_basic (test.test_logging.SMTPHandlerTest) ... ok
test_delay (test.test_logging.FileHandlerTest) ... ok
test_file_created (test.test_logging.RotatingFileHandlerTest) ... ok
test_namer_rotator_inheritance (test.test_logging.RotatingFileHandlerTest) ... ok
test_rollover_filenames (test.test_logging.RotatingFileHandlerTest) ... ok
test_rotator (test.test_logging.RotatingFileHandlerTest) ... ok
test_should_not_rollover (test.test_logging.RotatingFileHandlerTest) ... ok
test_should_rollover (test.test_logging.RotatingFileHandlerTest) ... ok
test_last_resort (test.test_logging.LastResortTest) ... ok
test_dict_arg (test.test_logging.LogRecordTest) ... ok
test_multiprocessing (test.test_logging.LogRecordTest) ... ok
test_optional (test.test_logging.LogRecordTest) ... ok
test_str_rep (test.test_logging.LogRecordTest) ... ok
test_formatting (test.test_logging.ExceptionTest) ... ok
test_output (test.test_logging.SysLogHandlerTest) ... ok
test_output (test.test_logging.IPv6SysLogHandlerTest) ... ok
test_output (test.test_logging.HTTPHandlerTest) ... ok
test_basic (test.test_logging.NTEventLogHandlerTest) ... skipped 'win32evtlog/win32evtlogutil/pywintypes required for this test.'
test_compute_rollover_D (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_H (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_M (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_MIDNIGHT (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_S (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_W0 (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_daily_attime (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_compute_rollover_weekly_attime (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_invalid (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_rollover (test.test_logging.TimedRotatingFileHandlerTest) ... ok
test_noserver (test.test_logging.UnixSocketHandlerTest) ... ok
test_output (test.test_logging.UnixSocketHandlerTest) ... ok
test_output (test.test_logging.UnixDatagramHandlerTest) ... ok
test_output (test.test_logging.UnixSysLogHandlerTest) ... ok
test__all__ (test.test_logging.MiscTestCase) ... ok
test_calls_task_done_after_stop (test.test_logging.QueueListenerTest) ... ok
test_handle_called_with_mp_queue (test.test_logging.QueueListenerTest) ... ok
test_handle_called_with_queue_queue (test.test_logging.QueueListenerTest) ... ok
test_no_messages_in_queue_after_stop (test.test_logging.QueueListenerTest)
Five messages are logged then the QueueListener is stopped. This ... ok

----------------------------------------------------------------------

Ran 202 tests in 20.387s

OK (skipped=1)
test_winconsoleio skipped -- test only relevant on win32
test_winreg skipped -- No module named 'winreg'
test_flock (__main__.FNTLEINTRTest) ... ok
test_lockf (__main__.FNTLEINTRTest) ... ok
test_read (__main__.OSEINTRTest) ... ok
test_wait (__main__.OSEINTRTest) ... ok
test_wait3 (__main__.OSEINTRTest) ... ok
test_wait4 (__main__.OSEINTRTest) ... ok
test_waitpid (__main__.OSEINTRTest) ... ok
test_write (__main__.OSEINTRTest) ... ok
test_devpoll (__main__.SelectEINTRTest) ... skipped 'need select.devpoll'
test_epoll (__main__.SelectEINTRTest) ... ok
test_kqueue (__main__.SelectEINTRTest) ... skipped 'need select.kqueue'
test_poll (__main__.SelectEINTRTest) ... ok
test_select (__main__.SelectEINTRTest) ... ok
test_sigtimedwait (__main__.SignalEINTRTest) ... ok
test_sigwaitinfo (__main__.SignalEINTRTest) ... ok
test_accept (__main__.SocketEINTRTest) ... ok
test_open (__main__.SocketEINTRTest) ... ok
test_os_open (__main__.SocketEINTRTest) ... ok
test_recv (__main__.SocketEINTRTest) ... ok
test_recvmsg (__main__.SocketEINTRTest) ... ok
test_send (__main__.SocketEINTRTest) ... ok
test_sendall (__main__.SocketEINTRTest) ... ok
test_sendmsg (__main__.SocketEINTRTest) ... ok
test_sleep (__main__.TimeEINTRTest) ... ok

----------------------------------------------------------------------
Ran 24 tests in 6.875s

OK (skipped=2)
test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run
test_startfile skipped -- object <module 'os' from '/home/dje/cpython-buildarea/3.x.edelsohn-rhel8-z.lto-pgo/build/Lib/os.py'> has no attribute 'startfile'
test_kqueue skipped -- test works only on BSD
test_tk skipped -- Tk unavailable due to TclError: no display name and no $DISPLAY environment variab [...]
test_ttk_guionly skipped -- Tk unavailable due to TclError: no display name and no $DISPLAY environment variab [...]
make: *** [Makefile:1197: buildbottest] Error 3
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@vstinner

vstinner commented Sep 7, 2020

Copy link
Copy Markdown
Member

https://buildbot.python.org/all/#builders/442/builds/399

I created https://bugs.python.org/issue41739 "test_logging: threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 2)".

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

shihai1991 added a commit to shihai1991/cpython that referenced this pull request Sep 10, 2020
@shihai1991
Merge remote-tracking branch 'origin/master' into bpo_1635741_1
00b300c
* origin/master: (1373 commits)
  bpo-1635741: Port mashal module to multi-phase init (python#22149)
  bpo-1635741: Port _string module to multi-phase init (pythonGH-22148)
  bpo-1635741: Convert _sha256 types to heap types (pythonGH-22134)
  bpo-1635741: Port the termios to multi-phase init (PEP 489) (pythonGH-22139)
  bpo-41732: add iterator to memoryview (pythonGH-22119)
  bpo-40744: Drop support for SQLite pre 3.7.3 (pythonGH-20909)
  bpo-41316: Make tarfile follow specs for FNAME (pythonGH-21511)
  bpo-41720: Add "return NotImplemented" in turtle.Vec2D.__rmul__(). (pythonGH-22092)
  bpo-1635741 port _curses_panel to multi-phase init (PEP 489) (pythonGH-21986)
  bpo-1635741: Port _overlapped module to multi-phase init (pythonGH-22051)
  bpo-1635741: Port _opcode module to multi-phase init (PEP 489) (pythonGH-22050)
  bpo-1635741 port zlib module to multi-phase init (pythonGH-21995)
  [doc] Add link to Generic in typing (pythonGH-22125)
  bpo-41513: Expand comments and add references for a better understanding (pythonGH-22123)
  bpo-1635741: Port _sha1, _sha512, _md5 to multiphase init (pythonGH-21818)
  closes bpo-41723: Fix an error in the py_compile documentation. (pythonGH-22110)
  [doc] Fix padding in some typing definitions (pythonGH-22114)
  Fix documented Python version for venv --upgrade-deps (pythonGH-22113)
  bpo-40318: Migrate to SQLite3 trace v2 API (pythonGH-19581)
  bpo-41687: Fix sendfile implementation to work with Solaris (python#22040)
  ...
xzy3 pushed a commit to xzy3/cpython that referenced this pull request Oct 18, 2020
@koubaa @xzy3-cdc
bpo-1635741 port _curses_panel to multi-phase init (PEP 489) (pythonG…
e8f8016
…H-21986)
@vstinner

vstinner commented Dec 26, 2020 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

This change caused a regression: bpo-42694.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@gpshead gpshead mentioned this pull request Apr 10, 2022
Locks in the standard library should be sanitized on fork #50970
Closed
@kylotan kylotan mannequin mentioned this pull request Sep 19, 2022
Py_Finalize() doesn't clear all Python objects at exit #44470
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@shihai1991 shihai1991 shihai1991 left review comments
@corona10 corona10 corona10 requested changes
@vstinner vstinner vstinner approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@koubaa @shihai1991 @vstinner @bedevere-bot @corona10 @the-knights-who-say-ni
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.