[Zope-dev] zope-tests - FAILED: 9, OK: 72

Hanno Schlichting hanno at hannosch.eu
Sat Jun 11 11:36:16 EDT 2011


On Sun, Jun 5, 2011 at 8:24 PM, Hanno Schlichting <hanno at hannosch.eu> wrote:
> $ bin/alltests -s Acquisition -t test_mixed_explicit_and_explicit
> Running zope.testrunner.layer.UnitTests tests:
>  Set up zope.testrunner.layer.UnitTests in 0.000 seconds.
> Segmentation fault
>
> I haven't yet tried to debug the problem itself.

I took the time to investigate this. It came down to the same issue
noted in https://bugs.launchpad.net/bugs/675064. Some code treated a C
int as a pointer. Apparently on most platforms sizeof(int) ==
sizeof(pointer), but there's some where that's not the case.

In this particular case it was a simple mistake of using the wrong variable:

PyObject *expl=0;
int explicit=1;

UNLESS (PyArg_ParseTupleAndKeywords(
     args, kw, "O|OOOOi", acquire_args+1,
     &name, &filter, &extra, &explicit, &defalt, &containment
     ))
return NULL;

if (expl) explicit=PyObject_IsTrue(expl);

The fix was to pass &expl instead of &explicit into
PyArg_ParseTupleAndKeywords. Almost the same code existed in
Wrapper_acquire_method and module_aq_acquire and only
Wrapper_acquire_method got it wrong.

I released a new Acquisition version and put it into Zope 2.x.
Hopefully the buildbots will finally get green again.

Hanno


More information about the Zope-Dev mailing list