forked from pool/python-apsw
Compare commits
29 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| ead2134d4c | |||
| 211c31518d | |||
| f84e2e7679 | |||
| bbd7f0346c | |||
| 176412f1ba | |||
| 178f94cf33 | |||
| f6d1ccfb4f | |||
| 83545c65f4 | |||
| 1e8361fb2d | |||
| acc659f27f | |||
| e8181d11a3 | |||
| f01e91e3c7 | |||
| 407313158e | |||
| 627036af2a | |||
| 38a8a424e6 | |||
| 1b7fd971d3 | |||
| 264cf9216b | |||
| 59e68be5a2 | |||
| bbf96ba6d3 | |||
| e1a1f3b0a3 | |||
| 28fe28f2ed | |||
| c3b328dfdb | |||
| 940684b282 | |||
| a37472de2e | |||
| e79c077c75 | |||
| 5864263e34 | |||
| c535908a84 | |||
| 9b9f63f561 | |||
| 5042b4fa81 |
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d8640f6d4b0ab2b604bce1f6d0e380d150613e0d77b55a1dc9995fe5593f32a2
|
||||
size 912632
|
||||
BIN
apsw-3.46.1.0.tar.gz
LFS
Normal file
BIN
apsw-3.46.1.0.tar.gz
LFS
Normal file
Binary file not shown.
72
disable-infinite-recursion-in-tests.patch
Normal file
72
disable-infinite-recursion-in-tests.patch
Normal file
@@ -0,0 +1,72 @@
|
||||
From 0103ade603b321aa66e5bfc7a5a078219e888481 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Binns <rogerb@rogerbinns.com>
|
||||
Date: Mon, 7 Oct 2024 07:13:54 -0700
|
||||
Subject: [PATCH] Disable infinite recursion test in non-debug builds
|
||||
|
||||
You'll need a wide window to read this
|
||||
|
||||
This is the backtrace on Ubuntu 24.10 with Python 3.12.7 - it has occurred on versions too
|
||||
|
||||
Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
|
||||
#0 0x00007ffff7c6c804 in __printf_buffer (buf=buf@entry=0x7fffff7ff240, format=0x71cdf5 "%zd", ap=0x7fffff7ff290, mode_flags=6) at ./stdio-common/vfprintf-internal.c:600
|
||||
#1 0x00007ffff7c8dc93 in __vsprintf_internal (string=string@entry=0x7fffff7ff430 "", maxlen=maxlen@entry=26, format=<optimised out>, args=args@entry=0x7fffff7ff290, mode_flags=mode_flags@entry=6) at ./libio/iovsprintf.c:62
|
||||
#2 0x00007ffff7d4228f in ___sprintf_chk (s=s@entry=0x7fffff7ff430 "", flag=flag@entry=2, slen=slen@entry=26, format=<optimised out>) at ./debug/sprintf_chk.c:40
|
||||
#3 0x00000000005abf85 in sprintf (__s=<optimised out>, __fmt=<optimised out>) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:30
|
||||
#4 unicode_fromformat_arg (writer=0x7fffff7ff3f0, f=0x71cdf7 "d", vargs=0x7fffff7ff3d8) at ../Objects/unicodeobject.c:2740
|
||||
#5 PyUnicode_FromFormatV (format=<optimised out>, vargs=vargs@entry=0x7fffff7ff4a8) at ../Objects/unicodeobject.c:2963
|
||||
#6 0x00000000005b3c6f in PyUnicode_FromFormat (format=format@entry=0x71cdf5 "%zd") at ../Objects/unicodeobject.c:3011
|
||||
#7 0x00000000005d7a3e in too_many_positional (co=<optimised out>, tstate=0xbae310 <_PyRuntime+458992>, given=2, defaults=<optimised out>, localsplus=0x7ffff7fb0cb0, qualname='APSW.testIssue425.<locals>.handler') at ../Python/ceval.c:1150
|
||||
#8 initialize_locals (tstate=tstate@entry=0xbae310 <_PyRuntime+458992>, func=func@entry=0x7fffe9094ae0, localsplus=<optimised out>, args=<optimised out>, argcount=<optimised out>, kwnames=<optimised out>) at ../Python/ceval.c:1459
|
||||
#9 0x00000000005d7642 in _PyEvalFramePushAndInit (tstate=0xbae310 <_PyRuntime+458992>, func=0x7fffe9094ae0, locals=<optimised out>, args=0x7fffff7ff708, argcount=<optimised out>, kwnames=0x0) at ../Python/ceval.c:1594
|
||||
#10 _PyEval_Vector (tstate=0xbae310 <_PyRuntime+458992>, func=0x7fffe9094ae0, locals=<optimised out>, args=0x7fffff7ff708, argcount=2, kwnames=0x0) at ../Python/ceval.c:1677
|
||||
#11 0x000000000054a2d5 in _PyObject_VectorcallTstate (tstate=0xbae310 <_PyRuntime+458992>, callable=<function at remote 0x7fffe9094ae0>, args=<optimised out>, nargsf=<optimised out>, kwnames=<optimised out>) at ../Include/internal/pycore_call.h:92
|
||||
#12 PyObject_Vectorcall (callable=<function at remote 0x7fffe9094ae0>, args=<optimised out>, nargsf=<optimised out>, kwnames=<optimised out>) at ../Objects/call.c:325
|
||||
#13 0x00007fffe96aa94c in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff7ff770 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:447
|
||||
#14 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff7ff880) at sqlite3/sqlite3.c:32459
|
||||
#15 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
|
||||
#16 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
|
||||
#17 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff7ffbc0 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
|
||||
#18 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff7ffcd0) at sqlite3/sqlite3.c:32459
|
||||
#19 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
|
||||
#20 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
|
||||
#21 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff800010 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
|
||||
#22 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff800120) at sqlite3/sqlite3.c:32459
|
||||
#23 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
|
||||
#24 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
|
||||
#25 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff800460 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
|
||||
#26 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff800570) at sqlite3/sqlite3.c:32459
|
||||
#27 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
|
||||
#28 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
|
||||
#29 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff8008b0 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
|
||||
#30 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff8009c0) at sqlite3/sqlite3.c:32459
|
||||
#31 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
|
||||
#32 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
|
||||
#33 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff800d00 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
|
||||
#34 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff800e10) at sqlite3/sqlite3.c:32459
|
||||
#35 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
|
||||
#36 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
|
||||
|
||||
These repeat because that is the point of the test until you get into the Python test code.
|
||||
---
|
||||
apsw/tests.py | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/apsw/tests.py b/apsw/tests.py
|
||||
index a349533b..bfec8e9f 100644
|
||||
--- a/apsw/tests.py
|
||||
+++ b/apsw/tests.py
|
||||
@@ -1188,6 +1188,14 @@ def testIssue376(self):
|
||||
def testIssue425(self):
|
||||
"Infinite recursion"
|
||||
|
||||
+ # When Python tries to output an error message after reaching
|
||||
+ # the recursion limit it can segv which is nothing to do with
|
||||
+ # the apsw code, and the Python code looks good to me. Debug
|
||||
+ # Python builds don't have this problem. See the commit
|
||||
+ # message for this change for backtrace etc.
|
||||
+ if "d" not in getattr(sys, "abiflags", ""):
|
||||
+ return
|
||||
+
|
||||
class VFSA(apsw.VFS):
|
||||
|
||||
def __init__(self):
|
||||
@@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 19 11:54:17 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add upstream patch disable-infinite-recursion-in-tests.patch
|
||||
gh#rogerbinns/apsw@0103ade60
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 28 19:15:48 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.46.1.0:
|
||||
* The shell dump command outputs the application_id in addition
|
||||
to the user_version.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jun 30 21:32:30 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
|
||||
@@ -18,13 +18,15 @@
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-apsw
|
||||
Version: 3.46.0.1
|
||||
Version: 3.46.1.0
|
||||
Release: 0
|
||||
Summary: Another Python SQLite Wrapper
|
||||
License: Zlib
|
||||
Group: Development/Libraries/Python
|
||||
URL: https://github.com/rogerbinns/apsw/
|
||||
Source: https://github.com/rogerbinns/apsw/archive/refs/tags/%{version}.tar.gz#/apsw-%{version}.tar.gz
|
||||
# PATCH-FIX-UPSTREAM disable-infinite-recursion-in-tests.patch -- gh#rogerbinns/apsw@0103ade60
|
||||
Patch0: disable-infinite-recursion-in-tests.patch
|
||||
BuildRequires: %{python_module devel >= 3.8}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
|
||||
Reference in New Issue
Block a user