Skip to content

bpo-37596: Update test_deterministic_sets to correctly handle different string hash algorithms - #28147

Merged
brandtbucher merged 1 commit into
python:mainfrom
brandtbucher:fix-marshal-tests
Sep 4, 2021
Merged

bpo-37596: Update test_deterministic_sets to correctly handle different string hash algorithms#28147
brandtbucher merged 1 commit into
python:mainfrom
brandtbucher:fix-marshal-tests

Conversation

@brandtbucher

@brandtbucherbrandtbucher commented Sep 3, 2021

Copy link
Copy Markdown
Member
$ forHASH_ALGORITHMin siphash24 fnv
>do> ./configure --with-hash-algorithm=$HASH_ALGORITHM&> /dev/null
> make -j &> /dev/null
> ./python -c 'import sys; print(f"{sys.hash_info.algorithm = }")'> ./python -m test test_marshal
>done
sys.hash_info.algorithm = 'siphash24'
0:00:00 load avg: 3.28 Run tests sequentially
0:00:00 load avg: 3.28 [1/1] test_marshal
== Tests result: SUCCESS ==
1 test OK.
Total duration: 316 ms
Tests result: SUCCESS
sys.hash_info.algorithm = 'fnv'
0:00:00 load avg: 15.70 Run tests sequentially
0:00:00 load avg: 15.70 [1/1] test_marshal
== Tests result: SUCCESS ==
1 test OK.
Total duration: 311 ms
Tests result: SUCCESS

https://bugs.python.org/issue37596

@brandtbucherbrandtbucher added tests Tests in the Lib/test dir skip news labels Sep 3, 2021
@brandtbucherbrandtbucher added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Sep 3, 2021
@bedevere-bot

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @brandtbucher for commit e72a25b 🤖

If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again.

@bedevere-botbedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Sep 3, 2021

@gvanrossumgvanrossum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

So did you just try different strings until you found one that hashes the same under fnv and siphash24?? That's amazing. (I didn't even know we had all this machinery -- all I know is that we have "hash randomization" and that you can force the seed by setting an env var. :-)

@brandtbucher

Copy link
Copy Markdown
MemberAuthor

So did you just try different strings until you found one that hashes the same under fnv and siphash24?? That's amazing.

No, I just needed to find one that hashes in such a way that sets containing them have different orders under PYTHONHASHSEED=0 and PYTHONHASHSEED=1 for each algorithm! It's a much easier task. 🙃

(I didn't even know we had all this machinery -- all I know is that we have "hash randomization" and that you can force the seed by setting an env var. :-)

Same, I learned a lot about this stuff today!

@brandtbucher

Copy link
Copy Markdown
MemberAuthor

That buildbot's been failing for a while with that same error. I'll open an issue for it.

@brandtbucher
brandtbucher merged commit 3beef86 into python:mainSep 4, 2021
@bedevere-bot

Copy link
Copy Markdown

@brandtbucher: Please replace # with GH- in the commit message next time. Thanks!

@bedevere-bot

Copy link
Copy Markdown

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

Hi! The buildbot AMD64 Fedora Stable LTO 3.x has failed when building commit 3beef86.

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/271/builds/562) and take a look at the build logs.
  4. Check if the failure is related to this commit (3beef86) 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/271/builds/562

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

== Tests result: ENV CHANGED ==

413 tests OK.

10 slowest tests:

  • test_peg_generator: 3 min 34 sec
  • test_concurrent_futures: 2 min 31 sec
  • test_gdb: 1 min 43 sec
  • test_nntplib: 1 min 20 sec
  • test_multiprocessing_spawn: 1 min 7 sec
  • test_multiprocessing_forkserver: 58.9 sec
  • test_asyncio: 56.2 sec
  • test_multiprocessing_fork: 53.0 sec
  • test_signal: 47.1 sec
  • test_io: 37.1 sec

1 test altered the execution environment:
test_ftplib

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

Total duration: 4 min 43 sec

Click to see traceback logs
Traceback (most recent call last):
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/threading.py", line 1009, in _bootstrap_innerself.run()
^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/test/test_ftplib.py", line 297, in run
asyncore.loop(timeout=0.1, count=1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/asyncore.py", line 214, in loop
poll_fun(timeout, map)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/asyncore.py", line 157, in poll
read(obj)
^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/asyncore.py", line 94, in read
obj.handle_error()
^^^^^^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/test/test_ftplib.py", line 139, in handle_errorraiseException^^^^^^^^^^^^^^^
Exception
Traceback (most recent call last):
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/asyncore.py", line 90, in read
obj.handle_read_event()
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/asyncore.py", line 427, in handle_read_eventself.handle_read()
^^^^^^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/asynchat.py", line 179, in handle_readself.found_terminator()
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/test/test_ftplib.py", line 134, in found_terminator
method(arg)
^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/test/test_ftplib.py", line 159, in cmd_pasv
conn, addr = sock.accept()
^^^^^^^^^^^^^
File "/home/buildbot/buildarea/3.x.cstratak-fedora-stable-x86_64.lto/build/Lib/socket.py", line 293, in accept
fd, addr =self._accept()
^^^^^^^^^^^^^^TimeoutError: timed out

@brandtbucher
brandtbucher deleted the fix-marshal-tests branch July 21, 2022 20:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip newstestsTests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@brandtbucher@bedevere-bot@gvanrossum@the-knights-who-say-ni