-
Notifications
You must be signed in to change notification settings - Fork 68
Open
Description
Thespian version: recent snapshot (acf5cb2)
OS version:
MacOS Sequoia 15.2
% sw_vers
ProductName: macOS
ProductVersion: 15.2
BuildVersion: 24C101
Description:
% py.test -v -k testSimpleActorAsk50K
=============================================================================================== test session starts ================================================================================================
platform darwin -- Python 3.12.2, pytest-8.3.4, pluggy-1.5.0 -- /Users/grzegorz/src/Thespian/.venv/bin/python
cachedir: .pytest_cache
rootdir: /Users/grzegorz/src/Thespian
collected 2722 items / 2716 deselected / 6 selected
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[simpleSystemBase] PASSED [ 16%]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocQueueBase] PASSED [ 33%]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocUDPBase] FAILED [ 50%]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocTCPBase] PASSED [ 66%]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocTCPBase-AdminRouting] PASSED [ 83%]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocTCPBase-AdminRoutingTXOnly] PASSED [100%]
===================================================================================================== FAILURES =====================================================================================================
______________________________________________________________________ TestFuncSimpleActorOperations.testSimpleActorAsk50K[multiprocUDPBase] _______________________________________________________________________
self = <thespian.test.test_bigmessages.TestFuncSimpleActorOperations object at 0x102a7a300>, asys = <thespian.actors.ActorSystem object at 0x1012cbaa0>
def testSimpleActorAsk50K(self, asys):
whale = asys.createActor(Whale)
shrimp = asys.createActor(Shrimp)
testdata = (10*1024, 'hello')
r = asys.ask(shrimp, testdata, askTimeout)
assert r == 'hello'
r = asys.ask(whale, testdata, askTimeout)
> assert r == 'hello' * 10 * 1024
E AssertionError: assert None == (('hello' * 10) * 1024)
thespian/test/test_bigmessages.py:54: AssertionError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Declaring transmit of TransportIntent(ActorAddr-(UDP|:61084)-pending-ExpiresIn_0:04:59.998085-<class 'str'>-hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello...-quit_0:04:59.998079) as Poison: Traceback (most recent call last):
File "/Users/grzegorz/src/Thespian/thespian/system/systemCommon.py", line 173, in _send_intent_to_transport
self.transport.scheduleTransmit(self._addrManager, intent)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 214, in scheduleTransmit
self._schedulePreparedIntent(transmitIntent, has_exclusive_flag=has_exclusive_flag)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 316, in _schedulePreparedIntent
if not self._runQueued(has_exclusive_flag=has_exclusive_flag):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 146, in _runQueued
self._submitTransmit(nextTransmit)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 333, in _submitTransmit
self._scheduleTransmitActual(transmitIntent, has_exclusive_flag=has_exclusive_flag)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/UDPTransport.py", line 267, in _scheduleTransmitActual
r = self.socket.sendto(transmitIntent.serMsg,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 40] Message too long
Traceback (most recent call last):
File "/Users/grzegorz/src/Thespian/thespian/system/systemCommon.py", line 173, in _send_intent_to_transport
self.transport.scheduleTransmit(self._addrManager, intent)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 214, in scheduleTransmit
self._schedulePreparedIntent(transmitIntent, has_exclusive_flag=has_exclusive_flag)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 316, in _schedulePreparedIntent
if not self._runQueued(has_exclusive_flag=has_exclusive_flag):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 146, in _runQueued
self._submitTransmit(nextTransmit)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/asyncTransportBase.py", line 333, in _submitTransmit
self._scheduleTransmitActual(transmitIntent, has_exclusive_flag=has_exclusive_flag)
File "/Users/grzegorz/src/Thespian/thespian/system/transport/UDPTransport.py", line 267, in _scheduleTransmitActual
r = self.socket.sendto(transmitIntent.serMsg,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 40] Message too long
================================================================================================= warnings summary =================================================================================================
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocUDPBase]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocTCPBase]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocTCPBase-AdminRouting]
thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocTCPBase-AdminRoutingTXOnly]
/Users/grzegorz/.pyenv/versions/3.12.2/lib/python3.12/multiprocessing/popen_fork.py:66: DeprecationWarning: This process (pid=45664) is multi-threaded, use of fork() may lead to deadlocks in the child.
self.pid = os.fork()
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================================================================================= short test summary info ==============================================================================================
FAILED thespian/test/test_bigmessages.py::TestFuncSimpleActorOperations::testSimpleActorAsk50K[multiprocUDPBase] - AssertionError: assert None == (('hello' * 10) * 1024)
============================================================================= 1 failed, 5 passed, 2716 deselected, 4 warnings in 5.52s =============================================================================
There is a simple explanation:
% sudo sysctl net.inet.udp.maxdgram
net.inet.udp.maxdgram: 9216
After sudo sysctl net.inet.udp.maxdgram=65535 the test passes.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels