Very interesting. I got this error Fatal Python error: Py_Initialize: Unable to get the locale encoding NotImplementedError Aborted generate-posix-vars failed make: *** [pybuilddir.txt] Error 1 ...but it didn't (of course) segfault. I'll pull gdb, get the results and send them. On January 31, 2015 1:10:18 PM CST, Ryan <rymg19 at gmail.com> wrote: >No; I was looking for all uses of _PyRaw_Strdup. Surprisingly, it's >used only a few times. > >Cyd Haselton <chaselton at gmail.com> wrote: >>Question: >>When you said earlier that you found the problem by using grep...were >>you looking for places where strdup called locale? >> >>On January 30, 2015 7:52:47 PM CST, Ryan Gonzalez <rymg19 at gmail.com> >>wrote: >>>Regardless, if you're looking to toy more with stuff like this, I'd >>>highly >>>recommend dual-booting with Ubuntu, which is what I'm doing now. (Now >>I >>>rarely ever boot into Windows!) >>> >>>On Fri, Jan 30, 2015 at 7:51 PM, Ryan Gonzalez <rymg19 at gmail.com> >>>wrote: >>> >>>> Do you have just the SDK (which doesn't require Cygwin) or a rooted >>>phone? >>>> If so, I can upload instructions that don't use the NDK. >>>> >>>> On Fri, Jan 30, 2015 at 6:19 PM, Cyd Haselton <chaselton at gmail.com> >>>wrote: >>>> >>>>> This is going to take some time...here's why: >>>>> >>>>> Downloading and installing the NDK/SDK won't be too hard...I have >>to >>>>> clear some space...but my primary machine is running Windows 7 and >>>I'd >>>>> rather swallow hot coals than install Cygwin. I've got next to no >>>>> experience with it, other than knowing that the NDK recommends >>>against >>>>> it. >>>>> >>>>> I've got a CentOS VM...but it's currently in tarball form on an >>>>> external drive for space reasons...and it only has the NDK >>>installed. >>>>> If I am able to get it back up and running, there's still the task >>>of >>>>> getting adb connected to my device. from the VM. >>>>> >>>>> Not saying it's impossible...just that it'll take time...and I'll >>>>> probably have to tackle it tomorrow (earliest) or Sunday (latest). > >>>In >>>>> the meantime I'll also check to see if there's anything that can >a) >>>>> run in an Android terminal and b) can take a stack trace; it would >>>be >>>>> far, far, far easier than either option above. >>>>> >>>>> >>>>> >>>>> On Fri, Jan 30, 2015 at 4:19 PM, Ryan Gonzalez <rymg19 at gmail.com> >>>wrote: >>>>> > Do you have the Android SDK and NDK installed? If so... >>>>> > >>>>> > Using Google, I've created this series of steps, which may (or >>may >>>not) >>>>> > work: >>>>> > >>>>> > 1. Make sure you have a copy of Python on your computer and make >>>sure >>>>> that >>>>> > it's built with debug symbols. >>>>> > >>>>> > 2. Run the following commands from a shell with your phone >>plugged >>>in: >>>>> > >>>>> > adb forward tcp:5039 tcp:5039 >>>>> > adb shell /system/bin/gdbserver tcp:5039 <path to python >>>executable> >>>>> > <path to ndk binary folder>/arm-linux-androideabi-gdb >>>>> > >>>>> > Now, GDB should have opened, so type the following commands: >>>>> > >>>>> > set solib-search-path <directory holder libpython.so> >>>>> > file <path to local python executable> >>>>> > target remote :5055 >>>>> > run >>>>> > >>>>> > Now, wait for the program to crash and type: >>>>> > >>>>> > backtrace >>>>> > >>>>> > You should now see a complete backtrace in your terminal. To >GDB, >>>type: >>>>> > >>>>> > quit >>>>> > >>>>> > *crosses fingers* >>>>> > >>>>> > On Fri, Jan 30, 2015 at 2:50 PM, Cyd Haselton >>><chaselton at gmail.com> >>>>> wrote: >>>>> >> >>>>> >> Unfortunately it is still reporting the same function :-/. >>>>> >> >>>>> >> On Fri, Jan 30, 2015 at 1:44 PM, Ryan Gonzalez >><rymg19 at gmail.com> >>>>> wrote: >>>>> >> > Yes... >>>>> >> > >>>>> >> > Can you check if it's crashing in a different function now? >>>>> >> > >>>>> >> > On Fri, Jan 30, 2015 at 1:39 PM, Cyd Haselton >>><chaselton at gmail.com> >>>>> >> > wrote: >>>>> >> >> >>>>> >> >> Yes I did. I did have to enter all the information in >>>>> manually...I'm >>>>> >> >> not familiar with automated patch application tools and even >>>if I >>>>> >> >> were, I'm pretty sure I wouldn't have them on my device. >>>>> >> >> >>>>> >> >> Just so that I'm absolutely sure I got everything >>>correct...you >>>>> wanted >>>>> >> >> all of the lines in the patch commented out, correct? >>>Basically >>>>> >> >> everything referencing oldloc? >>>>> >> >> >>>>> >> >> On Fri, Jan 30, 2015 at 1:00 PM, Ryan Gonzalez >>><rymg19 at gmail.com> >>>>> >> >> wrote: >>>>> >> >> > Are you sure the patch was applied correctly? I was SO >sure >>>it >>>>> would >>>>> >> >> > work! >>>>> >> >> > >>>>> >> >> > FYI, you tried the patch I attached to the email message, >>>right? >>>>> >> >> > >>>>> >> >> > On Fri, Jan 30, 2015 at 12:58 PM, Cyd Haselton < >>>>> chaselton at gmail.com> >>>>> >> >> > wrote: >>>>> >> >> >> >>>>> >> >> >> Update: I did try the patch after getting it installed >>>>> correctly, >>>>> >> >> >> but >>>>> >> >> >> I'm still getting a segfault on the newly built binary. >>>>> >> >> >> Will post info this afternoon. >>>>> >> >> >> >>>>> >> >> >> On Fri, Jan 30, 2015 at 12:10 PM, Ryan Gonzalez < >>>>> rymg19 at gmail.com> >>>>> >> >> >> wrote: >>>>> >> >> >> > No, it returns NULL if malloc gives it a raw pointer. >It >>>>> >> >> >> > unconditionally >>>>> >> >> >> > checks the length of the (possibly null) string >argument >>>first. >>>>> >> >> >> > >>>>> >> >> >> > Please try the patch I attached in the last email. It >>>*might* >>>>> fix >>>>> >> >> >> > the >>>>> >> >> >> > issue. >>>>> >> >> >> > Android has crappy locale handling. >>>>> >> >> >> > >>>>> >> >> >> > On Fri, Jan 30, 2015 at 12:09 PM, Cyd Haselton >>>>> >> >> >> > <chaselton at gmail.com> >>>>> >> >> >> > wrote: >>>>> >> >> >> >> >>>>> >> >> >> >> Unless i'm reading something incorrectly, >>>_PyMem_RawStrdup >>>>> is >>>>> >> >> >> >> currently returning NULL when given a null pointer. >>>>> >> >> >> >> >>>>> >> >> >> >> From obmalloc.c >>>>> >> >> >> >> >>>>> >> >> >> >> _PyMem_RawStrdup(const char *str) >>>>> >> >> >> >> { >>>>> >> >> >> >> size_t size; >>>>> >> >> >> >> char *copy; >>>>> >> >> >> >> size = strlen(str) + 1; >>>>> >> >> >> >> copy = PyMem_RawMalloc(size); >>>>> >> >> >> >> if (copy == NULL) >>>>> >> >> >> >> return NULL; >>>>> >> >> >> >> memcpy(copy, str, size); >>>>> >> >> >> >> return copy; >>>>> >> >> >> >> } >>>>> >> >> >> >> >>>>> >> >> >> >> On Fri, Jan 30, 2015 at 11:56 AM, Ryan Gonzalez >>>>> >> >> >> >> <rymg19 at gmail.com> >>>>> >> >> >> >> wrote: >>>>> >> >> >> >> > I seriously doubt the issue is in that file; >>>>> _PyMem_RawStrdup >>>>> >> >> >> >> > crashes >>>>> >> >> >> >> > when >>>>> >> >> >> >> > calling strlen. It's that whatever is calling it is >>>likely >>>>> >> >> >> >> > asking >>>>> >> >> >> >> > it >>>>> >> >> >> >> > to >>>>> >> >> >> >> > duplicate a null pointer. Basically, it's probably >>the >>>>> caller's >>>>> >> >> >> >> > fault. >>>>> >> >> >> >> > >>>>> >> >> >> >> > You could always try modifying _PyMem_RawStrdup to >>>return >>>>> NULL >>>>> >> >> >> >> > when >>>>> >> >> >> >> > given a >>>>> >> >> >> >> > null pointer and see where it then segfaults. >>>>> >> >> >> >> > >>>>> >> >> >> >> > On Fri, Jan 30, 2015 at 11:53 AM, Cyd Haselton >>>>> >> >> >> >> > <chaselton at gmail.com> >>>>> >> >> >> >> > wrote: >>>>> >> >> >> >> >> >>>>> >> >> >> >> >> Alternatively, is there a hassle-free way to find >>out >>>what >>>>> >> >> >> >> >> changed >>>>> >> >> >> >> >> in >>>>> >> >> >> >> >> obmalloc.c between 2.7.x and 3.4.x? >>>>> >> >> >> >> >> >>>>> >> >> >> >> >> >>>>> >> >> >> >> >> On Fri, Jan 30, 2015 at 9:29 AM, Cyd Haselton >>>>> >> >> >> >> >> <chaselton at gmail.com> >>>>> >> >> >> >> >> wrote: >>>>> >> >> >> >> >> > There's a related strdup patch for readline.c, >>>mentioned >>>>> >> >> >> >> >> > here:http://bugs.python.org/issue21390 and here >>>>> >> >> >> >> >> > >>>https://github.com/rave-engine/python3-android/issues/2. >>>>> >> >> >> >> >> > There's a patch, but I'm not sure how to modify >it >>>for >>>>> >> >> >> >> >> > obmalloc.c, >>>>> >> >> >> >> >> > as >>>>> >> >> >> >> >> > (I think) the functions all belong to >>>Python...they're >>>>> all >>>>> >> >> >> >> >> > prefixed >>>>> >> >> >> >> >> > with _PyXx >>>>> >> >> >> >> >> > >>>>> >> >> >> >> >> > On Fri, Jan 30, 2015 at 9:05 AM, Cyd Haselton >>>>> >> >> >> >> >> > <chaselton at gmail.com> >>>>> >> >> >> >> >> > wrote: >>>>> >> >> >> >> >> >> Absolutely. Good thing I have addr2line on >>device >>>>> >> >> >> >> >> >> >>>>> >> >> >> >> >> >> /bld/python/Python-3.4.2 $ addr2line -C -f -e >>>>> >> >> >> >> >> >> /lib/libpython3.4m.so.1.0 >>>>> >> >> >> >> >> >> 0008bbc8 >>>>> >> >> >> >> >> >> _PyMem_RawStrdup >>>>> >> >> >> >> >> >> /bld/python/Python-3.4.2/Objects/obmalloc.c:323 >>>>> >> >> >> >> >> >> /bld/python/Python-3.4.2 $ >>>>> >> >> >> >> >> >> >>>>> >> >> >> >> >> >> >>>>> >> >> >> >> >> >> >>>>> >> >> >> >> >> >> On Thu, Jan 29, 2015 at 8:26 PM, Ryan >>><rymg19 at gmail.com >>>>> > >>>>> >> >> >> >> >> >> wrote: >>>>> >> >> >> >> >> >>> Could you try the steps at >>>>> >> >> >> >> >> >>> http://stackoverflow.com/a/11369475/2097780? >>They >>>>> >> >> >> >> >> >>> allow you to get a better idea of where libc is >>>>> crashing. >>>>> >> >> >> >> >> >>> >>>>> >> >> >> >> >> >>> Cyd Haselton <chaselton at gmail.com> wrote: >>>>> >> >> >> >> >> >>>> >>>>> >> >> >> >> >> >>>> Managed to get this out of logcat: >>>>> >> >> >> >> >> >>>> F(11914) Fatal signal 11 (SIGSEGV) at >>0x00000000 >>>>> >> >> >> >> >> >>>> (code=1), >>>>> >> >> >> >> >> >>>> thread >>>>> >> >> >> >> >> >>>> 11914 (python) (libc) >>>>> >> >> >> >> >> >>>> >>>>> >> >> >> >> >> >>>> [ 01-29 19:30:55.855 23373:23373 F/libc ] >>>>> >> >> >> >> >> >>>> Fatal signal 11 (SIGSEGV) at 0x00000000 >>>(code=1), >>>>> thread >>>>> >> >> >> >> >> >>>> 23373 >>>>> >> >> >> >> >> >>>> (python) >>>>> >> >> >> >> >> >>>> >>>>> >> >> >> >> >> >>>> Less detail than strace but it seems to be >that >>>>> python is >>>>> >> >> >> >> >> >>>> segfaulting >>>>> >> >> >> >> >> >>>> libc... >>>>> >> >> >> >> >> >>>> >>>>> >> >> >> >> >> >>>> On Wed, Jan 28, 2015 at 11:23 AM, Ryan >Gonzalez >>>>> >> >> >> >> >> >>>> <rymg19 at gmail.com> >>>>> >> >> >> >> >> >>>> wrote: >>>>> >> >> >> >> >> >>>>> >>>>> >> >> >> >> >> >>>>> On Wed, Jan 28, 2015 at 10:43 AM, Guido van >>>Rossum >>>>> >> >> >> >> >> >>>>> <guido at python.org> >>>>> >> >> >> >> >> >>>>> wrote: >>>>> >> >> >> >> >> >>>>>> >>>>> >> >> >> >> >> >>>>>> >>>>> >> >> >> >> >> >>>>>> What I see in the strace: >>>>> >> >> >> >> >> >>>>>> >>>>> >> >> >> >> >> >>>>>> ... load libpython3.4m.so.1.0 >>>>> >> >> >> >> >> >>>>>> ... load libm >>>>> >> >> >> >> >> >>>>>> ... open /dev/__properti -- Sent from my Android device with K-9 Mail. Please excuse my brevity. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150131/d49be8ae/attachment-0001.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4