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

ftplib.cpython-312.pyc does not appear to be reproducible #124924

Open
raboof opened this issue Oct 3, 2024 · 7 comments
Open

ftplib.cpython-312.pyc does not appear to be reproducible #124924

raboof opened this issue Oct 3, 2024 · 7 comments
Labels
3.12 bugs and security fixes type-bug An unexpected behavior, bug, or error

Comments

@raboof
Copy link

raboof commented Oct 3, 2024

Bug report

Bug description:

Previously, when buiding cpython 3.11 twice on independent infrastructure (for example when building the binary package for the NixOS linux distribution), with the right parameters this process produced a bit-by-bit deterministic result.

For cpython 3.12 (tested with various versions up to 3.12.6), the result is almost deterministic:

It seems specifically ftplib.cpython-312.pyc, ftplib.cpython-312.opt-1.pyc and ftplib.cpython-312.opt-2.pyc may differ between rebuilds. This is strange, as I don't see anything special about the contents of ftplib.py or about the way it is built. Looking at the bytecode with pydisasm from xdis only shows differences in 'code object' addresses, not in 'actual' bytecode.

Does anyone have any idea where this might be coming from?

CPython versions tested on:

3.12

Operating systems tested on:

Linux

@raboof raboof added the type-bug An unexpected behavior, bug, or error label Oct 3, 2024
@raboof raboof changed the title ftplib.cpython-312.pyc does not appear to be deterministic ftplib.cpython-312.pyc does not appear to be reproducible Oct 6, 2024
@picnixz
Copy link
Member

picnixz commented Oct 6, 2024

  1. Is it also the case in 3.13?
  2. Does it happen with other files or is it really only this specific one?
  3. When you say "rebuilds" do you mean something that does configure + make + py_compile?

There was a reproducibility issue in 3.13 because of __static_attributes__. Maybe a similar issue happens in 3.12? (__static_attributes__ is 3.13+ only).

@picnixz picnixz added the 3.12 bugs and security fixes label Oct 6, 2024
@raboof
Copy link
Author

raboof commented Oct 6, 2024

  1. No, I haven't seen this with 3.13 - 3.13.0rc3 seems fully reproducible
  2. Strangely it seems to be specifically this file (in both plain pyc, opt-1 and opt-2 variants)
  3. I'm comparing nix packages built from CI with the same package built locally - indeed all of configure+make+py_compile are part of that

Indeed on 3.13.0rc2 I saw what was likely the __static_attributes__ thing (#124442) - interestingly I didn't see that affect any of the the pyc files, just frozen.o and _bootstrap_python.o, and thus the (static and shared) libraries.

@hacscred
Copy link

hacscred commented Oct 8, 2024

If you know the specific byte code, you can track that to specific source code and then remove lines by bisecting until you find an offending line. Presumably you can then instrument and program the debugger to stop when generating that code and that should be non-deterministic then. Probably such a tool would be of general interest if nobody already built one.

@raboof
Copy link
Author

raboof commented Oct 8, 2024

Like I wrote in the summary:

Looking at the bytecode with pydisasm from xdis only shows differences in 'code object' addresses, not in 'actual' bytecode.

@hacscred
Copy link

hacscred commented Oct 8, 2024

I didn't make a distinction between actual byte code and their addresses.

Either way, one way of finding the issue is my approach. It's ofcourse possible you have a better idea.

@raboof
Copy link
Author

raboof commented Oct 8, 2024

I didn't make a distinction between actual byte code and their addresses.

Gotcha - those addresses are different pretty much 'across the board' in this file though, there's not any particular offending lines in the source code. There's also not much to bisect, this problem appears to exist since early 3.12 rc's.

For example:

 #    5: 1
 #    6: 21
 #    7: 8192
-#    8: <code object Error at 0x7f96f0cbda30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax
4y-python3-3.12.5/lib/python3.12/ftplib.py", line 57>
+#    8: <code object Error at 0x7f059eeb1a30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax
4y-python3-3.12.5/lib/python3.12/ftplib.py", line 57>
 #    9: 'Error'
-#   10: <code object error_reply at 0x7f96f0a72ce0, file "/nix/store/h3i0acpmr8mrjx07519xxmid
v8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 58>
+#   10: <code object error_reply at 0x7f059ec4ace0, file "/nix/store/h3i0acpmr8mrjx07519xxmid
v8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 58>
 #   11: 'error_reply'
-#   12: <code object error_temp at 0x7f96f0a72e80, file "/nix/store/h3i0acpmr8mrjx07519xxmidv
8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 59>
+#   12: <code object error_temp at 0x7f059ec4ae80, file "/nix/store/h3i0acpmr8mrjx07519xxmidv
8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 59>
 #   13: 'error_temp'

It's clear that these correspond to the classes Error, error_reply etc around line 57 of ftplib.py, but otherwise it doesn't seem too helpful.

the full diff
--- one.dis	2024-10-08 14:03:45.043342741 +0200
+++ other.dis	2024-10-08 14:05:03.785590515 +0200
@@ -21,29 +21,29 @@
 #    5: 1
 #    6: 21
 #    7: 8192
-#    8: <code object Error at 0x7f96f0cbda30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 57>
+#    8: <code object Error at 0x7f059eeb1a30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 57>
 #    9: 'Error'
-#   10: <code object error_reply at 0x7f96f0a72ce0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 58>
+#   10: <code object error_reply at 0x7f059ec4ace0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 58>
 #   11: 'error_reply'
-#   12: <code object error_temp at 0x7f96f0a72e80, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 59>
+#   12: <code object error_temp at 0x7f059ec4ae80, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 59>
 #   13: 'error_temp'
-#   14: <code object error_perm at 0x7f96f0a72f50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 60>
+#   14: <code object error_perm at 0x7f059ec4af50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 60>
 #   15: 'error_perm'
-#   16: <code object error_proto at 0x7f96f0a73020, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 61>
+#   16: <code object error_proto at 0x7f059ec4b020, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 61>
 #   17: 'error_proto'
 #   18: '\r\n'
 #   19: b'\r\n'
-#   20: <code object FTP at 0x209e9500, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 74>
+#   20: <code object FTP at 0x26cffa40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 74>
 #   21: 'FTP'
-#   22: <code object FTP_TLS at 0x7f96f0ce7470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 677>
+#   22: <code object FTP_TLS at 0x7f059eedb470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 677>
 #   23: 'FTP_TLS'
-#   24: <code object parse150 at 0x7f96f0cd2330, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 792>
-#   25: <code object parse227 at 0x209b5e10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 812>
-#   26: <code object parse229 at 0x209d3240, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 831>
-#   27: <code object parse257 at 0x7f96f0cd8800, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 852>
-#   28: <code object print_line at 0x7f96f0a5f050, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 874>
-#   29: <code object ftpcp at 0x209f8610, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 879>
-#   30: <code object test at 0x209f8e00, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 901>
+#   24: <code object parse150 at 0x7f059eec6330, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 792>
+#   25: <code object parse227 at 0x26ccc350, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 812>
+#   26: <code object parse229 at 0x26ce9780, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 831>
+#   27: <code object parse257 at 0x7f059eecc800, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 852>
+#   28: <code object print_line at 0x7f059ec32f70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 874>
+#   29: <code object ftpcp at 0x26d0eb50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 879>
+#   30: <code object test at 0x26d0f340, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 901>
 #   31: '__main__'
 #   32: ('', 'I')
 # Names:
@@ -122,7 +122,7 @@
 
  57:          54 PUSH_NULL
               56 LOAD_BUILD_CLASS
-              58 LOAD_CONST           (<code object Error at 0x7f96f0cbda30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 57>)
+              58 LOAD_CONST           (<code object Error at 0x7f059eeb1a30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 57>)
               60 MAKE_FUNCTION        (No arguments)
               62 LOAD_CONST           ("Error")
               64 LOAD_NAME            (Exception)
@@ -131,7 +131,7 @@
 
  58:          76 PUSH_NULL
               78 LOAD_BUILD_CLASS
-              80 LOAD_CONST           (<code object error_reply at 0x7f96f0a72ce0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 58>)
+              80 LOAD_CONST           (<code object error_reply at 0x7f059ec4ace0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 58>)
               82 MAKE_FUNCTION        (No arguments)
               84 LOAD_CONST           ("error_reply")
               86 LOAD_NAME            (Error)
@@ -140,7 +140,7 @@
 
  59:          98 PUSH_NULL
              100 LOAD_BUILD_CLASS
-             102 LOAD_CONST           (<code object error_temp at 0x7f96f0a72e80, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 59>)
+             102 LOAD_CONST           (<code object error_temp at 0x7f059ec4ae80, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 59>)
              104 MAKE_FUNCTION        (No arguments)
              106 LOAD_CONST           ("error_temp")
              108 LOAD_NAME            (Error)
@@ -149,7 +149,7 @@
 
  60:         120 PUSH_NULL
              122 LOAD_BUILD_CLASS
-             124 LOAD_CONST           (<code object error_perm at 0x7f96f0a72f50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 60>)
+             124 LOAD_CONST           (<code object error_perm at 0x7f059ec4af50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 60>)
              126 MAKE_FUNCTION        (No arguments)
              128 LOAD_CONST           ("error_perm")
              130 LOAD_NAME            (Error)
@@ -158,7 +158,7 @@
 
  61:         142 PUSH_NULL
              144 LOAD_BUILD_CLASS
-             146 LOAD_CONST           (<code object error_proto at 0x7f96f0a73020, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 61>)
+             146 LOAD_CONST           (<code object error_proto at 0x7f059ec4b020, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 61>)
              148 MAKE_FUNCTION        (No arguments)
              150 LOAD_CONST           ("error_proto")
              152 LOAD_NAME            (Error)
@@ -179,7 +179,7 @@
 
  74:         182 PUSH_NULL
              184 LOAD_BUILD_CLASS
-             186 LOAD_CONST           (<code object FTP at 0x209e9500, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 74>)
+             186 LOAD_CONST           (<code object FTP at 0x26cffa40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 74>)
              188 MAKE_FUNCTION        (No arguments)
              190 LOAD_CONST           ("FTP")
              192 CALL                 2
@@ -198,7 +198,7 @@
 
 677:         236 PUSH_NULL
              238 LOAD_BUILD_CLASS
-             240 LOAD_CONST           (<code object FTP_TLS at 0x7f96f0ce7470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 677>)
+             240 LOAD_CONST           (<code object FTP_TLS at 0x7f059eedb470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 677>)
              242 MAKE_FUNCTION        (No arguments)
              244 LOAD_CONST           ("FTP_TLS")
              246 LOAD_NAME            (FTP)
@@ -222,35 +222,35 @@
 790:         324 LOAD_CONST           (None)
              326 STORE_GLOBAL         (_150_re)
 
-792:         328 LOAD_CONST           (<code object parse150 at 0x7f96f0cd2330, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 792>)
+792:         328 LOAD_CONST           (<code object parse150 at 0x7f059eec6330, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 792>)
              330 MAKE_FUNCTION        (No arguments)
              332 STORE_NAME           (parse150)
 
 810:         334 LOAD_CONST           (None)
              336 STORE_GLOBAL         (_227_re)
 
-812:         338 LOAD_CONST           (<code object parse227 at 0x209b5e10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 812>)
+812:         338 LOAD_CONST           (<code object parse227 at 0x26ccc350, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 812>)
              340 MAKE_FUNCTION        (No arguments)
              342 STORE_NAME           (parse227)
 
-831:         344 LOAD_CONST           (<code object parse229 at 0x209d3240, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 831>)
+831:         344 LOAD_CONST           (<code object parse229 at 0x26ce9780, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 831>)
              346 MAKE_FUNCTION        (No arguments)
              348 STORE_NAME           (parse229)
 
-852:         350 LOAD_CONST           (<code object parse257 at 0x7f96f0cd8800, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 852>)
+852:         350 LOAD_CONST           (<code object parse257 at 0x7f059eecc800, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 852>)
              352 MAKE_FUNCTION        (No arguments)
              354 STORE_NAME           (parse257)
 
-874:         356 LOAD_CONST           (<code object print_line at 0x7f96f0a5f050, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 874>)
+874:         356 LOAD_CONST           (<code object print_line at 0x7f059ec32f70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 874>)
              358 MAKE_FUNCTION        (No arguments)
              360 STORE_NAME           (print_line)
 
 879:         362 LOAD_CONST           (('', 'I'))
-             364 LOAD_CONST           (<code object ftpcp at 0x209f8610, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 879>)
+             364 LOAD_CONST           (<code object ftpcp at 0x26d0eb50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 879>)
              366 MAKE_FUNCTION        (default)
              368 STORE_NAME           (ftpcp)
 
-901:         370 LOAD_CONST           (<code object test at 0x209f8e00, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 901>)
+901:         370 LOAD_CONST           (<code object test at 0x26d0f340, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 901>)
              372 MAKE_FUNCTION        (No arguments)
              374 STORE_NAME           (test)
 
@@ -427,47 +427,47 @@
 #    6: False
 #    7: 'utf-8'
 #    8: ('encoding',)
-#    9: <code object __init__ at 0x7f96f0a49e60, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 109>
-#   10: <code object __enter__ at 0x7f96f0a730f0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 125>
-#   11: <code object __exit__ at 0x7f96f0ecf7e0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 129>
-#   12: <code object connect at 0x209e5360, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 139>
-#   13: <code object getwelcome at 0x7f96f0cf5570, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 165>
-#   14: <code object set_debuglevel at 0x7f96f0a5ea30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 172>
-#   15: <code object set_pasv at 0x7f96f0a5e950, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 181>
-#   16: <code object sanitize at 0x7f96f0a49fb0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 188>
-#   17: <code object putline at 0x7f96f0d57670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 195>
-#   18: <code object putcmd at 0x7f96f0cf5a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 205>
-#   19: <code object getline at 0x209e0110, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 211>
-#   20: <code object getmultiline at 0x7f96f0c61a50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 229>
-#   21: <code object getresp at 0x7f96f0ecf990, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 243>
-#   22: <code object voidresp at 0x7f96f0aec360, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 257>
-#   23: <code object abort at 0x7f96f0ecfb40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 264>
-#   24: <code object sendcmd at 0x7f96f0aec470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 278>
-#   25: <code object voidcmd at 0x7f96f0aec690, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 283>
-#   26: <code object sendport at 0x7f96f0cb6870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 288>
-#   27: <code object sendeprt at 0x7f96f0c6ab50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 298>
-#   28: <code object makeport at 0x209e9090, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 311>
-#   29: <code object makepasv at 0x209e92e0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 324>
-#   30: <code object ntransfercmd at 0x209e03b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 336>
-#   31: <code object transfercmd at 0x7f96f0cf3b40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 391>
-#   32: <code object login at 0x7f96f0cd1a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 395>
-#   33: <code object retrbinary at 0x209f1420, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 421>
-#   34: <code object retrlines at 0x2099e500, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 444>
-#   35: <code object storbinary at 0x209d2b30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 479>
-#   36: <code object storlines at 0x20990d50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 505>
-#   37: <code object acct at 0x7f96f0cf3d20, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 536>
-#   38: <code object nlst at 0x7f96f0ce7210, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 541>
-#   39: <code object dir at 0x7f96f0ac4450, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 550>
-#   40: <code object mlsd at 0x209d2fd0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 565>
-#   41: <code object rename at 0x7f96f0cf5e30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 593>
-#   42: <code object delete at 0x7f96f0a6a550, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 600>
-#   43: <code object cwd at 0x7f96f0cd8030, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 608>
-#   44: <code object size at 0x7f96f0cf5f70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 621>
-#   45: <code object mkd at 0x7f96f0ce7340, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 629>
-#   46: <code object rmd at 0x7f96f0cf3e10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 638>
-#   47: <code object pwd at 0x7f96f0a6a670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 642>
-#   48: <code object quit at 0x7f96f0aec7a0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 651>
-#   49: <code object close at 0x7f96f0cd2170, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 657>
+#    9: <code object __init__ at 0x7f059ec1de60, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 109>
+#   10: <code object __enter__ at 0x7f059ec4b0f0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 125>
+#   11: <code object __exit__ at 0x7f059f0cf7e0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 129>
+#   12: <code object connect at 0x26cfb8a0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 139>
+#   13: <code object getwelcome at 0x7f059eee9570, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 165>
+#   14: <code object set_debuglevel at 0x7f059ec32a30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 172>
+#   15: <code object set_pasv at 0x7f059ec32950, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 181>
+#   16: <code object sanitize at 0x7f059ec1dfb0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 188>
+#   17: <code object putline at 0x7f059ef57670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 195>
+#   18: <code object putcmd at 0x7f059eee9a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 205>
+#   19: <code object getline at 0x26cf6650, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 211>
+#   20: <code object getmultiline at 0x7f059ee55a50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 229>
+#   21: <code object getresp at 0x7f059f0cf990, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 243>
+#   22: <code object voidresp at 0x7f059ecc0360, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 257>
+#   23: <code object abort at 0x7f059f0cfb40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 264>
+#   24: <code object sendcmd at 0x7f059ecc0470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 278>
+#   25: <code object voidcmd at 0x7f059ecc0690, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 283>
+#   26: <code object sendport at 0x7f059eeaa870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 288>
+#   27: <code object sendeprt at 0x7f059ee5eb50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 298>
+#   28: <code object makeport at 0x26cff5d0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 311>
+#   29: <code object makepasv at 0x26cff820, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 324>
+#   30: <code object ntransfercmd at 0x26cf68f0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 336>
+#   31: <code object transfercmd at 0x7f059eee7b40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 391>
+#   32: <code object login at 0x7f059eec5a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 395>
+#   33: <code object retrbinary at 0x26d07960, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 421>
+#   34: <code object retrlines at 0x26cb4a40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 444>
+#   35: <code object storbinary at 0x26ce9070, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 479>
+#   36: <code object storlines at 0x26ca7290, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 505>
+#   37: <code object acct at 0x7f059eee7d20, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 536>
+#   38: <code object nlst at 0x7f059eedb210, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 541>
+#   39: <code object dir at 0x7f059ec9c450, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 550>
+#   40: <code object mlsd at 0x26ce9510, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 565>
+#   41: <code object rename at 0x7f059eee9e30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 593>
+#   42: <code object delete at 0x7f059ec3e550, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 600>
+#   43: <code object cwd at 0x7f059eecc030, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 608>
+#   44: <code object size at 0x7f059eee9f70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 621>
+#   45: <code object mkd at 0x7f059eedb340, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 629>
+#   46: <code object rmd at 0x7f059eee7e10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 638>
+#   47: <code object pwd at 0x7f059ec3e670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 642>
+#   48: <code object quit at 0x7f059ecc07a0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 651>
+#   49: <code object close at 0x7f059eec6170, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 657>
 #   50: ('', 0, -999, None)
 #   51: (None,)
 #   52: ('', '', '')
@@ -582,181 +582,181 @@
 
 109:          66 LOAD_CONST           (('encoding',))
               68 BUILD_CONST_KEY_MAP  1
-              70 LOAD_CONST           (<code object __init__ at 0x7f96f0a49e60, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 109>)
+              70 LOAD_CONST           (<code object __init__ at 0x7f059ec1de60, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 109>)
               72 MAKE_FUNCTION        (default, keyword-only)
               74 STORE_NAME           (__init__)
 
-125:          76 LOAD_CONST           (<code object __enter__ at 0x7f96f0a730f0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 125>)
+125:          76 LOAD_CONST           (<code object __enter__ at 0x7f059ec4b0f0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 125>)
               78 MAKE_FUNCTION        (No arguments)
               80 STORE_NAME           (__enter__)
 
-129:          82 LOAD_CONST           (<code object __exit__ at 0x7f96f0ecf7e0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 129>)
+129:          82 LOAD_CONST           (<code object __exit__ at 0x7f059f0cf7e0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 129>)
               84 MAKE_FUNCTION        (No arguments)
               86 STORE_NAME           (__exit__)
 
 139:          88 LOAD_CONST           (('', 0, -999, None))
-              90 LOAD_CONST           (<code object connect at 0x209e5360, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 139>)
+              90 LOAD_CONST           (<code object connect at 0x26cfb8a0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 139>)
               92 MAKE_FUNCTION        (default)
               94 STORE_NAME           (connect)
 
-165:          96 LOAD_CONST           (<code object getwelcome at 0x7f96f0cf5570, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 165>)
+165:          96 LOAD_CONST           (<code object getwelcome at 0x7f059eee9570, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 165>)
               98 MAKE_FUNCTION        (No arguments)
              100 STORE_NAME           (getwelcome)
 
-172:         102 LOAD_CONST           (<code object set_debuglevel at 0x7f96f0a5ea30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 172>)
+172:         102 LOAD_CONST           (<code object set_debuglevel at 0x7f059ec32a30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 172>)
              104 MAKE_FUNCTION        (No arguments)
              106 STORE_NAME           (set_debuglevel)
 
 179:         108 LOAD_NAME            (set_debuglevel)
              110 STORE_NAME           (debug)
 
-181:         112 LOAD_CONST           (<code object set_pasv at 0x7f96f0a5e950, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 181>)
+181:         112 LOAD_CONST           (<code object set_pasv at 0x7f059ec32950, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 181>)
              114 MAKE_FUNCTION        (No arguments)
              116 STORE_NAME           (set_pasv)
 
-188:         118 LOAD_CONST           (<code object sanitize at 0x7f96f0a49fb0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 188>)
+188:         118 LOAD_CONST           (<code object sanitize at 0x7f059ec1dfb0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 188>)
              120 MAKE_FUNCTION        (No arguments)
              122 STORE_NAME           (sanitize)
 
-195:         124 LOAD_CONST           (<code object putline at 0x7f96f0d57670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 195>)
+195:         124 LOAD_CONST           (<code object putline at 0x7f059ef57670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 195>)
              126 MAKE_FUNCTION        (No arguments)
              128 STORE_NAME           (putline)
 
-205:         130 LOAD_CONST           (<code object putcmd at 0x7f96f0cf5a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 205>)
+205:         130 LOAD_CONST           (<code object putcmd at 0x7f059eee9a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 205>)
              132 MAKE_FUNCTION        (No arguments)
              134 STORE_NAME           (putcmd)
 
-211:         136 LOAD_CONST           (<code object getline at 0x209e0110, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 211>)
+211:         136 LOAD_CONST           (<code object getline at 0x26cf6650, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 211>)
              138 MAKE_FUNCTION        (No arguments)
              140 STORE_NAME           (getline)
 
-229:         142 LOAD_CONST           (<code object getmultiline at 0x7f96f0c61a50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 229>)
+229:         142 LOAD_CONST           (<code object getmultiline at 0x7f059ee55a50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 229>)
              144 MAKE_FUNCTION        (No arguments)
              146 STORE_NAME           (getmultiline)
 
-243:         148 LOAD_CONST           (<code object getresp at 0x7f96f0ecf990, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 243>)
+243:         148 LOAD_CONST           (<code object getresp at 0x7f059f0cf990, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 243>)
              150 MAKE_FUNCTION        (No arguments)
              152 STORE_NAME           (getresp)
 
-257:         154 LOAD_CONST           (<code object voidresp at 0x7f96f0aec360, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 257>)
+257:         154 LOAD_CONST           (<code object voidresp at 0x7f059ecc0360, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 257>)
              156 MAKE_FUNCTION        (No arguments)
              158 STORE_NAME           (voidresp)
 
-264:         160 LOAD_CONST           (<code object abort at 0x7f96f0ecfb40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 264>)
+264:         160 LOAD_CONST           (<code object abort at 0x7f059f0cfb40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 264>)
              162 MAKE_FUNCTION        (No arguments)
              164 STORE_NAME           (abort)
 
-278:         166 LOAD_CONST           (<code object sendcmd at 0x7f96f0aec470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 278>)
+278:         166 LOAD_CONST           (<code object sendcmd at 0x7f059ecc0470, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 278>)
              168 MAKE_FUNCTION        (No arguments)
              170 STORE_NAME           (sendcmd)
 
-283:         172 LOAD_CONST           (<code object voidcmd at 0x7f96f0aec690, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 283>)
+283:         172 LOAD_CONST           (<code object voidcmd at 0x7f059ecc0690, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 283>)
              174 MAKE_FUNCTION        (No arguments)
              176 STORE_NAME           (voidcmd)
 
-288:         178 LOAD_CONST           (<code object sendport at 0x7f96f0cb6870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 288>)
+288:         178 LOAD_CONST           (<code object sendport at 0x7f059eeaa870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 288>)
              180 MAKE_FUNCTION        (No arguments)
              182 STORE_NAME           (sendport)
 
-298:         184 LOAD_CONST           (<code object sendeprt at 0x7f96f0c6ab50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 298>)
+298:         184 LOAD_CONST           (<code object sendeprt at 0x7f059ee5eb50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 298>)
              186 MAKE_FUNCTION        (No arguments)
              188 STORE_NAME           (sendeprt)
 
-311:         190 LOAD_CONST           (<code object makeport at 0x209e9090, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 311>)
+311:         190 LOAD_CONST           (<code object makeport at 0x26cff5d0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 311>)
              192 MAKE_FUNCTION        (No arguments)
              194 STORE_NAME           (makeport)
 
-324:         196 LOAD_CONST           (<code object makepasv at 0x209e92e0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 324>)
+324:         196 LOAD_CONST           (<code object makepasv at 0x26cff820, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 324>)
              198 MAKE_FUNCTION        (No arguments)
              200 STORE_NAME           (makepasv)
 
 336:         202 LOAD_CONST           ((None,))
-             204 LOAD_CONST           (<code object ntransfercmd at 0x209e03b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 336>)
+             204 LOAD_CONST           (<code object ntransfercmd at 0x26cf68f0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 336>)
              206 MAKE_FUNCTION        (default)
              208 STORE_NAME           (ntransfercmd)
 
 391:         210 LOAD_CONST           ((None,))
-             212 LOAD_CONST           (<code object transfercmd at 0x7f96f0cf3b40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 391>)
+             212 LOAD_CONST           (<code object transfercmd at 0x7f059eee7b40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 391>)
              214 MAKE_FUNCTION        (default)
              216 STORE_NAME           (transfercmd)
 
 395:         218 LOAD_CONST           (('', '', ''))
-             220 LOAD_CONST           (<code object login at 0x7f96f0cd1a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 395>)
+             220 LOAD_CONST           (<code object login at 0x7f059eec5a70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 395>)
              222 MAKE_FUNCTION        (default)
              224 STORE_NAME           (login)
 
 421:         226 LOAD_CONST           ((8192, None))
-             228 LOAD_CONST           (<code object retrbinary at 0x209f1420, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 421>)
+             228 LOAD_CONST           (<code object retrbinary at 0x26d07960, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 421>)
              230 MAKE_FUNCTION        (default)
              232 STORE_NAME           (retrbinary)
 
 444:         234 LOAD_CONST           ((None,))
-             236 LOAD_CONST           (<code object retrlines at 0x2099e500, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 444>)
+             236 LOAD_CONST           (<code object retrlines at 0x26cb4a40, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 444>)
              238 MAKE_FUNCTION        (default)
              240 STORE_NAME           (retrlines)
 
 479:         242 LOAD_CONST           ((8192, None, None))
-             244 LOAD_CONST           (<code object storbinary at 0x209d2b30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 479>)
+             244 LOAD_CONST           (<code object storbinary at 0x26ce9070, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 479>)
              246 MAKE_FUNCTION        (default)
              248 STORE_NAME           (storbinary)
 
 505:         250 LOAD_CONST           ((None,))
-             252 LOAD_CONST           (<code object storlines at 0x20990d50, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 505>)
+             252 LOAD_CONST           (<code object storlines at 0x26ca7290, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 505>)
              254 MAKE_FUNCTION        (default)
              256 STORE_NAME           (storlines)
 
-536:         258 LOAD_CONST           (<code object acct at 0x7f96f0cf3d20, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 536>)
+536:         258 LOAD_CONST           (<code object acct at 0x7f059eee7d20, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 536>)
              260 MAKE_FUNCTION        (No arguments)
              262 STORE_NAME           (acct)
 
-541:         264 LOAD_CONST           (<code object nlst at 0x7f96f0ce7210, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 541>)
+541:         264 LOAD_CONST           (<code object nlst at 0x7f059eedb210, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 541>)
              266 MAKE_FUNCTION        (No arguments)
              268 STORE_NAME           (nlst)
 
-550:         270 LOAD_CONST           (<code object dir at 0x7f96f0ac4450, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 550>)
+550:         270 LOAD_CONST           (<code object dir at 0x7f059ec9c450, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 550>)
              272 MAKE_FUNCTION        (No arguments)
              274 STORE_NAME           (dir)
 
 565:         276 LOAD_CONST           ("")
              278 BUILD_LIST           0
              280 BUILD_TUPLE          2
-             282 LOAD_CONST           (<code object mlsd at 0x209d2fd0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 565>)
+             282 LOAD_CONST           (<code object mlsd at 0x26ce9510, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 565>)
              284 MAKE_FUNCTION        (default)
              286 STORE_NAME           (mlsd)
 
-593:         288 LOAD_CONST           (<code object rename at 0x7f96f0cf5e30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 593>)
+593:         288 LOAD_CONST           (<code object rename at 0x7f059eee9e30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 593>)
              290 MAKE_FUNCTION        (No arguments)
              292 STORE_NAME           (rename)
 
-600:         294 LOAD_CONST           (<code object delete at 0x7f96f0a6a550, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 600>)
+600:         294 LOAD_CONST           (<code object delete at 0x7f059ec3e550, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 600>)
              296 MAKE_FUNCTION        (No arguments)
              298 STORE_NAME           (delete)
 
-608:         300 LOAD_CONST           (<code object cwd at 0x7f96f0cd8030, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 608>)
+608:         300 LOAD_CONST           (<code object cwd at 0x7f059eecc030, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 608>)
              302 MAKE_FUNCTION        (No arguments)
              304 STORE_NAME           (cwd)
 
-621:         306 LOAD_CONST           (<code object size at 0x7f96f0cf5f70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 621>)
+621:         306 LOAD_CONST           (<code object size at 0x7f059eee9f70, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 621>)
              308 MAKE_FUNCTION        (No arguments)
              310 STORE_NAME           (size)
 
-629:         312 LOAD_CONST           (<code object mkd at 0x7f96f0ce7340, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 629>)
+629:         312 LOAD_CONST           (<code object mkd at 0x7f059eedb340, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 629>)
              314 MAKE_FUNCTION        (No arguments)
              316 STORE_NAME           (mkd)
 
-638:         318 LOAD_CONST           (<code object rmd at 0x7f96f0cf3e10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 638>)
+638:         318 LOAD_CONST           (<code object rmd at 0x7f059eee7e10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 638>)
              320 MAKE_FUNCTION        (No arguments)
              322 STORE_NAME           (rmd)
 
-642:         324 LOAD_CONST           (<code object pwd at 0x7f96f0a6a670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 642>)
+642:         324 LOAD_CONST           (<code object pwd at 0x7f059ec3e670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 642>)
              326 MAKE_FUNCTION        (No arguments)
              328 STORE_NAME           (pwd)
 
-651:         330 LOAD_CONST           (<code object quit at 0x7f96f0aec7a0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 651>)
+651:         330 LOAD_CONST           (<code object quit at 0x7f059ecc07a0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 651>)
              332 MAKE_FUNCTION        (No arguments)
              334 STORE_NAME           (quit)
 
-657:         336 LOAD_CONST           (<code object close at 0x7f96f0cd2170, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 657>)
+657:         336 LOAD_CONST           (<code object close at 0x7f059eec6170, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 657>)
              338 MAKE_FUNCTION        (No arguments)
              340 STORE_NAME           (close)
              342 RETURN_CONST         (None)
@@ -777,14 +777,14 @@
 #    2: None
 #    3: 'utf-8'
 #    4: ('context', 'timeout', 'source_address', 'encoding')
-#    5: <code object __init__ at 0x7f96f0cf60b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 711>
-#    6: <code object login at 0x7f96f0ac45b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 721>
-#    7: <code object auth at 0x209ab5d0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 726>
-#    8: <code object ccc at 0x7f96f0cd8670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 738>
-#    9: <code object prot_p at 0x7f96f0a6a8b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 746>
-#   10: <code object prot_c at 0x7f96f0c43d30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 762>
-#   11: <code object ntransfercmd at 0x7f96f0ac4710, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 770>
-#   12: <code object abort at 0x7f96f0ac4870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 777>
+#    5: <code object __init__ at 0x7f059eeea0b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 711>
+#    6: <code object login at 0x7f059ec9c5b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 721>
+#    7: <code object auth at 0x26cc1b10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 726>
+#    8: <code object ccc at 0x7f059eecc670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 738>
+#    9: <code object prot_p at 0x7f059ec3e8b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 746>
+#   10: <code object prot_c at 0x7f059ee37d30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 762>
+#   11: <code object ntransfercmd at 0x7f059ec9c710, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 770>
+#   12: <code object abort at 0x7f059ec9c870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 777>
 #   13: ('', '', '', '')
 #   14: ('', '', '', True)
 #   15: (None,)
@@ -828,41 +828,41 @@
               28 BUILD_CONST_KEY_MAP  4
               30 LOAD_CLOSURE         (__class__)
               32 BUILD_TUPLE          1
-              34 LOAD_CONST           (<code object __init__ at 0x7f96f0cf60b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 711>)
+              34 LOAD_CONST           (<code object __init__ at 0x7f059eeea0b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 711>)
               36 MAKE_FUNCTION        (default, keyword-only, closure)
               38 STORE_NAME           (__init__)
 
 721:          40 LOAD_CONST           (('', '', '', True))
               42 LOAD_CLOSURE         (__class__)
               44 BUILD_TUPLE          1
-              46 LOAD_CONST           (<code object login at 0x7f96f0ac45b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 721>)
+              46 LOAD_CONST           (<code object login at 0x7f059ec9c5b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 721>)
               48 MAKE_FUNCTION        (default, closure)
               50 STORE_NAME           (login)
 
-726:          52 LOAD_CONST           (<code object auth at 0x209ab5d0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 726>)
+726:          52 LOAD_CONST           (<code object auth at 0x26cc1b10, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 726>)
               54 MAKE_FUNCTION        (No arguments)
               56 STORE_NAME           (auth)
 
-738:          58 LOAD_CONST           (<code object ccc at 0x7f96f0cd8670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 738>)
+738:          58 LOAD_CONST           (<code object ccc at 0x7f059eecc670, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 738>)
               60 MAKE_FUNCTION        (No arguments)
               62 STORE_NAME           (ccc)
 
-746:          64 LOAD_CONST           (<code object prot_p at 0x7f96f0a6a8b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 746>)
+746:          64 LOAD_CONST           (<code object prot_p at 0x7f059ec3e8b0, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 746>)
               66 MAKE_FUNCTION        (No arguments)
               68 STORE_NAME           (prot_p)
 
-762:          70 LOAD_CONST           (<code object prot_c at 0x7f96f0c43d30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 762>)
+762:          70 LOAD_CONST           (<code object prot_c at 0x7f059ee37d30, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 762>)
               72 MAKE_FUNCTION        (No arguments)
               74 STORE_NAME           (prot_c)
 
 770:          76 LOAD_CONST           ((None,))
               78 LOAD_CLOSURE         (__class__)
               80 BUILD_TUPLE          1
-              82 LOAD_CONST           (<code object ntransfercmd at 0x7f96f0ac4710, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 770>)
+              82 LOAD_CONST           (<code object ntransfercmd at 0x7f059ec9c710, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 770>)
               84 MAKE_FUNCTION        (default, closure)
               86 STORE_NAME           (ntransfercmd)
 
-777:          88 LOAD_CONST           (<code object abort at 0x7f96f0ac4870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 777>)
+777:          88 LOAD_CONST           (<code object abort at 0x7f059ec9c870, file "/nix/store/h3i0acpmr8mrjx07519xxmidv8mpax4y-python3-3.12.5/lib/python3.12/ftplib.py", line 777>)
               90 MAKE_FUNCTION        (No arguments)
               92 STORE_NAME           (abort)
               94 LOAD_CLOSURE         (__class__)

one way of finding the issue is my approach. It's ofcourse possible you have a better idea.

I'm not sure where to go from here, what would be your next step?

@hacscred
Copy link

hacscred commented Oct 8, 2024

What I meant is:

Identify one of the outputs as the desired output (that is a mapping from byte address to byte code)/a "file".

Open a terminal. In this terminal find the exact dynamic program point at which the differently generated value is generated in a debugger, like gdb.

So, that will give you two pairs of type: (address, value) with potentially completely different values. However, you should be able to construct a mathematical expression (and certainly in a time travelling debugger (not sure whether gdb has a good implementation of that)) computing just that one wrong tuple value. By your observations it is impossible for that to be deterministic. I suspect that there are data structures being used without deterministic properties or possibly (but less likely) even parallelism.

The mathematical expression can be obtained by going up some frames and writing down what happens in a separate file or on a piece of paper.

If you do the previous process in two separate terminals for two different executions resulting in two different outputs at the same time, you can compare frame by frame what's happening and when the first dynamic difference happens, because that's what you are looking for. Then it's just repeating the whole progress for every new "first" dynamic difference, until the problem is resolved.

So, the brute force method is writing down the whole mathematical expression and a slightly more informed one is looking into the general structure of the code generator (which is not exactly an example of engineering).

I don't think debuggers exist which can extract the expression I discussed automatically, which kind of shows how bad tools still are, but I think gdb could be programmed to output such an expression, if you are feeling adventurous.

raboof added a commit to raboof/infra that referenced this issue Oct 13, 2024
mainly for one-off tests, such as seeing if I can further reproduce
python/cpython#124924
github-merge-queue bot pushed a commit to nix-community/infra that referenced this issue Oct 13, 2024
mainly for one-off tests, such as seeing if I can further reproduce
python/cpython#124924
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.12 bugs and security fixes type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

3 participants