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

Test faliure on 3.14 #320

Open
limburgher opened this issue Nov 21, 2024 · 2 comments
Open

Test faliure on 3.14 #320

limburgher opened this issue Nov 21, 2024 · 2 comments

Comments

@limburgher
Copy link

See: https://bugzilla.redhat.com/show_bug.cgi?id=2326933

=================================== FAILURES ===================================
____ TestBaseManager.test_can_provide_signal_handler_initializers_to_start _____

self = <tests.unit.test_compat.TestBaseManager testMethod=test_can_provide_signal_handler_initializers_to_start>

@skip_if_windows('os.kill() with SIGINT not supported on Windows')
def test_can_provide_signal_handler_initializers_to_start(self):
    manager = self.create_pid_manager()
  manager.start(signal.signal, (signal.SIGINT, signal.SIG_IGN))

tests/unit/test_compat.py:97:


/usr/lib64/python3.14/multiprocessing/managers.py:565: in start
self._process.start()
/usr/lib64/python3.14/multiprocessing/process.py:121: in start
self._popen = self._Popen(self)
/usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen
return Popen(process_obj)
/usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in init
super().init(process_obj)
/usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in init
self._launch(process_obj)
/usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch
reduction.dump(process_obj, buf)


obj =
file = <_io.BytesIO object at 0x7f2b60580630>, protocol = None

def dump(obj, file, protocol=None):
    '''Replacement for pickle.dump() using ForkingPickler.'''
  ForkingPickler(file, protocol).dump(obj)

E _pickle.PicklingError: Can't pickle local object <class 'tests.unit.test_compat.TestBaseManager.create_pid_manager..PIDManager'>
E when serializing tuple item 0
E when serializing method reconstructor arguments
E when serializing method object
E when serializing dict item '_target'
E when serializing multiprocessing.context.ForkServerProcess state
E when serializing multiprocessing.context.ForkServerProcess object

/usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError

According to https://docs.python.org/dev/whatsnew/3.14.html#multiprocessing

The default start method (see Contexts and start methods) changed from fork to forkserver on platforms other than macOS & Windows where it was already spawn. If you require the threading incompatible fork start method you must explicitly request it using a context from multiprocessing.get_context() (preferred) or change the default via multiprocessing.set_start_method(). (Contributed by Gregory P. Smith in gh-84559.)

@nateprewitt
Copy link
Contributor

Thanks for the issue @limburgher. The 3.14 alpha is still relatively new (<1 month old). We generally will not start looking at work to resolve compatibility issues until the build is at least in beta. We can keep this to track the issue for later work.

@limburgher
Copy link
Author

Sounds good. If neither of us have fixed this by the time we start building Fedora with 3.14, I'll just skip that test.

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

No branches or pull requests

2 participants