Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-1635741 port _curses_panel to multi-phase init (PEP 489) #21986

Merged
merged 16 commits into from
Sep 7, 2020

Conversation

koubaa
Copy link
Contributor

@koubaa koubaa commented Aug 28, 2020

@koubaa
Copy link
Contributor Author

koubaa commented Aug 29, 2020

@vstinner @shihai1991 this is ready for review

Copy link
Member

@vstinner vstinner left a 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.)

@koubaa
Copy link
Contributor Author

koubaa commented Aug 29, 2020

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.

@shihai1991
Copy link
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.

Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_opcode.c Outdated Show resolved Hide resolved
#if defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
if (!initialized) {
if (PyStructSequence_InitType2(&SiginfoType, &struct_siginfo_desc) < 0)
return NULL;
return -1;
}
Py_INCREF((PyObject*) &SiginfoType);
Copy link
Member

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?

Copy link
Contributor Author

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?

Copy link
Member

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.

@koubaa
Copy link
Contributor Author

koubaa commented Aug 30, 2020

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.

@shihai1991
Copy link
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 ;)

@vstinner
Copy link
Member

vstinner commented Sep 1, 2020

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.

@corona10 corona10 self-requested a review September 1, 2020 12:59
@koubaa
Copy link
Contributor Author

koubaa commented Sep 1, 2020

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

Copy link
Member

@corona10 corona10 left a 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 :)

@bedevere-bot
Copy link

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.

@koubaa
Copy link
Contributor Author

koubaa commented Sep 2, 2020

@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)

@koubaa
Copy link
Contributor Author

koubaa commented Sep 2, 2020

@corona10 I removed PyState_FindModule issue, please try again now

@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
Copy link
Member

@vstinner vstinner left a 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

Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
Copy link
Member

@vstinner vstinner left a 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?

@koubaa
Copy link
Contributor Author

koubaa commented Sep 6, 2020

@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..

@koubaa
Copy link
Contributor Author

koubaa commented Sep 7, 2020

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.

@koubaa
Copy link
Contributor Author

koubaa commented Sep 7, 2020

Fixed

Modules/_curses_panel.c Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
@vstinner
Copy link
Member

vstinner commented Sep 7, 2020

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.

Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
Modules/_curses_panel.c Outdated Show resolved Hide resolved
Copy link
Member

@vstinner vstinner 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 for the multiple updates, the code is now much better!

@vstinner
Copy link
Member

vstinner commented Sep 7, 2020

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

@vstinner vstinner merged commit 1baf030 into python:master Sep 7, 2020
@bedevere-bot
Copy link

bedevere-bot commented Sep 7, 2020

⚠️⚠️⚠️ 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

@vstinner
Copy link
Member

vstinner commented Sep 7, 2020

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)".

shihai1991 added a commit to shihai1991/cpython that referenced this pull request Sep 10, 2020
* 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
@vstinner
Copy link
Member

vstinner commented Dec 26, 2020

This change caused a regression: bpo-42694.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants