Skip to contentSkip to conversation

IPython/readline segfaults

Buildroot ir. Tjeerd Pinkert 2 participants 4 messages Mar 25, 2015 3 messages not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): 20150325003203.GL10761@vapier

#3 lore raw

Thanks, indeed, buildroot 2015.02 has 6.3 with no patches, although it downloads the latest tar file. I'm trying to see if patching helps.

Quoted 14 lines · Mike Frysinger
Quoted 8 lines · Chet Ramey
Quoted 4 lines · ir. Tjeerd Pinkert

I stumbled upon a readline problem on powerpc, maybe an uninitialised variable or something like that. Please see:

https://github.com/ipython/ipython/issues/8087#issuecomment-83660592

A stack traceback from the core dump, and information about the version of readline you're using, would be helpful.

my guess is he's missing the recent patches. ipython was crashing in Gentoo until we applied readline63-002.
-mike

#4 lore raw
Quoted 2 lines · ir. Tjeerd Pinkert

Thanks, indeed, buildroot 2015.02 has 6.3 with no patches, although it downloads the latest tar file. I'm trying to see if patching helps.

I've sent a patch to bump it to patchlevel 8 after the 2015.02 release for another bug in commit b817e8c58117402561a61c0d749337f415c9c985 (bash-related).
So it'll be part of the 2015.05 release, or if you're in a rush just apply that patch to your tree.
Regards.

#5 lore raw
Quoted 10 lines · Gustavo Zacarias
Quoted 2 lines · ir. Tjeerd Pinkert

Thanks, indeed, buildroot 2015.02 has 6.3 with no patches, although it downloads the latest tar file. I'm trying to see if patching helps.

I've sent a patch to bump it to patchlevel 8 after the 2015.02 release for another bug in commit b817e8c58117402561a61c0d749337f415c9c985 (bash-related).
So it'll be part of the 2015.05 release, or if you're in a rush just apply that patch to your tree.

I have tested it, and the patch works, no more segfaults so far.

I attach the patch file for buildroot, Gustavo, can you tell me if I did it in a correct way? Did you already include this one in buildroot too? I could not get the original patch working with the buildroot system so I generated my own diff which works for buildroot (that is readline-0001-63-002.patch). I saw there are more patches for readline 6.3 available.

Tjeerd
-------------- next part --------------
A non-text attachment was scrubbed...
Name: readline-0001-63-002.patch
Type: text/x-patch
Size: 538 bytes
Desc: readline-0001-63-002.patch
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150325/531ff593/attachment.bin>
-------------- next part --------------

			   READLINE PATCH REPORT
			   =====================

Readline-Release: 6.3
Patch-ID: readline63-002

Bug-Reference-ID: <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html

Bug-Description:

When in callback mode, some readline commands can cause readline to seg fault by passing invalid contexts to callback functions.

Patch (apply with `patch -p0'):

*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
--- readline.c 2014-03-10 14:15:02.000000000 -0400
***************
*** 745,749 ****

    RL_CHECK_SIGNALS ();
!   if (r == 0)			/* success! */
      {
        _rl_keyseq_chain_dispose ();

--- 745,750 ----

    RL_CHECK_SIGNALS ();
!   /* We only treat values < 0 specially to simulate recursion. */
!   if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0))	/* success! or failure! */
      {
        _rl_keyseq_chain_dispose ();

*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
--- patchlevel 2014-03-21 08:28:40.000000000 -0400
***************
*** 1,3 ****
# Do not edit -- exists only for use by patch

! 1
--- 1,3 ----
# Do not edit -- exists only for use by patch

! 2

#6 lore raw
Quoted 12 lines · ir. Tjeerd Pinkert
Quoted 10 lines · Gustavo Zacarias
Quoted 2 lines · ir. Tjeerd Pinkert

Thanks, indeed, buildroot 2015.02 has 6.3 with no patches, although it downloads the latest tar file. I'm trying to see if patching helps.

I've sent a patch to bump it to patchlevel 8 after the 2015.02 release for another bug in commit b817e8c58117402561a61c0d749337f415c9c985 (bash-related).
So it'll be part of the 2015.05 release, or if you're in a rush just apply that patch to your tree.

Quoted 8 lines

I have tested it, and the patch works, no more segfaults so far.

I attach the patch file for buildroot, Gustavo, can you tell me if I did it in a correct way? Did you already include this one in buildroot too? I could not get the original patch working with the buildroot system so I generated my own diff which works for buildroot (that is readline-0001-63-002.patch). I saw there are more patches for readline 6.3 available.

Hi.
No need to CC Mike or the readline list, as far as they're concerned this was already fixed with the patches upstream.
Well, it's easy, fetch the patch:

$ wget
"http://git.buildroot.net/buildroot/patch/?id=b817e8c58117402561a61c0d749337f415c9c985"
-O readline.patch

Apply the patch:

buildroot-2015.02 $ patch -p1 <readline.patch

And yes, the patches need a little tweak to apply cleanly (the patch prefixing is done in a somewhat odd way), but i've handled that in the patch i've sent for buildroot inclusion.
Regards.