On 3/19/07, Carlos Valiente <[EMAIL PROTECTED]> wrote:
On my -CURRENT amd64 system, Python 2.5 (installed from packge file
python-2.5p3.tgz on 14 Mar 2007) is segfaulting within an installed
module (the PostgreSQL Python driver from
http://www.initd.org/tracker/psycopg/wiki/PsycopgTwo). The crash
happens in line 175 of this function of the PostgreSQL Python driver:

166:    static PyObject *
167:    qstring_str(qstringObject *self)
168:    {
169:        Dprintf("qstring_str: self: %p", self);
170:        if (self->buffer == NULL) {
171:            qstring_quote(self);
172:            Dprintf("qstring_str: self: %p", self);
173:
174:            Dprintf("qstring_str: About to bomb...");
175:            Dprintf("qstring_str: self->buffer: %p", self->buffer);
176:        }
177:        Py_XINCREF(self->buffer);
178:        return self->buffer;
179:    }

Before the call to qstring_quote(), self is not NULL (I get values
like 0x49f487e0). After the call, however, self is NULL.

The GCC flags used to compile and link that code include -O2. When I
manually compile and link that code with -O0, however, things work as
expected.

Is GCC the culprit of this problem, or should I keep on looking somewhere else?

"with -O0, however, things work as expected." I think you've answered
your own question.

I compliment you on your very detailed bug hunting.

-Nick

Reply via email to