Bug#1133977: uwsgi breaks uwsgi-plugin-python autopkgtest on s390x: Segmentation Fault
Paul Gevers <[email protected]>
| Newsgroups | gmane.linux.debian.ports.s390 |
|---|---|
| Message-ID | <718b59c3-7688-432c-80ed-3aeba4c1c215__42841.8751269177$1776320861$gmane$org@debian.org> |
Source: uwsgi, uwsgi-plugin-python Control: found -1 uwsgi/2.0.31-4 Control: found -1 uwsgi-plugin-python/0.0.2 Severity: serious Tags: sid forky User: [email protected] Usertags: breaks needs-update X-Debbugs-CC: [email protected] User: [email protected] Usertag: s390x Dear maintainer(s), With a recent upload of uwsgi the autopkgtest of uwsgi-plugin-python fails in testing on s390x when that autopkgtest is run with the binary packages of uwsgi from unstable. It passes when run with only packages from testing. In tabular form: pass fail uwsgi from testing 2.0.31-4 uwsgi-plugin-python from testing 0.0.2 all others from testing from testing I copied some of the output at the bottom of this report. Currently this regression is blocking the migration of uwsgi to testing [1]. Due to the nature of this issue, I filed this bug report against both packages. Can you please investigate the situation and reassign the bug to the right package? More information about this bug and the reason for filing it can be found on https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation Paul [1] https://qa.debian.org/excuses.php?package=uwsgi https://ci.debian.net/data/autopkgtest/testing/s390x/u/uwsgi-plugin-python/70251971/log.gz 56s test_cgi_helloworld (__main__.UwsgiTest.test_cgi_helloworld) ... skipped "['cgi'] plugins not available but required for this test case" 56s test_jvm_hellworld (__main__.UwsgiTest.test_jvm_hellworld) ... skipped "['jvm'] plugins not available but required for this test case" 56s test_mountpoints (__main__.UwsgiTest.test_mountpoints) ... ERROR 56s [uWSGI] getting INI configuration from /usr/src/uwsgi/t/python/manage_script_name/manage_script_name_test.ini 56s *** Starting uWSGI 2.0.31-debian (64bit) on [Mon Apr 13 23:30:43 2026] *** 56s compiled with version: 15.2.0 on 09 March 2026 22:28:50 56s os: Linux-6.12.74+deb13+1-s390x #1 SMP Debian 6.12.74-2 (2026-03-08) 56s nodename: ci-103-5a0b77e7 56s machine: s390x 56s clock source: unix 56s pcre jit disabled 56s *** big endian arch detected *** 56s detected number of CPU cores: 10 56s current working directory: /tmp/autopkgtest-lxc.dv57h8nf/downtmp/build.3pl/src 56s detected binary path: /usr/bin/uwsgi-core 56s *** WARNING: you are running uWSGI without its master process manager *** 56s your memory page size is 4096 bytes 56s detected max file descriptor number: 1024 56s lock engine: pthread robust mutexes 56s thunder lock: disabled (you can enable it with --thunder-lock) 56s uwsgi socket 0 bound to TCP address 127.0.0.1:8000 fd 3 56s Python version: 3.13.12 (main, Feb 4 2026, 15:06:39) [GCC 15.2.0] 56s Python main interpreter initialized at 0x3ff8eeac8c8 56s python threads support enabled 56s your server socket listen backlog is limited to 100 connections 56s your mercy for graceful operations on workers is 60 seconds 56s mapped 72920 bytes (71 KB) for 1 cores 56s *** Operational MODE: single process *** 56s WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x3ff8eeac8c8 pid: 1460 (default app) 56s mounting /usr/src/uwsgi/t/python/manage_script_name//useless_app.py on /foo 56s WSGI app 1 (mountpoint='/foo') ready in 0 seconds on interpreter 0x3ff9013e850 pid: 1460 56s mounting /usr/src/uwsgi/t/python/manage_script_name//useless_app.py on /foobis/ 56s WSGI app 2 (mountpoint='/foobis/') ready in 0 seconds on interpreter 0x3ff900ff850 pid: 1460 56s mounting /usr/src/uwsgi/t/python/manage_script_name//useless_app.py on /footris/ 56s WSGI app 3 (mountpoint='/footris/') ready in 0 seconds on interpreter 0x3ff900cf850 pid: 1460 56s *** uWSGI is running in multiple interpreter mode *** 56s spawned uWSGI worker 1 (and the only) (pid: 1460, cores: 1) 56s [pid: 1460|app: 1|req: 1/1] 127.0.0.1 () {28 vars in 325 bytes} [Mon Apr 13 23:30:43 2026] GET /foo => generated 4 bytes in 0 msecs (HTTP/1.1 200) 1 headers in 44 bytes (1 switches on core 0) 56s [pid: 1460|app: 1|req: 2/2] 127.0.0.1 () {28 vars in 327 bytes} [Mon Apr 13 23:30:43 2026] GET /foo/ => generated 4 bytes in 0 msecs (HTTP/1.1 200) 1 headers in 44 bytes (1 switches on core 0) 56s [pid: 1460|app: 1|req: 3/3] 127.0.0.1 () {28 vars in 343 bytes} [Mon Apr 13 23:30:43 2026] GET /foo/resource => generated 4 bytes in 0 msecs (HTTP/1.1 200) 1 headers in 44 bytes (1 switches on core 0) 56s [pid: 1460|app: 3|req: 1/4] 127.0.0.1 () {28 vars in 335 bytes} [Mon Apr 13 23:30:43 2026] GET /footris/ => generated 9 bytes in 0 msecs (HTTP/1.1 200) 1 headers in 44 bytes (1 switches on core 0) 56s !!! uWSGI process 1460 got Segmentation Fault !!! 56s *** backtrace of 1460 *** 56s /usr/bin/uwsgi(uwsgi_backtrace+0x2a) [0x2aa1d284f22] 56s /usr/bin/uwsgi(uwsgi_segfault+0x32) [0x2aa1d285332] 56s linux-vdso64.so.1(__kernel_sigreturn+0) [0x3ffe42fe4d8] 56s /usr/lib/s390x-linux-gnu/libpython3.13.so.1.0(+0x22c5a8) [0x3ff8e92c5a8] 56s /usr/lib/uwsgi/plugins/python3_plugin.so(uwsgi_request_subhandler_wsgi+0xa0) [0x3ff8f0191c8] 56s /usr/lib/uwsgi/plugins/python3_plugin.so(uwsgi_request_wsgi+0x146) [0x3ff8f01801e] 56s /usr/bin/uwsgi(wsgi_req_recv+0xbc) [0x2aa1d22cf84] 56s /usr/bin/uwsgi(simple_loop_run+0xda) [0x2aa1d280272] 56s /usr/bin/uwsgi(simple_loop+0x7e) [0x2aa1d280386] 56s /usr/bin/uwsgi(uwsgi_ignition+0x260) [0x2aa1d285660] 56s /usr/bin/uwsgi(uwsgi_worker_run+0x2fc) [0x2aa1d289214] 56s /usr/bin/uwsgi(uwsgi_run+0x51c) [0x2aa1d2898a4] 56s /usr/bin/uwsgi(_start+0) [0x2aa1d22c570] 56s /usr/lib/s390x-linux-gnu/libc.so.6(+0x2ccba) [0x3ff8f1accba] 56s /usr/lib/s390x-linux-gnu/libc.so.6(__libc_start_main+0xa8) [0x3ff8f1acdb0] 56s /usr/bin/uwsgi(+0x2c5b0) [0x2aa1d22c5b0] 56s *** end of backtrace *** 56s 56s test_php_session (__main__.UwsgiTest.test_php_session) ... skipped "['php'] plugins not available but required for this test case" 56s test_psgi_helloworld (__main__.UwsgiTest.test_psgi_helloworld) ... skipped "['psgi'] plugins not available but required for this test case" 56s test_pypy3_helloworld (__main__.UwsgiTest.test_pypy3_helloworld) ... skipped "['pypy3'] plugins not available but required for this test case" 56s test_python3_helloworld (__main__.UwsgiTest.test_python3_helloworld) ... *** Starting uWSGI 2.0.31-debian (64bit) on [Mon Apr 13 23:30:43 2026] *** 56s compiled with version: 15.2.0 on 09 March 2026 22:28:50 56s os: Linux-6.12.74+deb13+1-s390x #1 SMP Debian 6.12.74-2 (2026-03-08) 56s nodename: ci-103-5a0b77e7 56s machine: s390x 56s clock source: unix 56s pcre jit disabled 56s *** big endian arch detected *** 56s detected number of CPU cores: 10 56s current working directory: /tmp/autopkgtest-lxc.dv57h8nf/downtmp/build.3pl/src 56s detected binary path: /usr/bin/uwsgi-core 56s *** WARNING: you are running uWSGI without its master process manager *** 56s your memory page size is 4096 bytes 56s detected max file descriptor number: 1024 56s lock engine: pthread robust mutexes 56s thunder lock: disabled (you can enable it with --thunder-lock) 56s uwsgi socket 0 bound to TCP address 127.0.0.1:8000 fd 3 56s Python version: 3.13.12 (main, Feb 4 2026, 15:06:39) [GCC 15.2.0] 56s Python main interpreter initialized at 0x3ffa01ac8c8 56s python threads support enabled 56s your server socket listen backlog is limited to 100 connections 56s your mercy for graceful operations on workers is 60 seconds 56s mapped 72920 bytes (71 KB) for 1 cores 56s *** Operational MODE: single process *** 56s WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x3ffa01ac8c8 pid: 1461 (default app) 56s *** uWSGI is running in multiple interpreter mode *** 56s spawned uWSGI worker 1 (and the only) (pid: 1461, cores: 1) 56s [pid: 1461|app: 0|req: 1/1] 127.0.0.1 () {28 vars in 334 bytes} [Mon Apr 13 23:30:43 2026] GET / => generated 11 bytes in 0 msecs (HTTP/1.1 200) 1 headers in 44 bytes (1 switches on core 0) 56s 56s ok 56s test_rack_helloworld (__main__.UwsgiTest.test_rack_helloworld) ... skipped "['rack'] plugins not available but required for this test case" 56s test_static_expires (__main__.UwsgiTest.test_static_expires) ... [uWSGI] getting INI configuration from /usr/src/uwsgi/t/static/config.ini 56s [uwsgi-static] added mapping for /foobar => /usr/src/uwsgi/t/static/ 56s *** Starting uWSGI 2.0.31-debian (64bit) on [Mon Apr 13 23:30:43 2026] *** 56s compiled with version: 15.2.0 on 09 March 2026 22:28:50 56s os: Linux-6.12.74+deb13+1-s390x #1 SMP Debian 6.12.74-2 (2026-03-08) 56s nodename: ci-103-5a0b77e7 56s machine: s390x 56s clock source: unix 56s pcre jit disabled 56s *** big endian arch detected *** 56s detected number of CPU cores: 10 56s current working directory: /tmp/autopkgtest-lxc.dv57h8nf/downtmp/build.3pl/src 56s detected binary path: /usr/bin/uwsgi-core 56s *** WARNING: you are running uWSGI without its master process manager *** 56s your memory page size is 4096 bytes 56s detected max file descriptor number: 1024 56s building mime-types dictionary from file /etc/mime.types...1573 entry found 56s lock engine: pthread robust mutexes 56s thunder lock: disabled (you can enable it with --thunder-lock) 56s uwsgi socket 0 bound to TCP address 127.0.0.1:8000 fd 3 56s your server socket listen backlog is limited to 100 connections 56s your mercy for graceful operations on workers is 60 seconds 56s mapped 72920 bytes (71 KB) for 1 cores 56s *** Operational MODE: single process *** 56s *** no app loaded. going in full dynamic mode *** 56s *** uWSGI is running in multiple interpreter mode *** 56s spawned uWSGI worker 1 (and the only) (pid: 1462, cores: 1) 56s 56s ok 56s 56s ====================================================================== 56s ERROR: test_mountpoints (__main__.UwsgiTest.test_mountpoints) 56s ---------------------------------------------------------------------- 56s Traceback (most recent call last): 56s File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 787, in urlopen 56s response = self._make_request( 56s conn, 56s ...<10 lines>... 56s **response_kw, 56s ) 56s File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 534, in _make_request 56s response = conn.getresponse() 56s File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 571, in getresponse 56s httplib_response = super().getresponse() 56s File "/usr/lib/python3.13/http/client.py", line 1450, in getresponse 56s response.begin() 56s ~~~~~~~~~~~~~~^^ 56s File "/usr/lib/python3.13/http/client.py", line 336, in begin 56s version, status, reason = self._read_status() 56s ~~~~~~~~~~~~~~~~~^^ 56s File "/usr/lib/python3.13/http/client.py", line 305, in _read_status 56s raise RemoteDisconnected("Remote end closed connection without" 56s " response") 56s http.client.RemoteDisconnected: Remote end closed connection without response 56s 56s During handling of the above exception, another exception occurred: 56s 56s Traceback (most recent call last): 56s File "/usr/lib/python3/dist-packages/requests/adapters.py", line 644, in send 56s resp = conn.urlopen( 56s method=request.method, 56s ...<9 lines>... 56s chunked=chunked, 56s ) 56s File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 841, in urlopen 56s retries = retries.increment( 56s method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2] 56s ) 56s File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 490, in increment 56s raise reraise(type(error), error, _stacktrace) 56s ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 56s File "/usr/lib/python3/dist-packages/urllib3/util/util.py", line 38, in reraise 56s raise value.with_traceback(tb) 56s File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 787, in urlopen 56s response = self._make_request( 56s conn, 56s ...<10 lines>... 56s **response_kw, 56s ) 56s File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 534, in _make_request 56s response = conn.getresponse() 56s File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 571, in getresponse 56s httplib_response = super().getresponse() 56s File "/usr/lib/python3.13/http/client.py", line 1450, in getresponse 56s response.begin() 56s ~~~~~~~~~~~~~~^^ 56s File "/usr/lib/python3.13/http/client.py", line 336, in begin 56s version, status, reason = self._read_status() 56s ~~~~~~~~~~~~~~~~~^^ 56s File "/usr/lib/python3.13/http/client.py", line 305, in _read_status 56s raise RemoteDisconnected("Remote end closed connection without" 56s " response") 56s urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 56s 56s During handling of the above exception, another exception occurred: 56s 56s Traceback (most recent call last): 56s File "/usr/src/uwsgi/t/runner", line 134, in test_mountpoints 56s self.assert_GET_body(f"{mp}/" if not ends else f"{mp}"[:-1], mp) 56s ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 56s File "/usr/src/uwsgi/t/runner", line 95, in assert_GET_body 56s with requests.get(f"http://{UWSGI_HTTP}{url_path}") as r: 56s ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 56s File "/usr/lib/python3/dist-packages/requests/api.py", line 73, in get 56s return request("get", url, params=params, **kwargs) 56s File "/usr/lib/python3/dist-packages/requests/api.py", line 59, in request 56s return session.request(method=method, url=url, **kwargs) 56s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 56s File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in request 56s resp = self.send(prep, **send_kwargs) 56s File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send 56s r = adapter.send(request, **kwargs) 56s File "/usr/lib/python3/dist-packages/requests/adapters.py", line 659, in send 56s raise ConnectionError(err, request=request) 56s requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 56s 56s ---------------------------------------------------------------------- 56s Ran 9 tests in 0.329s 56s 56s FAILED (errors=1, skipped=6) 57s autopkgtest [23:30:44]: test integration
OpenPGP_signature.asc
(application/pgp-signature, 585 B)
-----BEGIN PGP SIGNATURE----- wsC7BAABCABvBYJp4IC0CRCcXJnrBb11CkcUAAAAAAAeACBzYWx0QG5vdGF0aW9u cy5zZXF1b2lhLXBncC5vcmd+Pns1Nc2sf9cVId9gV/D1cwTr62FV4D6ElhUQ9JP3 5xYhBFi2bUhza+k7BS3mcpxcmesFvXUKAAABtAf/SMYrt9LJ61uw9eo7p9Kl7Siz Uq1jydceLoxl+HnVf3MVByQVb2hAxgr3FNJEnpWZbU22QhsmQ53oAA0TW4twgHFN QpfYh0xO0MNk1NPwij6sl5PGVFrrTfu8bV72kyqi8w0BO/155JvaC6aWi8AHfcRu 96owp0PgKwMh4FGvXmZZ9Roxvd5M4L3jFAJTCY3B7AjNhSp2lw8UKJevJidKKpJs ePcf0fbuYtIjxDu6x/Lgwb8TDXy94ZXpYkWJtjVLrHmmw+9VfoxH0kWpvv5p9wVu E2bdgAkYMFKE7o5ujnKz4IjxPYvnDCX49uTkEAam+vq1sn5hi7AoOWD0AG9cXQ== =GBTZ -----END PGP SIGNATURE-----