[Python-bugs-list] [ python-Bugs-726017 ] Calling empty C function repeatedly causes 'aborted'
SourceForge.net
noreply@sourceforge.net
Tue, 22 Apr 2003 21:13:37 -0700
Bugs item #726017, was opened at 2003-04-22 23:55
Message generated for change (Comment added) made by tim_one
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=726017&group_id=5470
Category: Extension Modules
Group: Python 2.2.2
Status: Open
Resolution: None
Priority: 5
Submitted By: Tyson Whitehead (twhitehead)
Assigned to: Nobody/Anonymous (nobody)
Summary: Calling empty C function repeatedly causes 'aborted'
Initial Comment:
Python code...
#!/usr/bin/python
import TestC
print 'The mighty attack...',
for lItr in range(10000):
print lItr,
TestC.TestC()
print '...was survived'
...with C code...
static PyObject *Test(PyObject *iSelf,PyObject *iArgs){
return Py_None;
}
...results in...
The mighty attack... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
207 208 209 210 211Aborted
.. on both Intel and Alpha architectures (Debian unstable, lastest
packages, kernel 2.4.20) (don't know about other configurations),
adding more python code above the loop changes how many it
manages to count before 'aborting'.
----------------------------------------------------------------------
>Comment By: Tim Peters (tim_one)
Date: 2003-04-23 00:13
Message:
Logged In: YES
user_id=31435
The C code uses the Python C API incorrectly. Add
Py_INCREF(Py_None);
before you return, and then see what happens.
In addition, get in the habit of running your extensions
under a debug build. If you had tried that here, the
program would have died with a well-behaved "negative
refcount" error message. That's too expensive to bother
checking for in the release build.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=726017&group_id=5470