8000 test_syslog: test_syslog_threaded() crashs randomly on ARM64 macOS 3.x · Issue #98178 · python/cpython · GitHub
  • [go: up one dir, main page]

    Skip to content
    test_syslog: test_syslog_threaded() crashs randomly on ARM64 macOS 3.x #98178
    Closed
    @vstinner

    Description

    @vstinner

    test_syslog crashed 4 times in the last 2 days, each time in the test_syslog_threaded() function, on the "ARM64 macOS 3.x" buildbot:

    Example of crash:

    Fatal Python error: Segmentation fault
    
    Thread 0x000000017bbcf000 (most recent call first):
      File "/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/test/test_syslog.py", line 67 in logger
      File "/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/threading.py", line 986 in run
      File "/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/threading.py", line 1049 in _bootstrap_inner
      File "/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/threading.pymake: *** [buildbottest] Segmentation fault: 11
    

    This crash is on the syslog.syslog() call in a thread. Code:

        @threading_helper.requires_working_threading()
        def test_syslog_threaded(self):
            start = threading.Event()
            stop = False
            def opener():
                start.wait(10)
                i = 1
                while not stop:
                    syslog.openlog(f'python-test-{i}')  # new string object
                    i += 1
            def logger():
                start.wait(10)
                while not stop:
                    syslog.syslog('test message from python test_syslog') # <=== HERE: line 67
    
            orig_si = sys.getswitchinterval()
            support.setswitchinterval(1e-9)
            try:
                threads = [threading.Thread(target=opener)]
                threads += [threading.Thread(target=logger) for k in range(10)]
                with threading_helper.start_threads(threads):
                    start.set()
                    time.sleep(0.1)
                    stop = True
            finally:
                sys.setswitchinterval(orig_si)

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      type-bugAn unexpected behavior, bug, or error

      Projects

      No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        0