From: Ted D. <ted...@jp...> - 2004-10-21 19:23:24
|
I'm trying to build matplotlib and I'm getting a segmentation fault when I do: from matplotlib import * I've traced the fault down to the transforms module. My first attempt used: gcc 3.3.2 Python 2.3.3 numarray 1.1 gdmodule 0.52 gd 2.0.28 freetype 2.1.9 agg 22 matplotlib 0.63.4 In this version _na_transform segementation faults at this line: static _transforms_module* _transforms = new _transforms_module; I traced the fault down to the ExtensionModuleBaseClass where it attempts to call: __Py_PackageContext() It looks to me like this function is trying to access the variable (which it dereferences WITHOUT checking for a null pointer). static char **ptr__Py_PackageContext = NULL; This ptr gets init'ed in the function InitialisePythonIndirectInterface() but I can't find anywhere that function is being called. FYI: I also tried matplotlib 0.62.4 and I get the same error. Can anybody figure out what's happening to me? Thanks, Ted |
From: John H. <jdh...@ac...> - 2004-10-21 20:08:21
|
>>>>> "Ted" == Ted Drain <ted...@jp...> writes: Ted> I'm trying to build matplotlib and I'm getting a segmentation Ted> fault when I do: from matplotlib import * Ted> I've traced the fault down to the transforms module. Ted> My first attempt used: gcc 3.3.2 Python 2.3.3 numarray 1.1 Ted> gdmodule 0.52 gd 2.0.28 freetype 2.1.9 agg 22 matplotlib Ted> 0.63.4 Standard issue stuff - very close to what most people are using w/o incident. Hmmmm.... Ted> In this version _na_transform segementation faults at this Ted> line: static _transforms_module* _transforms = new Ted> _transforms_module; Ted> I traced the fault down to the ExtensionModuleBaseClass where Ted> it attempts to call: __Py_PackageContext() Ted> It looks to me like this function is trying to access the Ted> variable (which it dereferences WITHOUT checking for a null Ted> pointer). static char **ptr__Py_PackageContext = NULL; Could you try editing it an adding the NULL test; if this works can you submit a patch pack to be and a bug report to the pycxx sf site? Ted> This ptr gets init'ed in the function Ted> InitialisePythonIndirectInterface() but I can't find anywhere Ted> that function is being called. Ted> FYI: I also tried matplotlib 0.62.4 and I get the same error. It couldn't be the exact same error, because _na_transforms did not exist in 0.62.4. Do you mean that you got a segfault on the same line in _transform? Thanks, JDH |
From: Ted D. <ted...@jp...> - 2004-10-21 20:43:51
|
>It couldn't be the exact same error, because _na_transforms did not >exist in 0.62.4. Do you mean that you got a segfault on the same line >in _transform? Sorry - that's what I meant. It looks like I was a little mistaken. I didn't realize that there are 2 versions of __Py_PackageContext() in the same file. I was orginally looking at the Windows version (I'm building on linux). However, if the linux version looks like this (unmodified): char *__Py_PackageContext() { return _Py_PackageContext; } I get a segmentation fault at the return line. I then added a print statement to it: char *__Py_PackageContext() { std::cerr << "context 0\n"; return _Py_PackageContext; } and then everything works! Off the top of my head, it might be a case of C++ static object initialization problems but I can't find any obvious places that might be happening. Ted At 01:00 PM 10/21/2004, John Hunter wrote: > >>>>> "Ted" == Ted Drain <ted...@jp...> writes: > > Ted> I'm trying to build matplotlib and I'm getting a segmentation > Ted> fault when I do: from matplotlib import * > > Ted> I've traced the fault down to the transforms module. > > Ted> My first attempt used: gcc 3.3.2 Python 2.3.3 numarray 1.1 > Ted> gdmodule 0.52 gd 2.0.28 freetype 2.1.9 agg 22 matplotlib > Ted> 0.63.4 > >Standard issue stuff - very close to what most people are using w/o >incident. Hmmmm.... > > Ted> In this version _na_transform segementation faults at this > Ted> line: static _transforms_module* _transforms = new > Ted> _transforms_module; > > Ted> I traced the fault down to the ExtensionModuleBaseClass where > Ted> it attempts to call: __Py_PackageContext() > > Ted> It looks to me like this function is trying to access the > Ted> variable (which it dereferences WITHOUT checking for a null > Ted> pointer). static char **ptr__Py_PackageContext = NULL; > >Could you try editing it an adding the NULL test; if this works can >you submit a patch pack to be and a bug report to the pycxx sf site? > > Ted> This ptr gets init'ed in the function > Ted> InitialisePythonIndirectInterface() but I can't find anywhere > Ted> that function is being called. > > Ted> FYI: I also tried matplotlib 0.62.4 and I get the same error. > >It couldn't be the exact same error, because _na_transforms did not >exist in 0.62.4. Do you mean that you got a segfault on the same line >in _transform? > >Thanks, >JDH |
From: Todd M. <jm...@st...> - 2004-10-21 20:47:45
|
On Thu, 2004-10-21 at 16:00, John Hunter wrote: > >>>>> "Ted" == Ted Drain <ted...@jp...> writes: > > Ted> I'm trying to build matplotlib and I'm getting a segmentation > Ted> fault when I do: from matplotlib import * > > Ted> I've traced the fault down to the transforms module. > > Ted> My first attempt used: gcc 3.3.2 Python 2.3.3 numarray 1.1 > Ted> gdmodule 0.52 gd 2.0.28 freetype 2.1.9 agg 22 matplotlib > Ted> 0.63.4 > > Standard issue stuff - very close to what most people are using w/o > incident. Hmmmm.... > > Ted> In this version _na_transform segementation faults at this > Ted> line: static _transforms_module* _transforms = new > Ted> _transforms_module; > > Ted> I traced the fault down to the ExtensionModuleBaseClass where > Ted> it attempts to call: __Py_PackageContext() > > Ted> It looks to me like this function is trying to access the > Ted> variable (which it dereferences WITHOUT checking for a null > Ted> pointer). static char **ptr__Py_PackageContext = NULL; > > Could you try editing it an adding the NULL test; if this works can > you submit a patch pack to be and a bug report to the pycxx sf site? > > Ted> This ptr gets init'ed in the function > Ted> InitialisePythonIndirectInterface() but I can't find anywhere > Ted> that function is being called. > > Ted> FYI: I also tried matplotlib 0.62.4 and I get the same error. > > It couldn't be the exact same error, because _na_transforms did not > exist in 0.62.4. Do you mean that you got a segfault on the same line > in _transform? Check for matplotlib/_transforms.so left over from prior installations and blow away your old matplotlib and re-install if you find it. Before you re-install, also blow away matplotlib/build. Todd |
From: Ted D. <ted...@jp...> - 2004-10-21 22:26:07
|
Well I have somewhat good news. I was using an older machine (RedHat7) when I had these problems. I went to a much newer redhat machine and everything works fine. Same version of Python, gcc, etc - just a newer operating system. I guess I'll just ignore this problem and stick with the newer machine. Ted At 01:47 PM 10/21/2004, Todd Miller wrote: >On Thu, 2004-10-21 at 16:00, John Hunter wrote: > > >>>>> "Ted" == Ted Drain <ted...@jp...> writes: > > > > Ted> I'm trying to build matplotlib and I'm getting a segmentation > > Ted> fault when I do: from matplotlib import * > > > > Ted> I've traced the fault down to the transforms module. > > > > Ted> My first attempt used: gcc 3.3.2 Python 2.3.3 numarray 1.1 > > Ted> gdmodule 0.52 gd 2.0.28 freetype 2.1.9 agg 22 matplotlib > > Ted> 0.63.4 > > > > Standard issue stuff - very close to what most people are using w/o > > incident. Hmmmm.... > > > > Ted> In this version _na_transform segementation faults at this > > Ted> line: static _transforms_module* _transforms = new > > Ted> _transforms_module; > > > > Ted> I traced the fault down to the ExtensionModuleBaseClass where > > Ted> it attempts to call: __Py_PackageContext() > > > > Ted> It looks to me like this function is trying to access the > > Ted> variable (which it dereferences WITHOUT checking for a null > > Ted> pointer). static char **ptr__Py_PackageContext = NULL; > > > > Could you try editing it an adding the NULL test; if this works can > > you submit a patch pack to be and a bug report to the pycxx sf site? > > > > Ted> This ptr gets init'ed in the function > > Ted> InitialisePythonIndirectInterface() but I can't find anywhere > > Ted> that function is being called. > > > > Ted> FYI: I also tried matplotlib 0.62.4 and I get the same error. > > > > It couldn't be the exact same error, because _na_transforms did not > > exist in 0.62.4. Do you mean that you got a segfault on the same line > > in _transform? > >Check for matplotlib/_transforms.so left over from prior installations >and blow away your old matplotlib and re-install if you find it. Before >you re-install, also blow away matplotlib/build. > >Todd |